diff --git a/about-us/index.html b/about-us/index.html index f79e6be88..995a9289a 100644 --- a/about-us/index.html +++ b/about-us/index.html @@ -7750,7 +7750,7 @@

Disclaimer of Warranty Last update: - September 25, 2024 + September 27, 2024 diff --git a/branding/index.html b/branding/index.html index 249448000..c8e2d5abc 100644 --- a/branding/index.html +++ b/branding/index.html @@ -7792,7 +7792,7 @@

Icons& Last update: - September 25, 2024 + September 27, 2024 diff --git a/contributing/code-of-conduct/index.html b/contributing/code-of-conduct/index.html index 741bef55e..6d81c15da 100644 --- a/contributing/code-of-conduct/index.html +++ b/contributing/code-of-conduct/index.html @@ -7952,7 +7952,7 @@

Attribution Last update: - September 25, 2024 + September 27, 2024 diff --git a/contributing/development/index.html b/contributing/development/index.html index bbe74b717..db16ad9d6 100644 --- a/contributing/development/index.html +++ b/contributing/development/index.html @@ -7960,7 +7960,7 @@

Night& Last update: - September 25, 2024 + September 27, 2024 diff --git a/contributing/documentation/index.html b/contributing/documentation/index.html index 37a8a2f46..23efc5976 100644 --- a/contributing/documentation/index.html +++ b/contributing/documentation/index.html @@ -8012,7 +8012,7 @@

Limitations Last update: - September 25, 2024 + September 27, 2024 diff --git a/contributing/notes/index.html b/contributing/notes/index.html index edeb1bb7e..4a09f35bd 100644 --- a/contributing/notes/index.html +++ b/contributing/notes/index.html @@ -8439,7 +8439,7 @@

Limitations Last update: - September 25, 2024 + September 27, 2024 diff --git a/contributing/release/index.html b/contributing/release/index.html index c53ef5d6d..09c991801 100644 --- a/contributing/release/index.html +++ b/contributing/release/index.html @@ -7845,7 +7845,7 @@

ZenodoSeptember 25, 2024 + September 27, 2024 diff --git a/contributing/setup/index.html b/contributing/setup/index.html index 31863f840..5adca2519 100644 --- a/contributing/setup/index.html +++ b/contributing/setup/index.html @@ -8021,7 +8021,7 @@

Excluded DirectoriesSeptember 25, 2024 + September 27, 2024 diff --git a/dependencies/index.html b/dependencies/index.html index 5065d3799..ce933b014 100644 --- a/dependencies/index.html +++ b/dependencies/index.html @@ -9288,7 +9288,7 @@

Dependencies Last update: - September 25, 2024 + September 27, 2024 diff --git a/edmm/index.html b/edmm/index.html index a84d43485..f30a4a821 100644 --- a/edmm/index.html +++ b/edmm/index.html @@ -7919,7 +7919,7 @@

Disclaimer of Warranty Last update: - September 25, 2024 + September 27, 2024 diff --git a/faq/index.html b/faq/index.html index 6e8c41c15..7d18e751b 100644 --- a/faq/index.html +++ b/faq/index.html @@ -7741,7 +7741,7 @@

Under which license is Vintner Last update: - September 25, 2024 + September 27, 2024 diff --git a/getting-started/index.html b/getting-started/index.html index 629e91c93..20f2fbe9e 100644 --- a/getting-started/index.html +++ b/getting-started/index.html @@ -7774,7 +7774,7 @@

Getting StartedSeptember 25, 2024 + September 27, 2024 diff --git a/installation/index.html b/installation/index.html index 674047e9a..5ba7ffe6d 100644 --- a/installation/index.html +++ b/installation/index.html @@ -8398,7 +8398,7 @@

Public KeySeptember 25, 2024 + September 27, 2024 diff --git a/interface/index.html b/interface/index.html index b5cedafb4..9eaa5a208 100644 --- a/interface/index.html +++ b/interface/index.html @@ -15302,7 +15302,7 @@

vintner utils scenarios Last update: - September 25, 2024 + September 27, 2024 diff --git a/normative/index.html b/normative/index.html index 0ec609ac7..62d327d8e 100644 --- a/normative/index.html +++ b/normative/index.html @@ -12130,7 +12130,7 @@

Disclaimer of Warranty Last update: - September 25, 2024 + September 27, 2024 diff --git a/orchestrators/index.html b/orchestrators/index.html index bcbb9124f..88bcf130e 100644 --- a/orchestrators/index.html +++ b/orchestrators/index.html @@ -7918,7 +7918,7 @@

Known LimitationsSeptember 25, 2024 + September 27, 2024 diff --git a/publications/index.html b/publications/index.html index f2d437497..7f596cb5e 100644 --- a/publications/index.html +++ b/publications/index.html @@ -8145,7 +8145,7 @@

September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/getting-started/index.html b/queries4tosca/getting-started/index.html index c4ed324a7..a86db0e22 100644 --- a/queries4tosca/getting-started/index.html +++ b/queries4tosca/getting-started/index.html @@ -8000,7 +8000,7 @@

Example QueriesSeptember 25, 2024 + September 27, 2024 diff --git a/queries4tosca/specification/index.html b/queries4tosca/specification/index.html index 3fbcb89f6..19f5239de 100644 --- a/queries4tosca/specification/index.html +++ b/queries4tosca/specification/index.html @@ -8384,7 +8384,7 @@

Disclaimer of Warranty Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/introduction/index.html b/queries4tosca/tests/introduction/index.html index 38b55b523..de4a80cdb 100644 --- a/queries4tosca/tests/introduction/index.html +++ b/queries4tosca/tests/introduction/index.html @@ -7944,7 +7944,7 @@

Disclaimer of Warranty Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-all/index.html b/queries4tosca/tests/test-all/index.html index 608a69ba0..0caa9eca3 100644 --- a/queries4tosca/tests/test-all/index.html +++ b/queries4tosca/tests/test-all/index.html @@ -8013,7 +8013,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-array-access/index.html b/queries4tosca/tests/test-array-access/index.html index bf49e3ba7..8bf154d9c 100644 --- a/queries4tosca/tests/test-array-access/index.html +++ b/queries4tosca/tests/test-array-access/index.html @@ -7877,7 +7877,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-boolean-and/index.html b/queries4tosca/tests/test-boolean-and/index.html index 696472a89..a500033ac 100644 --- a/queries4tosca/tests/test-boolean-and/index.html +++ b/queries4tosca/tests/test-boolean-and/index.html @@ -7881,7 +7881,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-boolean-or/index.html b/queries4tosca/tests/test-boolean-or/index.html index 0b011338c..7f7adbf9d 100644 --- a/queries4tosca/tests/test-boolean-or/index.html +++ b/queries4tosca/tests/test-boolean-or/index.html @@ -7897,7 +7897,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-filter-equals/index.html b/queries4tosca/tests/test-filter-equals/index.html index 03233bdb1..9943981bf 100644 --- a/queries4tosca/tests/test-filter-equals/index.html +++ b/queries4tosca/tests/test-filter-equals/index.html @@ -7879,7 +7879,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-filter-existence/index.html b/queries4tosca/tests/test-filter-existence/index.html index a4eb5f1ed..01a037dc8 100644 --- a/queries4tosca/tests/test-filter-existence/index.html +++ b/queries4tosca/tests/test-filter-existence/index.html @@ -7879,7 +7879,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-filter-negation/index.html b/queries4tosca/tests/test-filter-negation/index.html index 89671a16e..1d9e34129 100644 --- a/queries4tosca/tests/test-filter-negation/index.html +++ b/queries4tosca/tests/test-filter-negation/index.html @@ -7885,7 +7885,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-filter-nested/index.html b/queries4tosca/tests/test-filter-nested/index.html index ae2ceb2fa..511f1c31a 100644 --- a/queries4tosca/tests/test-filter-nested/index.html +++ b/queries4tosca/tests/test-filter-nested/index.html @@ -7903,7 +7903,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-filter-regex/index.html b/queries4tosca/tests/test-filter-regex/index.html index 261cb2cf2..e6ce8a3f6 100644 --- a/queries4tosca/tests/test-filter-regex/index.html +++ b/queries4tosca/tests/test-filter-regex/index.html @@ -7899,7 +7899,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-group/index.html b/queries4tosca/tests/test-group/index.html index 6303fb3d9..1e9f47d73 100644 --- a/queries4tosca/tests/test-group/index.html +++ b/queries4tosca/tests/test-group/index.html @@ -7901,7 +7901,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-match-length-any/index.html b/queries4tosca/tests/test-match-length-any/index.html index a68b09fbd..abce15916 100644 --- a/queries4tosca/tests/test-match-length-any/index.html +++ b/queries4tosca/tests/test-match-length-any/index.html @@ -7879,7 +7879,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-match-length-range/index.html b/queries4tosca/tests/test-match-length-range/index.html index 690d4a905..988db0be2 100644 --- a/queries4tosca/tests/test-match-length-range/index.html +++ b/queries4tosca/tests/test-match-length-range/index.html @@ -7879,7 +7879,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-match-next/index.html b/queries4tosca/tests/test-match-next/index.html index 39f9a520e..a2267c829 100644 --- a/queries4tosca/tests/test-match-next/index.html +++ b/queries4tosca/tests/test-match-next/index.html @@ -7889,7 +7889,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-match-previous/index.html b/queries4tosca/tests/test-match-previous/index.html index 1bbe24605..395c55626 100644 --- a/queries4tosca/tests/test-match-previous/index.html +++ b/queries4tosca/tests/test-match-previous/index.html @@ -7889,7 +7889,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-match-rel-filter/index.html b/queries4tosca/tests/test-match-rel-filter/index.html index 15b66f875..594a363aa 100644 --- a/queries4tosca/tests/test-match-rel-filter/index.html +++ b/queries4tosca/tests/test-match-rel-filter/index.html @@ -7883,7 +7883,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-match-single/index.html b/queries4tosca/tests/test-match-single/index.html index 1f4a9a785..543a9b85b 100644 --- a/queries4tosca/tests/test-match-single/index.html +++ b/queries4tosca/tests/test-match-single/index.html @@ -7905,7 +7905,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-node-template/index.html b/queries4tosca/tests/test-node-template/index.html index 2e2479d5c..a037f174c 100644 --- a/queries4tosca/tests/test-node-template/index.html +++ b/queries4tosca/tests/test-node-template/index.html @@ -7903,7 +7903,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-policy/index.html b/queries4tosca/tests/test-policy/index.html index 976169330..636dfeae0 100644 --- a/queries4tosca/tests/test-policy/index.html +++ b/queries4tosca/tests/test-policy/index.html @@ -7903,7 +7903,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-resolve-chain/index.html b/queries4tosca/tests/test-resolve-chain/index.html index 1183a2f21..8f0ed6b18 100644 --- a/queries4tosca/tests/test-resolve-chain/index.html +++ b/queries4tosca/tests/test-resolve-chain/index.html @@ -7951,7 +7951,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-resolve-loop/index.html b/queries4tosca/tests/test-resolve-loop/index.html index 9173fbed6..cde44651f 100644 --- a/queries4tosca/tests/test-resolve-loop/index.html +++ b/queries4tosca/tests/test-resolve-loop/index.html @@ -7837,7 +7837,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-resolve-self/index.html b/queries4tosca/tests/test-resolve-self/index.html index 7f27b946a..dbfe61235 100644 --- a/queries4tosca/tests/test-resolve-self/index.html +++ b/queries4tosca/tests/test-resolve-self/index.html @@ -7951,7 +7951,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-resolve-simple/index.html b/queries4tosca/tests/test-resolve-simple/index.html index 68297b165..b70223800 100644 --- a/queries4tosca/tests/test-resolve-simple/index.html +++ b/queries4tosca/tests/test-resolve-simple/index.html @@ -7951,7 +7951,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-result-structure-complex/index.html b/queries4tosca/tests/test-result-structure-complex/index.html index c2f1f47b2..8fd16aad4 100644 --- a/queries4tosca/tests/test-result-structure-complex/index.html +++ b/queries4tosca/tests/test-result-structure-complex/index.html @@ -7903,7 +7903,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-result-structure-simple/index.html b/queries4tosca/tests/test-result-structure-simple/index.html index b707e3fb9..d8c4ae630 100644 --- a/queries4tosca/tests/test-result-structure-simple/index.html +++ b/queries4tosca/tests/test-result-structure-simple/index.html @@ -7879,7 +7879,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/queries4tosca/tests/test-shortcut-property/index.html b/queries4tosca/tests/test-shortcut-property/index.html index c814c06f9..a60df5152 100644 --- a/queries4tosca/tests/test-shortcut-property/index.html +++ b/queries4tosca/tests/test-shortcut-property/index.html @@ -7877,7 +7877,7 @@

Query Result Last update: - September 25, 2024 + September 27, 2024 diff --git a/resources/index.html b/resources/index.html index 37065d753..d01a788e7 100644 --- a/resources/index.html +++ b/resources/index.html @@ -7826,7 +7826,7 @@

Other ResourcesSeptember 25, 2024 + September 27, 2024 diff --git a/scsar/index.html b/scsar/index.html index 6b85c71d1..ca369601d 100644 --- a/scsar/index.html +++ b/scsar/index.html @@ -7834,7 +7834,7 @@

Disclaimer of Warranty Last update: - September 25, 2024 + September 27, 2024 diff --git a/search/search_index.json b/search/search_index.json index 221ec80db..3a4a7420d 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"branding/","title":"Branding","text":"

This document holds colors, fonts, and logos.

","tags":["Misc"]},{"location":"branding/#colors","title":"Colors","text":"
  • Accent Color Hex: #FF6E42
  • Accent Color RGB: 255 110 66
  • Primary Color Hex: #000000
  • Primary Color RGB: 0 0 0
","tags":["Misc"]},{"location":"branding/#fonts","title":"Fonts","text":"
  • Accent Font: Abril Fatface
  • Primary Font: Inter
  • Code Font: ui-monospace
","tags":["Misc"]},{"location":"branding/#logos","title":"Logos","text":"Vintner Logo Orange SVG Vintner Logo Orange PNG Vintner Logo Black SVG Vintner Logo Black PNG","tags":["Misc"]},{"location":"branding/#icons","title":"Icons","text":"Vintner Icon SVG","tags":["Misc"]},{"location":"dependencies/","title":"Dependencies","text":"

This document holds the dependencies used in production. The list is available as CSV. We ensure, that only the licenses 0BSD, Apache-2.0, BSD-2-Clause, BSD-3-Clause, BlueOak-1.0.0, CC-BY-3.0, CC0-1.0, ISC, MIT, PSF, Public Domain, Python-2.0 are used.

ID Dependency License URL 1 @ewoudenberg/difflib@0.1.0 PSF https://github.com/ewoudenberg/difflib.js 2 @isaacs/cliui@8.0.2 ISC https://github.com/yargs/cliui 3 @pkgjs/parseargs@0.11.0 MIT https://github.com/pkgjs/parseargs 4 @yarnpkg/lockfile@1.1.0 BSD-2-Clause https://github.com/yarnpkg/yarn/blob/master/packages/lockfile 5 abort-controller@3.0.0 MIT https://github.com/mysticatea/abort-controller 6 accepts@1.3.8 MIT https://github.com/jshttp/accepts 7 ansi-regex@5.0.1 MIT https://github.com/chalk/ansi-regex 8 ansi-regex@6.0.1 MIT https://github.com/chalk/ansi-regex 9 ansi-styles@4.3.0 MIT https://github.com/chalk/ansi-styles 10 ansi-styles@6.2.1 MIT https://github.com/chalk/ansi-styles 11 anymatch@3.1.3 ISC https://github.com/micromatch/anymatch 12 archiver-utils@5.0.2 MIT https://github.com/archiverjs/archiver-utils 13 archiver@7.0.1 MIT https://github.com/archiverjs/node-archiver 14 argparse@2.0.1 Python-2.0 https://github.com/nodeca/argparse 15 array-flatten@1.1.1 MIT https://github.com/blakeembrey/array-flatten 16 arrify@1.0.1 MIT https://github.com/sindresorhus/arrify 17 async-mutex@0.5.0 MIT https://github.com/DirtyHairy/async-mutex 18 async@3.2.4 MIT https://github.com/caolan/async 19 async@3.2.5 MIT https://github.com/caolan/async 20 asynckit@0.4.0 MIT https://github.com/alexindigo/asynckit 21 at-least-node@1.0.0 ISC https://github.com/RyanZim/at-least-node 22 axios@0.27.2 MIT https://github.com/axios/axios 23 b4a@1.6.6 Apache-2.0 https://github.com/holepunchto/b4a 24 balanced-match@1.0.2 MIT https://github.com/juliangruber/balanced-match 25 bare-events@2.4.2 Apache-2.0 https://github.com/holepunchto/bare-events 26 base64-js@1.5.1 MIT https://github.com/beatgammit/base64-js 27 binary-extensions@2.2.0 MIT https://github.com/sindresorhus/binary-extensions 28 body-parser@1.20.3 MIT https://github.com/expressjs/body-parser 29 brace-expansion@1.1.11 MIT https://github.com/juliangruber/brace-expansion 30 brace-expansion@2.0.1 MIT https://github.com/juliangruber/brace-expansion 31 braces@3.0.2 MIT https://github.com/micromatch/braces 32 braces@3.0.3 MIT https://github.com/micromatch/braces 33 buffer-crc32@0.2.13 MIT https://github.com/brianloveswords/buffer-crc32 34 buffer-crc32@1.0.0 MIT https://github.com/brianloveswords/buffer-crc32 35 buffer@6.0.3 MIT https://github.com/feross/buffer 36 bytes@3.1.2 MIT https://github.com/visionmedia/bytes.js 37 call-bind@1.0.7 MIT https://github.com/ljharb/call-bind 38 call-me-maybe@1.0.2 MIT https://github.com/limulus/call-me-maybe 39 chalk@4.1.2 MIT https://github.com/chalk/chalk 40 chokidar@3.5.3 MIT https://github.com/paulmillr/chokidar 41 ci-info@3.8.0 MIT https://github.com/watson/ci-info 42 color-convert@2.0.1 MIT https://github.com/Qix-/color-convert 43 color-name@1.1.4 MIT https://github.com/colorjs/color-name 44 colors@1.4.0 MIT https://github.com/Marak/colors.js 45 combined-stream@1.0.8 MIT https://github.com/felixge/node-combined-stream 46 commander@12.1.0 MIT https://github.com/tj/commander.js 47 commander@2.20.3 MIT https://github.com/tj/commander.js 48 commander@6.2.1 MIT https://github.com/tj/commander.js 49 compress-commons@6.0.2 MIT https://github.com/archiverjs/node-compress-commons 50 concat-map@0.0.1 MIT https://github.com/substack/node-concat-map 51 content-disposition@0.5.4 MIT https://github.com/jshttp/content-disposition 52 content-type@1.0.5 MIT https://github.com/jshttp/content-type 53 cookie-signature@1.0.6 MIT https://github.com/visionmedia/node-cookie-signature 54 cookie@0.6.0 MIT https://github.com/jshttp/cookie 55 core-util-is@1.0.3 MIT https://github.com/isaacs/core-util-is 56 cors@2.8.5 MIT https://github.com/expressjs/cors 57 crc-32@1.2.2 Apache-2.0 https://github.com/SheetJS/js-crc32 58 crc32-stream@6.0.0 MIT https://github.com/archiverjs/node-crc32-stream 59 cross-spawn@7.0.3 MIT https://github.com/moxystudio/node-cross-spawn 60 dayjs@1.11.11 MIT https://github.com/iamkun/dayjs 61 debug@2.6.9 MIT https://github.com/visionmedia/debug 62 debug@4.3.4 MIT https://github.com/debug-js/debug 63 define-data-property@1.1.4 MIT https://github.com/ljharb/define-data-property 64 delayed-stream@1.0.0 MIT https://github.com/felixge/node-delayed-stream 65 depd@2.0.0 MIT https://github.com/dougwilson/nodejs-depd 66 destroy@1.2.0 MIT https://github.com/stream-utils/destroy 67 dreamopt@0.8.0 MIT https://github.com/andreyvit/dreamopt.js 68 eastasianwidth@0.2.0 MIT https://github.com/komagata/eastasianwidth 69 ee-first@1.1.1 MIT https://github.com/jonathanong/ee-first 70 ejs@3.1.10 Apache-2.0 https://github.com/mde/ejs 71 emoji-regex@8.0.0 MIT https://github.com/mathiasbynens/emoji-regex 72 emoji-regex@9.2.2 MIT https://github.com/mathiasbynens/emoji-regex 73 encodeurl@1.0.2 MIT https://github.com/pillarjs/encodeurl 74 encodeurl@2.0.0 MIT https://github.com/pillarjs/encodeurl 75 end-of-stream@1.4.4 MIT https://github.com/mafintosh/end-of-stream 76 es-define-property@1.0.0 MIT https://github.com/ljharb/es-define-property 77 es-errors@1.3.0 MIT https://github.com/ljharb/es-errors 78 es6-promise@4.2.8 MIT https://github.com/stefanpenner/es6-promise 79 escape-html@1.0.3 MIT https://github.com/component/escape-html 80 etag@1.8.1 MIT https://github.com/jshttp/etag 81 event-target-shim@5.0.1 MIT https://github.com/mysticatea/event-target-shim 82 events@3.3.0 MIT https://github.com/Gozala/events 83 express@4.21.0 MIT https://github.com/expressjs/express 84 extract-zip@2.0.1 BSD-2-Clause https://github.com/maxogden/extract-zip 85 fast-fifo@1.3.2 MIT https://github.com/mafintosh/fast-fifo 86 fd-slicer@1.1.0 MIT https://github.com/andrewrk/node-fd-slicer 87 filelist@1.0.4 Apache-2.0 https://github.com/mde/filelist 88 fill-range@7.0.1 MIT https://github.com/jonschlinkert/fill-range 89 fill-range@7.1.1 MIT https://github.com/jonschlinkert/fill-range 90 finalhandler@1.3.1 MIT https://github.com/pillarjs/finalhandler 91 find-yarn-workspace-root@2.0.0 Apache-2.0 https://github.com/square/find-yarn-workspace-root 92 follow-redirects@1.15.2 MIT https://github.com/follow-redirects/follow-redirects 93 foreground-child@3.1.1 ISC https://github.com/tapjs/foreground-child 94 form-data@4.0.0 MIT https://github.com/form-data/form-data 95 forwarded@0.2.0 MIT https://github.com/jshttp/forwarded 96 fresh@0.5.2 MIT https://github.com/jshttp/fresh 97 friendly-node-cron@1.5.0 MIT https://github.com/FreaKzero/friendly-node-cron 98 fs-extra@11.2.0 MIT https://github.com/jprichardson/node-fs-extra 99 fs-extra@7.0.1 MIT https://github.com/jprichardson/node-fs-extra 100 fs-extra@9.1.0 MIT https://github.com/jprichardson/node-fs-extra 101 fs.realpath@1.0.0 ISC https://github.com/isaacs/fs.realpath 102 function-bind@1.1.1 MIT https://github.com/Raynos/function-bind 103 function-bind@1.1.2 MIT https://github.com/Raynos/function-bind 104 get-intrinsic@1.2.0 MIT https://github.com/ljharb/get-intrinsic 105 get-intrinsic@1.2.4 MIT https://github.com/ljharb/get-intrinsic 106 get-stream@5.2.0 MIT https://github.com/sindresorhus/get-stream 107 glob-parent@5.1.2 ISC https://github.com/gulpjs/glob-parent 108 glob-to-regexp@0.3.0 BSD-2-Clause https://github.com/fitzgen/glob-to-regexp 109 glob@10.4.1 ISC https://github.com/isaacs/node-glob 110 glob@7.2.3 ISC https://github.com/isaacs/node-glob 111 gopd@1.0.1 MIT https://github.com/ljharb/gopd 112 graceful-fs@4.2.11 ISC https://github.com/isaacs/node-graceful-fs 113 has-flag@4.0.0 MIT https://github.com/sindresorhus/has-flag 114 has-property-descriptors@1.0.2 MIT https://github.com/inspect-js/has-property-descriptors 115 has-proto@1.0.1 MIT https://github.com/inspect-js/has-proto 116 has-symbols@1.0.3 MIT https://github.com/inspect-js/has-symbols 117 has@1.0.3 MIT https://github.com/tarruda/has 118 hasown@2.0.2 MIT https://github.com/inspect-js/hasOwn 119 heap@0.2.7 MIT https://github.com/qiao/heap.js 120 http-errors@2.0.0 MIT https://github.com/jshttp/http-errors 121 iconv-lite@0.4.24 MIT https://github.com/ashtuchkin/iconv-lite 122 ieee754@1.2.1 BSD-3-Clause https://github.com/feross/ieee754 123 inflight@1.0.6 ISC https://github.com/npm/inflight 124 inherits@2.0.4 ISC https://github.com/isaacs/inherits 125 ipaddr.js@1.9.1 MIT https://github.com/whitequark/ipaddr.js 126 is-absolute@1.0.0 MIT https://github.com/jonschlinkert/is-absolute 127 is-binary-path@2.1.0 MIT https://github.com/sindresorhus/is-binary-path 128 is-docker@2.2.1 MIT https://github.com/sindresorhus/is-docker 129 is-extglob@2.1.1 MIT https://github.com/jonschlinkert/is-extglob 130 is-fullwidth-code-point@3.0.0 MIT https://github.com/sindresorhus/is-fullwidth-code-point 131 is-glob@4.0.3 MIT https://github.com/micromatch/is-glob 132 is-number@7.0.0 MIT https://github.com/jonschlinkert/is-number 133 is-relative@1.0.0 MIT https://github.com/jonschlinkert/is-relative 134 is-stream@2.0.1 MIT https://github.com/sindresorhus/is-stream 135 is-unc-path@1.0.0 MIT https://github.com/jonschlinkert/is-unc-path 136 is-windows@1.0.2 MIT https://github.com/jonschlinkert/is-windows 137 is-wsl@2.2.0 MIT https://github.com/sindresorhus/is-wsl 138 isarray@1.0.0 MIT https://github.com/juliangruber/isarray 139 isexe@2.0.0 ISC https://github.com/isaacs/isexe 140 isnumber@1.0.0 MIT https://github.com/brycebaril/node-isnumber 141 jackspeak@3.4.0 BlueOak-1.0.0 https://github.com/isaacs/jackspeak 142 jake@10.8.5 Apache-2.0 https://github.com/jakejs/jake 143 js-ini@1.6.0 MIT https://github.com/Sdju/js-ini 144 js-yaml@4.1.0 MIT https://github.com/nodeca/js-yaml 145 json-diff@1.0.6 MIT https://github.com/andreyvit/json-diff 146 json-stable-stringify@1.0.2 MIT https://github.com/ljharb/json-stable-stringify 147 jsonfile@4.0.0 MIT https://github.com/jprichardson/node-jsonfile 148 jsonfile@6.1.0 MIT https://github.com/jprichardson/node-jsonfile 149 jsonify@0.0.1 Public Domain https://github.com/ljharb/jsonify 150 klaw-sync@6.0.0 MIT https://github.com/manidlou/node-klaw-sync 151 lazystream@1.0.1 MIT https://github.com/jpommerening/node-lazystream 152 lnk@1.1.0 MIT https://github.com/schnittstabil/lnk 153 lodash@4.17.21 MIT https://github.com/lodash/lodash 154 logic-solver@2.0.1 MIT https://github.com/meteor/logic-solver 155 lru-cache@10.2.2 ISC https://github.com/isaacs/node-lru-cache 156 lru-cache@6.0.0 ISC https://github.com/isaacs/node-lru-cache 157 media-typer@0.3.0 MIT https://github.com/jshttp/media-typer 158 merge-descriptors@1.0.3 MIT https://github.com/sindresorhus/merge-descriptors 159 methods@1.1.2 MIT https://github.com/jshttp/methods 160 micromatch@4.0.8 MIT https://github.com/micromatch/micromatch 161 mime-db@1.52.0 MIT https://github.com/jshttp/mime-db 162 mime-types@2.1.35 MIT https://github.com/jshttp/mime-types 163 mime@1.6.0 MIT https://github.com/broofa/node-mime 164 minimatch@3.1.2 ISC https://github.com/isaacs/minimatch 165 minimatch@5.1.6 ISC https://github.com/isaacs/minimatch 166 minimatch@9.0.4 ISC https://github.com/isaacs/minimatch 167 minimist@1.2.8 MIT https://github.com/minimistjs/minimist 168 minipass@7.0.3 ISC https://github.com/isaacs/minipass 169 minipass@7.1.2 ISC https://github.com/isaacs/minipass 170 mkdirp@0.5.6 MIT https://github.com/substack/node-mkdirp 171 ms@2.0.0 MIT https://github.com/zeit/ms 172 ms@2.1.2 MIT https://github.com/zeit/ms 173 ms@2.1.3 MIT https://github.com/vercel/ms 174 negotiator@0.6.3 MIT https://github.com/jshttp/negotiator 175 node-cron@3.0.3 ISC https://github.com/merencia/node-cron 176 node-nailgun-client@0.1.2 Apache-2.0 https://github.com/markushedvall/node-nailgun-client 177 node-nailgun-server@0.1.4 Apache-2.0 https://github.com/markushedvall/node-nailgun-server 178 node-plantuml@0.9.0 MIT https://github.com/markushedvall/node-plantuml 179 normalize-path@3.0.0 MIT https://github.com/jonschlinkert/normalize-path 180 object-assign@4.1.1 MIT https://github.com/sindresorhus/object-assign 181 object-inspect@1.13.2 MIT https://github.com/inspect-js/object-inspect 182 ohm-js@16.4.0 MIT https://github.com/harc/ohm 183 on-finished@2.4.1 MIT https://github.com/jshttp/on-finished 184 once@1.4.0 ISC https://github.com/isaacs/once 185 open@7.4.2 MIT https://github.com/sindresorhus/open 186 opentosca-vintner@0.1.7 Apache-2.0 https://github.com/OpenTOSCA/opentosca-vintner 187 os-tmpdir@1.0.2 MIT https://github.com/sindresorhus/os-tmpdir 188 papaparse@5.4.1 MIT https://github.com/mholt/PapaParse 189 parseurl@1.3.3 MIT https://github.com/pillarjs/parseurl 190 patch-package@8.0.0 MIT https://github.com/ds300/patch-package 191 path-is-absolute@1.0.1 MIT https://github.com/sindresorhus/path-is-absolute 192 path-key@3.1.1 MIT https://github.com/sindresorhus/path-key 193 path-scurry@1.11.1 BlueOak-1.0.0 https://github.com/isaacs/path-scurry 194 path-to-regexp@0.1.10 MIT https://github.com/pillarjs/path-to-regexp 195 pend@1.2.0 MIT https://github.com/andrewrk/node-pend 196 picomatch@2.3.1 MIT https://github.com/micromatch/picomatch 197 pify@2.3.0 MIT https://github.com/sindresorhus/pify 198 plantuml-encoder@1.4.0 MIT https://github.com/markushedvall/plantuml-encoder 199 prettier@2.8.7 MIT https://github.com/prettier/prettier 200 process-nextick-args@2.0.1 MIT https://github.com/calvinmetcalf/process-nextick-args 201 process@0.11.10 MIT https://github.com/shtylman/node-process 202 proxy-addr@2.0.7 MIT https://github.com/jshttp/proxy-addr 203 pump@3.0.0 MIT https://github.com/mafintosh/pump 204 qs@6.13.0 BSD-3-Clause https://github.com/ljharb/qs 205 queue-tick@1.0.1 MIT https://github.com/mafintosh/queue-tick 206 range-parser@1.2.1 MIT https://github.com/jshttp/range-parser 207 raw-body@2.5.2 MIT https://github.com/stream-utils/raw-body 208 readable-stream@2.3.8 MIT https://github.com/nodejs/readable-stream 209 readable-stream@4.5.2 MIT https://github.com/nodejs/readable-stream 210 readdir-enhanced@1.5.2 MIT https://github.com/bigstickcarpet/readdir-enhanced 211 readdir-glob@1.1.3 Apache-2.0 https://github.com/Yqnn/node-readdir-glob 212 readdirp@3.6.0 MIT https://github.com/paulmillr/readdirp 213 regression@2.0.1 MIT https://github.com/Tom-Alexander/regression-js 214 rimraf@2.7.1 ISC https://github.com/isaacs/rimraf 215 safe-buffer@5.1.2 MIT https://github.com/feross/safe-buffer 216 safe-buffer@5.2.1 MIT https://github.com/feross/safe-buffer 217 safer-buffer@2.1.2 MIT https://github.com/ChALkeR/safer-buffer 218 sax@1.2.4 ISC https://github.com/isaacs/sax-js 219 semver@7.5.4 ISC https://github.com/npm/node-semver 220 send@0.19.0 MIT https://github.com/pillarjs/send 221 serve-static@1.16.2 MIT https://github.com/expressjs/serve-static 222 set-function-length@1.2.2 MIT https://github.com/ljharb/set-function-length 223 setprototypeof@1.2.0 ISC https://github.com/wesleytodd/setprototypeof 224 shebang-command@2.0.0 MIT https://github.com/kevva/shebang-command 225 shebang-regex@3.0.0 MIT https://github.com/sindresorhus/shebang-regex 226 side-channel@1.0.6 MIT https://github.com/ljharb/side-channel 227 signal-exit@4.1.0 ISC https://github.com/tapjs/signal-exit 228 slash@2.0.0 MIT https://github.com/sindresorhus/slash 229 stats-lite@2.2.0 MIT https://github.com/brycebaril/node-stats-lite 230 statuses@2.0.1 MIT https://github.com/jshttp/statuses 231 streamx@2.18.0 MIT https://github.com/mafintosh/streamx 232 string-width@4.2.3 MIT https://github.com/sindresorhus/string-width 233 string-width@5.1.2 MIT https://github.com/sindresorhus/string-width 234 string_decoder@1.1.1 MIT https://github.com/nodejs/string_decoder 235 string_decoder@1.3.0 MIT https://github.com/nodejs/string_decoder 236 strip-ansi@6.0.1 MIT https://github.com/chalk/strip-ansi 237 strip-ansi@7.1.0 MIT https://github.com/chalk/strip-ansi 238 supports-color@7.2.0 MIT https://github.com/chalk/supports-color 239 sync-directory@6.0.5 ISC https://github.com/hoperyy/sync-directory 240 systeminformation@5.22.11 MIT https://github.com/sebhildebrandt/systeminformation 241 tar-stream@3.1.7 MIT https://github.com/mafintosh/tar-stream 242 text-decoder@1.1.0 Apache-2.0 https://github.com/holepunchto/text-decoder 243 tmp@0.0.33 MIT https://github.com/raszi/node-tmp 244 to-regex-range@5.0.1 MIT https://github.com/micromatch/to-regex-range 245 toidentifier@1.0.1 MIT https://github.com/component/toidentifier 246 tslib@2.5.0 0BSD https://github.com/Microsoft/tslib 247 type-is@1.6.18 MIT https://github.com/jshttp/type-is 248 unc-path-regex@0.1.2 MIT https://github.com/regexhq/unc-path-regex 249 underscore@1.13.6 MIT https://github.com/jashkenas/underscore 250 universalify@0.1.2 MIT https://github.com/RyanZim/universalify 251 universalify@2.0.0 MIT https://github.com/RyanZim/universalify 252 unpipe@1.0.0 MIT https://github.com/stream-utils/unpipe 253 util-deprecate@1.0.2 MIT https://github.com/TooTallNate/util-deprecate 254 utils-merge@1.0.1 MIT https://github.com/jaredhanson/utils-merge 255 uuid@10.0.0 MIT https://github.com/uuidjs/uuid 256 uuid@8.3.2 MIT https://github.com/uuidjs/uuid 257 vary@1.1.2 MIT https://github.com/jshttp/vary 258 which@2.0.2 ISC https://github.com/isaacs/node-which 259 wordwrap@1.0.0 MIT https://github.com/substack/node-wordwrap 260 wrap-ansi@7.0.0 MIT https://github.com/chalk/wrap-ansi 261 wrap-ansi@8.1.0 MIT https://github.com/chalk/wrap-ansi 262 wrappy@1.0.2 ISC https://github.com/npm/wrappy 263 xml2js@0.6.2 MIT https://github.com/Leonidas-from-XIV/node-xml2js 264 xmlbuilder@11.0.1 MIT https://github.com/oozcitak/xmlbuilder-js 265 yallist@4.0.0 ISC https://github.com/isaacs/yallist 266 yaml@2.3.2 ISC https://github.com/eemeli/yaml 267 yauzl@2.10.0 MIT https://github.com/thejoshwolfe/yauzl 268 zip-stream@6.0.1 MIT https://github.com/archiverjs/node-zip-stream

We fixed the following issues by patching the dependencies.

  1. dreamopt@0.8.0 is licensed under MIT, see issue #2.
  2. glob-to-regexp@0.3.0 is licensed under BSD-2-Clause, see pull request #16.
  3. We moved the optional dependency @types/yauzl of extract-zip@2.0.1 to the development dependencies.
","tags":["Vintner"]},{"location":"faq/","title":"FAQ","text":"","tags":["Misc"]},{"location":"faq/#is-vintner-an-orchestrator","title":"Is Vintner an Orchestrator?","text":"

No, Vintner is not an orchestrator. But it is possible to deploy applications using orchestrator plugins.

","tags":["Misc"]},{"location":"faq/#how-can-i-contribute","title":"How can I contribute?","text":"

Contributions are very much welcome. Please read Development and Code of Conduct.

","tags":["Misc"]},{"location":"faq/#under-which-license-is-vintner-available","title":"Under which license is Vintner available?","text":"

This project is licensed under Apache-2.0.

","tags":["Misc"]},{"location":"getting-started/","title":"Getting Started","text":"

In this example, we will deploy a textfile on our local machine which has a different content depending on our input. This is just a simple example without any dependencies, such as a Docker Engine or a cloud. For a more complex scenario including OpenStack and GCP see Motivating Scenario.

First, we install OpenTOSCA Vintner. For more information see Installation.

curl -fsSL https://vintner.opentosca.org/install.sh | sudo bash -\n

We currently support xOpera and Unfurl. Since both can only be installed on Linux, we provide a WSL integration for both. We configure and enable xOpera. For more information see Installation.

vintner orchestrators init xopera\nvintner orchestrators enable --orchestrator xopera\n

Next, we clone the repository.

git clone https://github.com/OpenTOSCA/opentosca-vintner.git\ncd opentosca-vintner\ngit lfs install\ngit lfs pull\n./task install\n./task tasks:build\n./task examples:pull:link\n

Next, we import the Variability4TOSCA template.

vintner templates import --template getting-started --path examples/xopera-getting-started\n

Next, we initialize an application instance.

vintner instances init --instance getting-started --template getting-started\n

The imported template contains the following conditional node templates.

first:\ntype: textfile\nconditions: {logic_expression: is_first}\nproperties:\ncontent: 'First Textfile has been selected!'\nrequirements:\n- host: node: localhost\nconditions: {logic_expression: is_first}\nsecond:\ntype: textfile\nconditions: {logic_expression: is_second}\nproperties:\ncontent: 'Second Textfile has been selected!'\nrequirements:\n- host: node: localhost\nconditions: {logic_expression: is_second}\n

We intend to deploy the first textfile. We specify this when resolving variability.

vintner instances resolve --instance getting-started --presets first\n

Finally, we deploy the application.

vintner instances deploy --instance getting-started\n

The deployed textfile has the content as expected.

/tmp/vintner-getting-started.txt
First Textfile has been selected!\n

Eventually, we undeploy the application.

vintner instances undeploy --instance getting-started\n
","tags":["Vintner","Guide","xOpera","Unfurl"]},{"location":"installation/","title":"Installation","text":"

This document holds instructions on installing Vintner.

","tags":["Vintner","Docker"]},{"location":"installation/#script","title":"Script","text":"

Vintner can be installed on Linux x64/ arm64 and Windows x64 using our installation scripts.

Linux x64/ arm64Windows x64
curl -fsSL https://vintner.opentosca.org/install.sh | sudo bash -\n

Install a specific version as follows.

curl -fsSL https://vintner.opentosca.org/install.sh | sudo VERSION=${VERSION} bash -\n
powershell -Command \"& {Invoke-WebRequest -Uri 'https://vintner.opentosca.org/install.ps1' -UseBasicParsing | Invoke-Expression}\"\n

Install a specific version as follows.

Invoke-WebRequest -Uri \"https://vintner.opentosca.org/install.ps1\" -OutFile install.ps1\n$env:VERSION = \"DESIRED_VERSION\"\npowershell -ExecutionPolicy Bypass -File .\\install.ps1\nRemove-Item install.ps1\n
","tags":["Vintner","Docker"]},{"location":"installation/#npm","title":"NPM","text":"

Vintner can be installed using npm. Ensure, that npm bin -g is in your $PATH.

npm install --global opentosca-vintner\n
","tags":["Vintner","Docker"]},{"location":"installation/#yarn-classic","title":"Yarn (Classic)","text":"

Vintner can be installed using yarn (classic). Ensure, that yarn global bin is in your $PATH.

yarn global add opentosca-vintner\n
","tags":["Vintner","Docker"]},{"location":"installation/#yarn-modern","title":"Yarn (Modern)","text":"

Vintner can be installed using yarn (modern). However, this will not install Vintner permanently but only temporary.

yarn dlx opentosca-vintner\n
","tags":["Vintner","Docker"]},{"location":"installation/#choco","title":"Choco","text":"

Vintner can be installed using choco.

choco install opentosca-vintner -y\n
","tags":["Vintner","Docker"]},{"location":"installation/#docker","title":"Docker","text":"

Vintner can be installed using Docker. The Image is about 3GB large and contains tools, such as xOpera, Unfurl, Ansible, Terraform, and all of our examples.

","tags":["Vintner","Docker"]},{"location":"installation/#github-container-registry","title":"GitHub Container Registry","text":"

Pull the latest image from the GitHub Container Registry.

docker pull ghcr.io/opentosca/opentosca-vintner:latest\n
","tags":["Vintner","Docker"]},{"location":"installation/#starting-the-container","title":"Starting the Container","text":"

First, we create directories for persisting data.

mkdir vintner\ncd vintner\n\nmkdir data\nmkdir shared\n

Next, we start the container.

docker run \\\n--detach \\\n--volume ${PWD}/data:/vintner/data \\\n--volume ${PWD}/shared:/vintner/shared  \\\n--network host \\\n--name vintner \\\nghcr.io/opentosca/opentosca-vintner:latest\n

The command consists of the following aspects.

  • --detach starts the container in the background.
  • --volume ${PWD}/data:/vintner/data persists all data written by Vintner.
  • --volume ${PWD}/shared:/vintner/shared should be used to share data between the host and the container, e.g., CSARs or GCP credentials.
  • --network host uses the host network, e.g., for ipv6 support.
  • --name vintner is the container name.
  • ghcr.io/opentosca/opentosca-vintner:latest pulls the latest Docker Image

Inside the container, the following directories are of interest.

  • /vintner/data holds all data written by Vintner.
  • /vintner/shared should be used to share data between the host and the container, e.g., CSARs or GCP credentials.
  • /vintner/examples holds the examples directory of the repository.
","tags":["Vintner","Docker"]},{"location":"installation/#executing-a-command","title":"Executing a Command","text":"

The container runs in the background. Vintner is executed as follows.

docker exec -it vintner vintner --version\n

On Linux, we set an alias to directly use Vintner as command in the terminal on the docker host. To persist the alias, add the alias, e.g., to ~/.bashrc (requires reloading the session).

alias vintner=\"docker exec -it vintner vintner\"\n

Now, Vintner is available as follows.

vintner --version\n
","tags":["Vintner","Docker"]},{"location":"installation/#xopera","title":"xOpera","text":"

xOpera is already installed inside the container and Vintner is already correctly configured to connect to xOpera. By default, xOpera is already enabled. Enable xOpera as follows.

docker exec -it vintner vintner orchestrators enable --orchestrator xopera\n
","tags":["Vintner","Docker"]},{"location":"installation/#unfurl","title":"Unfurl","text":"

Unfurl is already installed inside the container and Vintner is already correctly configured to connect to Unfurl. Enable Unfurl as follows.

docker exec -it vintner vintner orchestrators enable --orchestrator unfurl\n
","tags":["Vintner","Docker"]},{"location":"installation/#stopping-the-container","title":"Stopping the Container","text":"

Ensure to only stop Vintner, once Vintner is idle. Otherwise, data and deployments will be corrupted. Stop the container as follows.

docker stop vintner\n
","tags":["Vintner","Docker"]},{"location":"installation/#watching-the-logs-of-the-container","title":"Watching the Logs of the Container","text":"

Watch the logs of the container as follows.

docker logs -f vintner\n
","tags":["Vintner","Docker"]},{"location":"installation/#debugging-the-container","title":"Debugging the Container","text":"

In case we need to debug something inside the container or perform any administrative ./tasks, we can exec into the container as follows. This starts a shell inside the container.

docker exec -it vintner /bin/bash\n
","tags":["Vintner","Docker"]},{"location":"installation/#manual","title":"Manual","text":"

Install Vintner manually by downloading the binary for your system and adding it to $PATH. There are no other dependencies required. The following example shows the installation on selected platforms and architectures.

Linux x64Linux arm64Alpine x64Windows x64
wget https://github.com/opentosca/opentosca-vintner/releases/download/latest/vintner-linux-x64.xz\ntar -xf vintner-linux-x64.xz\nrm vintner-linux-x64.xz\nmv vintner-linux-x64 /usr/bin/vintner\nchmod +x /usr/bin/vintner\nvintner setup init\n
wget https://github.com/opentosca/opentosca-vintner/releases/download/latest/vintner-linux-arm64.xz\ntar -xf vintner-linux-arm64.xz\nrm vintner-linux-arm64.xz\nmv vintner-linux-arm64 /usr/bin/vintner\nchmod +x /usr/bin/vintner\nvintner setup init\n
wget https://github.com/opentosca/opentosca-vintner/releases/download/latest/vintner-alpine-x64.xz\ntar -xf vintner-alpine-x64.xz\nrm vintner-alpine-x64.xz\nmv vintner-alpine-x64 /usr/bin/vintner\nchmod +x /usr/bin/vintner\nvintner setup init\n

First, create the directory $env:USERPROFILE\\bin and add it to your PATH. We recommend to do this manually.

$userBin = \"$env:USERPROFILE\\bin\"\nif (-not (Test-Path -Path $userBin)) {\nNew-Item -ItemType Directory -Force -Path \"$env:USERPROFILE\\bin\"\n$userPath = [System.Environment]::GetEnvironmentVariable(\"PATH\", [System.EnvironmentVariableTarget]::User)\n$newPath = \"$userPath$userBin;\"\n[System.Environment]::SetEnvironmentVariable(\"PATH\", $newPath, [System.EnvironmentVariableTarget]::User)\n}\n

Next, install vintner.

$userBin = \"$env:USERPROFILE\\bin\"\nInvoke-WebRequest -URI https://github.com/opentosca/opentosca-vintner/releases/download/latest/vintner-win-x64.exe.xz -OutFile vintner-win-x64.exe.xz\ntar -xf vintner-win-x64.exe.xz\nRemove-Item vintner-win-x64.exe.xz\nMove-Item vintner-win-x64.exe $userBin\\vintner.exe\nvintner setup init\n

The following binaries are available:

Platform Architecture Binary Archive Signature Checksum Alpine x64 link link link link Linux arm64 link link link link Linux x64 link link link link Windows x64 link link link link","tags":["Vintner","Docker"]},{"location":"installation/#checksum","title":"Checksum","text":"

To verify the integrity of a binary, proceed as follows. The following is a walkthrough for vintner-linux-x64. We assume that vintner-linux-x64 is present in the current working directory.

wget https://github.com/opentosca/opentosca-vintner/releases/download/latest/vintner-linux-x64.sha256\nsha256sum --check vintner-linux-x64.sha256\n
","tags":["Vintner","Docker"]},{"location":"installation/#signature","title":"Signature","text":"

Every binary is cryptographically signed.

","tags":["Vintner","Docker"]},{"location":"installation/#verification","title":"Verification","text":"

To verify a signature of a binary, first import our public key and download the respective signature. The following is a walkthrough for vintner-linux-x64 using gpg. We assume that vintner-linux-x64 is present in the current working directory.

First, we import the public key.

curl https://vintner.opentosca.org/vintner-release.gpg | gpg --import\n

Next, we download the signature.

wget https://github.com/opentosca/opentosca-vintner/releases/download/latest/vintner-linux-x64.asc\n

Next, we verify the signature.

gpg --verify vintner-linux-x64.asc\n

The output should be something as follows.

gpg: assuming signed data in 'vintner-linux-x64'\ngpg: Signature made Sun Oct 23 19:12:56 2022 UTC\ngpg:                using RSA key 4BB862B810B792CC072D59DB964183A1485881AD\ngpg: Good signature from \"vintner-release\" [unknown]\ngpg: WARNING: This key is not certified with a trusted signature!\ngpg:          There is no indication that the signature belongs to the owner.\nPrimary key fingerprint: 4BB8 62B8 10B7 92CC 072D  59DB 9641 83A1 4858 81AD\n
","tags":["Vintner","Docker"]},{"location":"installation/#public-key","title":"Public Key","text":"

The following public key shall be used for verifying signatures. The public key is also available as download.

pub   rsa4096/964183A1485881AD 2022-10-23 [SC]\n4BB862B810B792CC072D59DB964183A1485881AD\nuid                 [unknown] vintner-release\nsub   rsa4096/B230BD6651AA1BB8 2022-10-23 [E]\n
-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGNVcowBEAC0jzKuuLE6AqCaRvjp1mwCC76Px6wG4jgvrXfraCaOf3Y3uywW\nlD3NNfqb/rc/FYQXH9lIU9n6zIB47mK0zoeHWWqPjRp6BTTbbMjePinHCb2K1XM5\nwLglw0OeC2T/NvfbU7FbN/QVFgQPWL16UhuoQhfraax6TFGO9iF/+yhG7AYZ+vAE\n7GkaPQAlzGrbbyffaBYzoqgalHslmxG9RvAxDBaQXrcsqJiv6Zfv8rDNdPlGk7mX\nUIbMHUuFzcep15ZQy+9PY/JLyYBUUDNhAXKLomjNPuCQHvZ/DS/XveIW+l6EYSLq\nr6B/XCFkVWUO2RugvmpEacUSLrIL39ceUh0dYnpEDU4Z8dRlAyVaswR5j90bPrgz\nNSaLF5NQrWlE8gksvK2KYog9Q4lrAdD0wQNV0bnU6YG3TM71wXZim8PokTzxPrA0\nJAigEHzN9nbHSzjB71m8cVt6Zl4lGCCYqr8jSjKAUAN01koQVZd/lFljXfI27NcG\ny7yYBc97IWaOM039kyPKKVGAB3I3l9d90+RL3tSET2MwPN3Vjlq3ArJ6QBKeB80S\nHgRroYVXx+dCJpZhMeeTC8kVjWNL1kctwOMtxWU7N4fO+pi2BW1F5QHlYWJj2fRY\nMp9LE9NYXD1UO/8N1bT2RLGPwrmXXCJF20UDc63wuKzO0IBgXBvPArkUtwARAQAB\ntA92aW50bmVyLXJlbGVhc2WJAk4EEwEIADgWIQRLuGK4ELeSzActWduWQYOhSFiB\nrQUCY1VyjAIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCWQYOhSFiBraf5\nD/4mHhD7nwLQ87bE4d6jPB9prwN86eT3bpz1wXoVwFJfArJ7I3wH/0uQe0GXGbJx\nG9TUdQHAGgN6/e99x54Dg4n4Qzap4W5baYlE3Klu6BUZOx9RKhSdtGfCk0+kUpxV\nlMNLWeXFeHepCp3CwKdH3gkwcWxaBBSsYE2ayk34+CXs3ftttRRUPmCCyxk+XiM9\nHSDO/1yIdiwO1XPFVuFZA150wdW2KYL4AuG4aB7lh1nd6jNgoz7LjwdpWN4Sa+38\n5AkQVez1n8Ru1ul4GRPbS2T+OZu6aoITe6i3JxDEAL/ljPN07ufiqFnTYKh8yUsl\npPOpoM6ytMgcPlSxDfyhWSKw4aFYEJYT6Teeniup4ElywOJsBHfQ6Tl9Ix9nVti1\n9h+xbO7mik802AVYdyXtBrZHNdaUClsJjYpL17mivuZ1JoFNAmLPo1nTr/4IVuiI\nA/LoKotLsL9OI+4rhXzsvIyvJBXHhcDp7TOjfEp8S9tLygDLnlC4lsJLzVdDamq2\n/iDnucQu3TMRoVLrZwVAtsr5GyazmAZcpBjkh88Rgf4iKWbAesG7yGgJdOJ5Bi81\nvmm25Sks+UxaXQzXcTe6ga80o5dqm1KYIkoj+assnA0LwOh1GZt7FZaSoQqXERKm\nyEjOAXNt8ZhewyJZGizYhGUslFOQA/8/kKBKcW9hxqTqLbkCDQRjVXKMARAA2MNq\nipSOqaLOzDz4EULTYknshTe34bKw4EDYVbTeHhIJKr1VWkPo8XK9o74+NgiwpI2H\nfPlO61BMm0FWRq9RUPQHNWU6qtV2KimQuvTdlwUiiX9uLeJvU6DO25350d7b9RdZ\naXUT1In9Ziya67ThsnXQqPusUyV7OEFI9xLX8EsmrZjw/7S3ACJ0ekehq0tRcPJo\nhS5bmN75V9YZVmQViW5nuUfg3iifhsn6xMSBV2oQ+vg0qFwKlTRO1a12ltJuJjCB\nFAtB3C8aI/tl//KRnkyuARmrtGtaht0oCbi+J3/1ChnTvbEXlMG65mNw/OXz+KsI\nGPn4dOvigMQMTfTcvSX6pT4H3xmadFl4pF+8gmysxZuSMhTrPhLXitu24r9DxRrY\ndAibrXOJu7J20+8ZttvRAiEUYAvUyQVtgsc0aAkbUGGBwt4NmdMb0mbN34X0bKPV\nXGc/JImn1pZd1h7zzO4nHlJPDtjb5/s4C3g9isnvFHFXmAIfV9q94e0lXmI5xsQY\nrGqcQzT8JT8S2SpvX/2ABPWyLBAxveDAKZpKNu6uasG2AeA8GpNqOGJq4S7IkaUx\n1xNaQzkJvemKWefslExVAhV1uv2cOxCIq8wTxsozRxs+5WzWxIfT/ob60edKgMkn\nz8NfPbCZw5PkHf/e0pbkbGJI8F2VerjubSSNDEMAEQEAAYkCNgQYAQgAIBYhBEu4\nYrgQt5LMBy1Z25ZBg6FIWIGtBQJjVXKMAhsMAAoJEJZBg6FIWIGtx80QAIOGvqB5\nX+E6VvblU5HHbj8mSZOqWKWgDpnKlehEjEx5UxFgJckmywhYy6UpxjLVGUvIaDLj\nXTmekqV32PUzaLEA5Z/n7nnNBXhVkAPReXqOrpMru+G6q5EgEBtAqVBx34J1Wq/f\nFBWVq4qoPVQrIuvJRtpQJTl7EDWfFZNDrbWCyNjWCQFOU0RzbpGN8Psr2yQZGBpa\n/BkobV3ffJnNvWd2qqP0eOsmOZUrERO3wlbb4Gfi7IvbBaqrwcXw9PwgQ0mWGXoH\nIGvcc3XgEoN4j/RCrkz8LufgkmDjjcomfwXMC/g7NWChCxlGAmZPqZnU5hCLLHpL\nnIyEZJEhpWXk2VGwgiSl+LhfSk1jWGStVL92bgW/YGu7+rjWA6+2hu9PZ0bneAWb\nB/ho86sE5y9eeSUM87aN0E5rWCmzx8ijTKOcukdpk+yJS1L1d/CxAv5twSrA23ne\naTBoNMm9JmUxJU8ILWY9DRBWV1FLsoBy3v3+ztQWz6i3bPZKNVgPdQD2XyXMZQfu\nZWvvd6zqXqPPX38sveW+jMyw4jUORWYkjF1MOP/YtmmuVbdcvJNTrwLlN+KWzSzd\ne83fmHrZs0iN43SQBPNtz3hYWnwpQLZCSgLa0UKzaVWLkhHA/QBFOPMQUNwdfaHq\nq2BZ9kJ+ruFawgv9hjTz2vYO/EGXwZuqcvHB\n=MPBe\n-----END PGP PUBLIC KEY BLOCK-----\n
","tags":["Vintner","Docker"]},{"location":"interface/","title":"Interface","text":"

This document holds the interface specification.

","tags":["Vintner"]},{"location":"interface/#vintner-assets-clean","title":"vintner assets clean","text":"

cleans all assets

CLIcURLJavaScriptPythonKotlin
vintner assets clean 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/assets/clean\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/assets/clean\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/assets/clean\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/assets/clean\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-assets-content","title":"vintner assets content","text":"

shows content of an asset

CLIcURLJavaScriptPythonKotlin
vintner assets content --name ${NAME}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"name\": \"${NAME}\"}' \\\n${SERVER_ADDRESS}/assets/content\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/assets/content\", {\nname: NAME\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/assets/content\", json={\n\"name\": NAME\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/assets/content\", json=mapOf(\n\"name\" to NAME\n))\n
Option Mandatory Type Description name true string name","tags":["Vintner"]},{"location":"interface/#vintner-assets-delete","title":"vintner assets delete","text":"

deletes an asset

CLIcURLJavaScriptPythonKotlin
vintner assets delete --name ${NAME}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"name\": \"${NAME}\"}' \\\n${SERVER_ADDRESS}/assets/delete\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/assets/delete\", {\nname: NAME\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/assets/delete\", json={\n\"name\": NAME\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/assets/delete\", json=mapOf(\n\"name\" to NAME\n))\n
Option Mandatory Type Description name true string name","tags":["Vintner"]},{"location":"interface/#vintner-assets-import","title":"vintner assets import","text":"

imports an asset

CLIcURLJavaScriptPythonKotlin
vintner assets import --name ${NAME} --file ${FILE} --content ${CONTENT}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"name\": \"${NAME}\", \"file\": \"${FILE}\", \"content\": \"${CONTENT}\"}' \\\n${SERVER_ADDRESS}/assets/import\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/assets/import\", {\nname: NAME,\nfile: FILE,\ncontent: CONTENT\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/assets/import\", json={\n\"name\": NAME,\n\"file\": FILE,\n\"content\": CONTENT\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/assets/import\", json=mapOf(\n\"name\" to NAME,\n\"file\" to FILE,\n\"content\" to CONTENT\n))\n
Option Mandatory Type Description name true string name (must match /^[a-z-]+$/) file true string path to a file content true string content to import","tags":["Vintner"]},{"location":"interface/#vintner-assets-list","title":"vintner assets list","text":"

lists all assets

CLIcURLJavaScriptPythonKotlin
vintner assets list 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/assets/list\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/assets/list\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/assets/list\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/assets/list\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-info-about","title":"vintner info about","text":"

general information

CLIcURLJavaScriptPythonKotlin
vintner info about 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/info/about\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/info/about\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/info/about\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/info/about\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-info-author","title":"vintner info author","text":"

open author

CLIcURLJavaScriptPythonKotlin
vintner info author 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/info/author\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/info/author\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/info/author\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/info/author\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-info-contact","title":"vintner info contact","text":"

contact us

CLIcURLJavaScriptPythonKotlin
vintner info contact 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/info/contact\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/info/contact\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/info/contact\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/info/contact\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-info-dependencies","title":"vintner info dependencies","text":"

dependencies used to implement vintner

CLIcURLJavaScriptPythonKotlin
vintner info dependencies 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/info/dependencies\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/info/dependencies\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/info/dependencies\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/info/dependencies\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-info-docs","title":"vintner info docs","text":"

open documentation

CLIcURLJavaScriptPythonKotlin
vintner info docs 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/info/docs\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/info/docs\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/info/docs\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/info/docs\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-info-license","title":"vintner info license","text":"

license of vintner

CLIcURLJavaScriptPythonKotlin
vintner info license 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/info/license\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/info/license\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/info/license\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/info/license\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-info-repo","title":"vintner info repo","text":"

open repository

CLIcURLJavaScriptPythonKotlin
vintner info repo 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/info/repo\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/info/repo\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/info/repo\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/info/repo\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-install-ansible","title":"vintner install ansible","text":"

installs Ansible

CLIcURLJavaScriptPythonKotlin
vintner install ansible 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/install/ansible\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/install/ansible\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/install/ansible\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/install/ansible\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-install-docker","title":"vintner install docker","text":"

installs Docker

CLIcURLJavaScriptPythonKotlin
vintner install docker 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/install/docker\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/install/docker\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/install/docker\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/install/docker\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-install-gcloud","title":"vintner install gcloud","text":"

installs GCloud

CLIcURLJavaScriptPythonKotlin
vintner install gcloud 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/install/gcloud\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/install/gcloud\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/install/gcloud\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/install/gcloud\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-install-platformio","title":"vintner install platformio","text":"

installs PlatformIO Core CLI

CLIcURLJavaScriptPythonKotlin
vintner install platformio 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/install/platformio\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/install/platformio\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/install/platformio\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/install/platformio\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-install-python","title":"vintner install python","text":"

installs Python

CLIcURLJavaScriptPythonKotlin
vintner install python 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/install/python\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/install/python\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/install/python\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/install/python\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-install-terraform","title":"vintner install terraform","text":"

installs Terraform

CLIcURLJavaScriptPythonKotlin
vintner install terraform 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/install/terraform\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/install/terraform\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/install/terraform\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/install/terraform\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-install-unfurl","title":"vintner install unfurl","text":"

installs Unfurl in a venv in \"~/unfurl\"

CLIcURLJavaScriptPythonKotlin
vintner install unfurl 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/install/unfurl\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/install/unfurl\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/install/unfurl\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/install/unfurl\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-install-utils","title":"vintner install utils","text":"

installs utils, such as sudo, unzip, git ...

CLIcURLJavaScriptPythonKotlin
vintner install utils 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/install/utils\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/install/utils\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/install/utils\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/install/utils\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-install-xopera","title":"vintner install xopera","text":"

installs xOpera in a venv in \"~/opera\"

CLIcURLJavaScriptPythonKotlin
vintner install xopera 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/install/xopera\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/install/xopera\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/install/xopera\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/install/xopera\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-instances-adapt","title":"vintner instances adapt","text":"

submit sensor data used for adapting the instance

cURLJavaScriptPythonKotlin
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\", \"inputs\": \"${INPUTS}\"}' \\\n${SERVER_ADDRESS}/instances/adapt\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/adapt\", {\ninstance: INSTANCE,\ninputs: INPUTS\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/adapt\", json={\n\"instance\": INSTANCE,\n\"inputs\": INPUTS\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/adapt\", json=mapOf(\n\"instance\" to INSTANCE,\n\"inputs\" to INPUTS\n))\n
Option Mandatory Type Description instance true string instance name inputs true InputAssignmentMap sensor data","tags":["Vintner"]},{"location":"interface/#vintner-instances-clean","title":"vintner instances clean","text":"

deletes all instances

CLIcURLJavaScriptPythonKotlin
vintner instances clean 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/instances/clean\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/clean\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/clean\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/clean\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-instances-code","title":"vintner instances code","text":"

opens the instance directory in visual studio code

CLI
vintner instances code --instance ${INSTANCE}\n
Option Mandatory Type Description instance true string instance name","tags":["Vintner"]},{"location":"interface/#vintner-instances-continue","title":"vintner instances continue","text":"

continue instance (deployment)

CLIcURLJavaScriptPythonKotlin
vintner instances continue --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/continue\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/continue\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/continue\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/continue\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name verbose false boolean verbose no-verbose false boolean force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-debug","title":"vintner instances debug","text":"

debug utility that passes a command into the orchestrator in scope of the instance

CLIcURLJavaScriptPythonKotlin
vintner instances debug --instance ${INSTANCE} --command ${COMMAND}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\", \"command\": \"${COMMAND}\"}' \\\n${SERVER_ADDRESS}/instances/debug\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/debug\", {\ninstance: INSTANCE,\ncommand: COMMAND\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/debug\", json={\n\"instance\": INSTANCE,\n\"command\": COMMAND\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/debug\", json=mapOf(\n\"instance\" to INSTANCE,\n\"command\" to COMMAND\n))\n
Option Mandatory Type Description instance true string instance name command true string command force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-delete","title":"vintner instances delete","text":"

deletes instance

CLIcURLJavaScriptPythonKotlin
vintner instances delete --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/delete\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/delete\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/delete\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/delete\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-deploy","title":"vintner instances deploy","text":"

deploys instance

CLIcURLJavaScriptPythonKotlin
vintner instances deploy --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/deploy\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/deploy\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/deploy\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/deploy\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name inputs false string path to the deployment inputs (env: OPENTOSCA_VINTNER_DEPLOYMENT_INPUT_${KEY}) retries false boolean number of retries (default: \"1\") verbose false boolean verbose no-verbose false boolean force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-info","title":"vintner instances info","text":"

display instance info

CLIcURLJavaScriptPythonKotlin
vintner instances info --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/info\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/info\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/info\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/info\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-init","title":"vintner instances init","text":"

initializes a new instance

CLIcURLJavaScriptPythonKotlin
vintner instances init --instance ${INSTANCE} --template ${TEMPLATE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\", \"template\": \"${TEMPLATE}\"}' \\\n${SERVER_ADDRESS}/instances/init\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/init\", {\ninstance: INSTANCE,\ntemplate: TEMPLATE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/init\", json={\n\"instance\": INSTANCE,\n\"template\": TEMPLATE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/init\", json=mapOf(\n\"instance\" to INSTANCE,\n\"template\" to TEMPLATE\n))\n
Option Mandatory Type Description instance true string instance name (must match /^[a-z-]+$/) template true string template name force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-inspect","title":"vintner instances inspect","text":"

inspects variability-resolved service template

CLIcURLJavaScriptPythonKotlin
vintner instances inspect --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/inspect\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/inspect\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/inspect\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/inspect\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-list","title":"vintner instances list","text":"

lists all instances

CLIcURLJavaScriptPythonKotlin
vintner instances list 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/instances/list\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/list\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/list\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/list\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-instances-open","title":"vintner instances open","text":"

opens template directory in a file browser

CLI
vintner instances open --instance ${INSTANCE}\n
Option Mandatory Type Description instance true string instance name","tags":["Vintner"]},{"location":"interface/#vintner-instances-outputs","title":"vintner instances outputs","text":"

returns instance outputs

CLIcURLJavaScriptPythonKotlin
vintner instances outputs --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/outputs\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/outputs\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/outputs\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/outputs\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name verbose false boolean verbose no-verbose false boolean force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-path","title":"vintner instances path","text":"

returns the path to the instance directory

CLIcURLJavaScriptPythonKotlin
vintner instances path --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/path\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/path\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/path\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/path\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name","tags":["Vintner"]},{"location":"interface/#vintner-instances-resolve","title":"vintner instances resolve","text":"

resolves variability

CLIcURLJavaScriptPythonKotlin
vintner instances resolve --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/resolve\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/resolve\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/resolve\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/resolve\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name presets false string... names of variability presets(env: OPENTOSCA_VINTNER_VARIABILITY_PRESETS) (default: []) inputs false string path to the variability inputs (supported: [YAML, FeatureIDE ExtendedXML], env: OPENTOSCA_VINTNER_VARIABILITY_INPUT_${KEY}) force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-state","title":"vintner instances state","text":"

set the state of the instance

CLIcURLJavaScriptPythonKotlin
vintner instances state --instance ${INSTANCE} --state ${STATE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\", \"state\": \"${STATE}\"}' \\\n${SERVER_ADDRESS}/instances/state\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/state\", {\ninstance: INSTANCE,\nstate: STATE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/state\", json={\n\"instance\": INSTANCE,\n\"state\": STATE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/state\", json=mapOf(\n\"instance\" to INSTANCE,\n\"state\" to STATE\n))\n
Option Mandatory Type Description instance true string instance name state true string state force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-swap","title":"vintner instances swap","text":"

swap instance template

CLIcURLJavaScriptPythonKotlin
vintner instances swap --instance ${INSTANCE} --template ${TEMPLATE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\", \"template\": \"${TEMPLATE}\"}' \\\n${SERVER_ADDRESS}/instances/swap\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/swap\", {\ninstance: INSTANCE,\ntemplate: TEMPLATE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/swap\", json={\n\"instance\": INSTANCE,\n\"template\": TEMPLATE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/swap\", json=mapOf(\n\"instance\" to INSTANCE,\n\"template\" to TEMPLATE\n))\n
Option Mandatory Type Description instance true string instance name template true string template name force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-unadapt","title":"vintner instances unadapt","text":"

stop adaptation loop of instance

cURLJavaScriptPythonKotlin
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/unadapt\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/unadapt\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/unadapt\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/unadapt\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name","tags":["Vintner"]},{"location":"interface/#vintner-instances-undeploy","title":"vintner instances undeploy","text":"

undeploys instance

CLIcURLJavaScriptPythonKotlin
vintner instances undeploy --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/undeploy\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/undeploy\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/undeploy\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/undeploy\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name verbose false boolean verbose no-verbose false boolean force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-update","title":"vintner instances update","text":"

update instance

CLIcURLJavaScriptPythonKotlin
vintner instances update --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/update\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/update\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/update\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/update\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name inputs false string path to the deployment inputs (env: OPENTOSCA_VINTNER_DEPLOYMENT_INPUT_${KEY}) verbose false boolean verbose no-verbose false boolean force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-validate","title":"vintner instances validate","text":"

validates variability-resolved service template

CLIcURLJavaScriptPythonKotlin
vintner instances validate --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/validate\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/validate\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/validate\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/validate\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name inputs false string path to the deployment inputs verbose false boolean verbose no-verbose false boolean dry false boolean dry run no-dry false boolean force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-orchestrators-attest","title":"vintner orchestrators attest","text":"

attests an orchestrator plugin

CLIcURLJavaScriptPythonKotlin
vintner orchestrators attest --orchestrator ${ORCHESTRATOR}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"orchestrator\": \"${ORCHESTRATOR}\"}' \\\n${SERVER_ADDRESS}/orchestrators/attest\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/orchestrators/attest\", {\norchestrator: ORCHESTRATOR\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/orchestrators/attest\", json={\n\"orchestrator\": ORCHESTRATOR\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/orchestrators/attest\", json=mapOf(\n\"orchestrator\" to ORCHESTRATOR\n))\n
Option Mandatory Type Description orchestrator true string orchestrator","tags":["Vintner"]},{"location":"interface/#vintner-orchestrators-enable","title":"vintner orchestrators enable","text":"

enables an orchestrator plugin

CLIcURLJavaScriptPythonKotlin
vintner orchestrators enable --orchestrator ${ORCHESTRATOR}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"orchestrator\": \"${ORCHESTRATOR}\"}' \\\n${SERVER_ADDRESS}/orchestrators/enable\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/orchestrators/enable\", {\norchestrator: ORCHESTRATOR\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/orchestrators/enable\", json={\n\"orchestrator\": ORCHESTRATOR\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/orchestrators/enable\", json=mapOf(\n\"orchestrator\" to ORCHESTRATOR\n))\n
Option Mandatory Type Description orchestrator true string orchestrator","tags":["Vintner"]},{"location":"interface/#vintner-orchestrators-init-unfurl","title":"vintner orchestrators init unfurl","text":"

initializes unfurl plugin

CLIcURLJavaScriptPythonKotlin
vintner orchestrators init unfurl 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/orchestrators/init/unfurl\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/orchestrators/init/unfurl\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/orchestrators/init/unfurl\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/orchestrators/init/unfurl\")\n
Option Mandatory Type Description venv false boolean enable the use of a virtual environment (default: true) no-venv false boolean disable the use of a virtual environment dir false string directory of unfurl (default: \"~/unfurl\")","tags":["Vintner"]},{"location":"interface/#vintner-orchestrators-init-unfurl-wsl","title":"vintner orchestrators init unfurl-wsl","text":"

initializes unfurl-wsl plugin

CLIcURLJavaScriptPythonKotlin
vintner orchestrators init unfurl-wsl 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/orchestrators/init/unfurl-wsl\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/orchestrators/init/unfurl-wsl\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/orchestrators/init/unfurl-wsl\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/orchestrators/init/unfurl-wsl\")\n
Option Mandatory Type Description venv false boolean enable the use of a virtual environment (default: true) no-venv false boolean disable the use of a virtual environment dir false string directory of unfurl (default: \"~/unfurl\")","tags":["Vintner"]},{"location":"interface/#vintner-orchestrators-init-xopera","title":"vintner orchestrators init xopera","text":"

initializes xopera plugin

CLIcURLJavaScriptPythonKotlin
vintner orchestrators init xopera 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/orchestrators/init/xopera\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/orchestrators/init/xopera\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/orchestrators/init/xopera\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/orchestrators/init/xopera\")\n
Option Mandatory Type Description venv false boolean enable the use of a virtual environment (default: true) no-venv false boolean disable the use of a virtual environment dir false string directory of xopera (default: \"~/opera\")","tags":["Vintner"]},{"location":"interface/#vintner-orchestrators-init-xopera-wsl","title":"vintner orchestrators init xopera-wsl","text":"

initializes xopera-wsl plugin

CLIcURLJavaScriptPythonKotlin
vintner orchestrators init xopera-wsl 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/orchestrators/init/xopera-wsl\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/orchestrators/init/xopera-wsl\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/orchestrators/init/xopera-wsl\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/orchestrators/init/xopera-wsl\")\n
Option Mandatory Type Description venv false boolean enable the use of a virtual environment (default: true) no-venv false boolean enable the use of a virtual environment dir false string directory of opera (default: \"~/opera\")","tags":["Vintner"]},{"location":"interface/#vintner-query","title":"vintner query","text":"

runs a query and returns the result

CLIcURLJavaScriptPythonKotlin
vintner query --query ${QUERY}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"query\": \"${QUERY}\"}' \\\n${SERVER_ADDRESS}/query\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/query\", {\nquery: QUERY\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/query\", json={\n\"query\": QUERY\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/query\", json=mapOf(\n\"query\" to QUERY\n))\n
Option Mandatory Type Description query true string path to query or query string source false string specifies where to search for template to query (default: \"vintner\") output false string path of the output format false string output format (choices: [\"yaml\",\"json\"], default: \"yaml\")","tags":["Vintner"]},{"location":"interface/#vintner-sensors-compute","title":"vintner sensors compute","text":"

starts a sensor for compute utilization, such as cpu and memory

CLI
vintner sensors compute --instance ${INSTANCE} --template ${TEMPLATE}\n
Option Mandatory Type Description instance true string monitored instance template true string node template name vintner false string vintner address to submit sensors data (default: \"http://127.0.0.1:3000\") time-interval false string interval to submit data (default: \"every 10 seconds\") submission false boolean send data (default: true) no-submission false boolean","tags":["Vintner"]},{"location":"interface/#vintner-sensors-file","title":"vintner sensors file","text":"

starts a sensor for data stored in a file

CLI
vintner sensors file --instance ${INSTANCE} --file ${FILE}\n
Option Mandatory Type Description instance true string monitored instance file true string path to file vintner false string vintner address to submit sensors data (default: \"http://127.0.0.1:3000\") time-interval false string interval to submit data (default: \"every 10 seconds\") watch false boolean watch file and send changes (default: true) no-watch false boolean submission false boolean send data (default: true) no-submission false boolean","tags":["Vintner"]},{"location":"interface/#vintner-sensors-location","title":"vintner sensors location","text":"

starts a sensor for the current location

CLI
vintner sensors location --instance ${INSTANCE} --template ${TEMPLATE}\n
Option Mandatory Type Description instance true string monitored instance template true string node template name vintner false string vintner address to submit sensors data (default: \"http://127.0.0.1:3000\") time-interval false string interval to submit data (default: \"every minute\") submission false boolean send data (default: true) no-submission false boolean","tags":["Vintner"]},{"location":"interface/#vintner-sensors-weekday","title":"vintner sensors weekday","text":"

starts a sensor for the weekday

CLI
vintner sensors weekday --instance ${INSTANCE}\n
Option Mandatory Type Description instance true string monitored instance vintner false string vintner address to submit sensors data (default: \"http://127.0.0.1:3000\") time-interval false string interval to submit data (default: \"every day\") start false string set day to start from submission false boolean send data (default: true) no-submission false boolean","tags":["Vintner"]},{"location":"interface/#vintner-server-start","title":"vintner server start","text":"

starts the server

CLI
vintner server start 
Option Mandatory Type Description host false string host on which to listen (default: \"127.0.0.1\") port false number port on which to listen (default: \"3000\")","tags":["Vintner"]},{"location":"interface/#vintner-setup-benchmark","title":"vintner setup benchmark","text":"

benchmarks the variability resolver

CLIcURLJavaScriptPythonKotlin
vintner setup benchmark 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/setup/benchmark\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/setup/benchmark\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/setup/benchmark\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/setup/benchmark\")\n
Option Mandatory Type Description io false boolean enable read and writes to the filesystem no-io false boolean disable read and writes to the filesystem seeds false numbers... seed for generating service templates (default: [10,250,500,1000,2500,5000,10000]) runs false number number of measurements for each test (default: 10) latex false boolean plot results as latex (default: false) markdown false boolean plot results as markdown (default: false)","tags":["Vintner"]},{"location":"interface/#vintner-setup-clean","title":"vintner setup clean","text":"

cleans up the filesystem

CLIcURLJavaScriptPythonKotlin
vintner setup clean 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/setup/clean\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/setup/clean\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/setup/clean\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/setup/clean\")\n
Option Mandatory Type Description force false boolean force clean up no-force false boolean","tags":["Vintner"]},{"location":"interface/#vintner-setup-code","title":"vintner setup code","text":"

opens the home directory in visual studio code

CLI
vintner setup code 
","tags":["Vintner"]},{"location":"interface/#vintner-setup-init","title":"vintner setup init","text":"

initialises the filesystem

CLIcURLJavaScriptPythonKotlin
vintner setup init 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/setup/init\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/setup/init\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/setup/init\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/setup/init\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-setup-open","title":"vintner setup open","text":"

opens the home directory

CLI
vintner setup open 
","tags":["Vintner"]},{"location":"interface/#vintner-setup-path","title":"vintner setup path","text":"

returns the path to the home directory

CLIcURLJavaScriptPythonKotlin
vintner setup path 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/setup/path\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/setup/path\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/setup/path\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/setup/path\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-setup-reset","title":"vintner setup reset","text":"

resets the filesystem

CLIcURLJavaScriptPythonKotlin
vintner setup reset 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/setup/reset\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/setup/reset\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/setup/reset\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/setup/reset\")\n
Option Mandatory Type Description force false boolean force clean up no-force false boolean","tags":["Vintner"]},{"location":"interface/#vintner-study-technology","title":"vintner study technology","text":"

conduct technology case study

CLIcURLJavaScriptPythonKotlin
vintner study technology --application ${APPLICATION} --experimental ${EXPERIMENTAL}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"application\": \"${APPLICATION}\", \"experimental\": \"${EXPERIMENTAL}\"}' \\\n${SERVER_ADDRESS}/study/technology\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/study/technology\", {\napplication: APPLICATION,\nexperimental: EXPERIMENTAL\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/study/technology\", json={\n\"application\": APPLICATION,\n\"experimental\": EXPERIMENTAL\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/study/technology\", json=mapOf(\n\"application\" to APPLICATION,\n\"experimental\" to EXPERIMENTAL\n))\n
Option Mandatory Type Description application true string application name, e.g., boutique or shop experimental true enable experimental feature","tags":["Vintner"]},{"location":"interface/#vintner-template-enrich","title":"vintner template enrich","text":"

enrich conditions

CLIcURLJavaScriptPythonKotlin
vintner template enrich --template ${TEMPLATE} --output ${OUTPUT}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"output\": \"${OUTPUT}\"}' \\\n${SERVER_ADDRESS}/template/enrich\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/enrich\", {\ntemplate: TEMPLATE,\noutput: OUTPUT\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/enrich\", json={\n\"template\": TEMPLATE,\n\"output\": OUTPUT\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/enrich\", json=mapOf(\n\"template\" to TEMPLATE,\n\"output\" to OUTPUT\n))\n
Option Mandatory Type Description template true string path to variable service template output true string path of the output","tags":["Vintner"]},{"location":"interface/#vintner-template-implement","title":"vintner template implement","text":"

implement node types

CLIcURLJavaScriptPythonKotlin
vintner template implement --dir ${DIR}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"dir\": \"${DIR}\"}' \\\n${SERVER_ADDRESS}/template/implement\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/implement\", {\ndir: DIR\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/implement\", json={\n\"dir\": DIR\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/implement\", json=mapOf(\n\"dir\" to DIR\n))\n
Option Mandatory Type Description dir true string path to service template directory orchestrator false string the orchestrator for which node type should be implemented (default: \"unfurl\")","tags":["Vintner"]},{"location":"interface/#vintner-template-init","title":"vintner template init","text":"

initializes a CSAR

CLIcURLJavaScriptPythonKotlin
vintner template init --path ${PATH} --template ${TEMPLATE} --vintner ${VINTNER}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"path\": \"${PATH}\", \"template\": \"${TEMPLATE}\", \"vintner\": \"${VINTNER}\"}' \\\n${SERVER_ADDRESS}/template/init\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/init\", {\npath: PATH,\ntemplate: TEMPLATE,\nvintner: VINTNER\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/init\", json={\n\"path\": PATH,\n\"template\": TEMPLATE,\n\"vintner\": VINTNER\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/init\", json=mapOf(\n\"path\" to PATH,\n\"template\" to TEMPLATE,\n\"vintner\" to VINTNER\n))\n
Option Mandatory Type Description path true string path of the directory template true string template name (default: directory name of --path) vintner true string vintner binary to execute (default: \"task cli --\") force false boolean force initialization, e.g., on non-empty directories no-force false boolean","tags":["Vintner"]},{"location":"interface/#vintner-template-inputs","title":"vintner template inputs","text":"

read and transforms inputs

CLIcURLJavaScriptPythonKotlin
vintner template inputs --path ${PATH} --output ${OUTPUT}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"path\": \"${PATH}\", \"output\": \"${OUTPUT}\"}' \\\n${SERVER_ADDRESS}/template/inputs\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/inputs\", {\npath: PATH,\noutput: OUTPUT\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/inputs\", json={\n\"path\": PATH,\n\"output\": OUTPUT\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/inputs\", json=mapOf(\n\"path\" to PATH,\n\"output\" to OUTPUT\n))\n
Option Mandatory Type Description path true string path to the variability inputs (supported: [YAML, FeatureIDE ExtendedXML]) output true string path of the output","tags":["Vintner"]},{"location":"interface/#vintner-template-normalize","title":"vintner template normalize","text":"

normalize service template

CLIcURLJavaScriptPythonKotlin
vintner template normalize --template ${TEMPLATE} --output ${OUTPUT}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"output\": \"${OUTPUT}\"}' \\\n${SERVER_ADDRESS}/template/normalize\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/normalize\", {\ntemplate: TEMPLATE,\noutput: OUTPUT\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/normalize\", json={\n\"template\": TEMPLATE,\n\"output\": OUTPUT\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/normalize\", json=mapOf(\n\"template\" to TEMPLATE,\n\"output\" to OUTPUT\n))\n
Option Mandatory Type Description template true string path to variable service template output true string path of the output","tags":["Vintner"]},{"location":"interface/#vintner-template-package","title":"vintner template package","text":"

packages a directory to a CSAR

CLIcURLJavaScriptPythonKotlin
vintner template package --template ${TEMPLATE} --output ${OUTPUT}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"output\": \"${OUTPUT}\"}' \\\n${SERVER_ADDRESS}/template/package\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/package\", {\ntemplate: TEMPLATE,\noutput: OUTPUT\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/package\", json={\n\"template\": TEMPLATE,\n\"output\": OUTPUT\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/package\", json=mapOf(\n\"template\" to TEMPLATE,\n\"output\" to OUTPUT\n))\n
Option Mandatory Type Description template true string path to variable service template output true string path of the output","tags":["Vintner"]},{"location":"interface/#vintner-template-pull","title":"vintner template pull","text":"

pull template dependencies

CLIcURLJavaScriptPythonKotlin
vintner template pull --dir ${DIR}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"dir\": \"${DIR}\"}' \\\n${SERVER_ADDRESS}/template/pull\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/pull\", {\ndir: DIR\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/pull\", json={\n\"dir\": DIR\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/pull\", json=mapOf(\n\"dir\" to DIR\n))\n
Option Mandatory Type Description dir true string path to service template directory link false boolean create symbolic links instead of copying files (default: false) no-link false boolean","tags":["Vintner"]},{"location":"interface/#vintner-template-puml-topology","title":"vintner template puml topology","text":"

plot topology as PlantUML

CLIcURLJavaScriptPythonKotlin
vintner template puml topology --path ${PATH}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"path\": \"${PATH}\"}' \\\n${SERVER_ADDRESS}/template/puml/topology\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/puml/topology\", {\npath: PATH\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/puml/topology\", json={\n\"path\": PATH\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/puml/topology\", json=mapOf(\n\"path\" to PATH\n))\n
Option Mandatory Type Description path true string path to service template output false string path of the output format false string output format (choices: [\"puml\",\"svg\"], default: \"puml\")","tags":["Vintner"]},{"location":"interface/#vintner-template-puml-types","title":"vintner template puml types","text":"

plot types as PlantUML (each entity types is plotted separately)

CLIcURLJavaScriptPythonKotlin
vintner template puml types --path ${PATH}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"path\": \"${PATH}\"}' \\\n${SERVER_ADDRESS}/template/puml/types\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/puml/types\", {\npath: PATH\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/puml/types\", json={\n\"path\": PATH\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/puml/types\", json=mapOf(\n\"path\" to PATH\n))\n
Option Mandatory Type Description path true string path to service template output false string path of the output directory (default: the directory of the service template) types false string... entity types to consider, e.g., \"node_types\" (default: Every defined entity type) format false string output format (choices: [\"puml\",\"svg\"], default: \"puml\")","tags":["Vintner"]},{"location":"interface/#vintner-template-quality","title":"vintner template quality","text":"

get quality of template

CLIcURLJavaScriptPythonKotlin
vintner template quality --template ${TEMPLATE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\"}' \\\n${SERVER_ADDRESS}/template/quality\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/quality\", {\ntemplate: TEMPLATE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/quality\", json={\n\"template\": TEMPLATE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/quality\", json=mapOf(\n\"template\" to TEMPLATE\n))\n
Option Mandatory Type Description template true string path to service template presets false string... names of variability presets(env: OPENTOSCA_VINTNER_VARIABILITY_PRESETS) (default: []) inputs false string path to the variability inputs (supported: [YAML, FeatureIDE ExtendedXML], env: OPENTOSCA_VINTNER_VARIABILITY_INPUT_${KEY})","tags":["Vintner"]},{"location":"interface/#vintner-template-query","title":"vintner template query","text":"

resolves all queries in a given service template

CLIcURLJavaScriptPythonKotlin
vintner template query --template ${TEMPLATE} --output ${OUTPUT}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"output\": \"${OUTPUT}\"}' \\\n${SERVER_ADDRESS}/template/query\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/query\", {\ntemplate: TEMPLATE,\noutput: OUTPUT\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/query\", json={\n\"template\": TEMPLATE,\n\"output\": OUTPUT\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/query\", json=mapOf(\n\"template\" to TEMPLATE,\n\"output\" to OUTPUT\n))\n
Option Mandatory Type Description template true string path to service template output true string path of the output","tags":["Vintner"]},{"location":"interface/#vintner-template-resolve","title":"vintner template resolve","text":"

resolves variability

CLIcURLJavaScriptPythonKotlin
vintner template resolve --template ${TEMPLATE} --output ${OUTPUT}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"output\": \"${OUTPUT}\"}' \\\n${SERVER_ADDRESS}/template/resolve\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/resolve\", {\ntemplate: TEMPLATE,\noutput: OUTPUT\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/resolve\", json={\n\"template\": TEMPLATE,\n\"output\": OUTPUT\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/resolve\", json=mapOf(\n\"template\" to TEMPLATE,\n\"output\" to OUTPUT\n))\n
Option Mandatory Type Description template true string path to variable service template presets false strings... names of variability presets (env: OPENTOSCA_VINTNER_VARIABILITY_PRESETS) (default: []) inputs false string path to the variability inputs (supported: [YAML, FeatureIDE ExtendedXML, env: OPENTOSCA_VINTNER_VARIABILITY_INPUT_) output true string path of the output","tags":["Vintner"]},{"location":"interface/#vintner-template-sign","title":"vintner template sign","text":"

signs a CSAR

CLIcURLJavaScriptPythonKotlin
vintner template sign --template ${TEMPLATE} --output ${OUTPUT} --key ${KEY}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"output\": \"${OUTPUT}\", \"key\": \"${KEY}\"}' \\\n${SERVER_ADDRESS}/template/sign\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/sign\", {\ntemplate: TEMPLATE,\noutput: OUTPUT,\nkey: KEY\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/sign\", json={\n\"template\": TEMPLATE,\n\"output\": OUTPUT,\n\"key\": KEY\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/sign\", json=mapOf(\n\"template\" to TEMPLATE,\n\"output\" to OUTPUT,\n\"key\" to KEY\n))\n
Option Mandatory Type Description template true string path to service template output true string path of the output (default: template path + \".asc\" ) key true string path of the key","tags":["Vintner"]},{"location":"interface/#vintner-template-stats","title":"vintner template stats","text":"

collects stats of a given service template (experimental)

CLIcURLJavaScriptPythonKotlin
vintner template stats --template ${TEMPLATE} --experimental ${EXPERIMENTAL}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"experimental\": \"${EXPERIMENTAL}\"}' \\\n${SERVER_ADDRESS}/template/stats\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/stats\", {\ntemplate: TEMPLATE,\nexperimental: EXPERIMENTAL\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/stats\", json={\n\"template\": TEMPLATE,\n\"experimental\": EXPERIMENTAL\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/stats\", json=mapOf(\n\"template\" to TEMPLATE,\n\"experimental\" to EXPERIMENTAL\n))\n
Option Mandatory Type Description template true strings... path to service template experimental true enable experimental feature","tags":["Vintner"]},{"location":"interface/#vintner-template-test","title":"vintner template test","text":"

runs tests defined in the CSAR

CLIcURLJavaScriptPythonKotlin
vintner template test --path ${PATH}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"path\": \"${PATH}\"}' \\\n${SERVER_ADDRESS}/template/test\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/test\", {\npath: PATH\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/test\", json={\n\"path\": PATH\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/test\", json=mapOf(\n\"path\" to PATH\n))\n
Option Mandatory Type Description path true string path or link to the extracted CSAR","tags":["Vintner"]},{"location":"interface/#vintner-template-unimplement","title":"vintner template unimplement","text":"

unimplement node types

CLIcURLJavaScriptPythonKotlin
vintner template unimplement --dir ${DIR}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"dir\": \"${DIR}\"}' \\\n${SERVER_ADDRESS}/template/unimplement\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/unimplement\", {\ndir: DIR\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/unimplement\", json={\n\"dir\": DIR\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/unimplement\", json=mapOf(\n\"dir\" to DIR\n))\n
Option Mandatory Type Description dir true string path to service template directory","tags":["Vintner"]},{"location":"interface/#vintner-template-unpackage","title":"vintner template unpackage","text":"

unpackages a CSAR

CLIcURLJavaScriptPythonKotlin
vintner template unpackage --template ${TEMPLATE} --output ${OUTPUT}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"output\": \"${OUTPUT}\"}' \\\n${SERVER_ADDRESS}/template/unpackage\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/unpackage\", {\ntemplate: TEMPLATE,\noutput: OUTPUT\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/unpackage\", json={\n\"template\": TEMPLATE,\n\"output\": OUTPUT\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/unpackage\", json=mapOf(\n\"template\" to TEMPLATE,\n\"output\" to OUTPUT\n))\n
Option Mandatory Type Description template true string path to variable service template output true string path of the output","tags":["Vintner"]},{"location":"interface/#vintner-template-unpull","title":"vintner template unpull","text":"

unpull template dependencies

CLIcURLJavaScriptPythonKotlin
vintner template unpull --dir ${DIR}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"dir\": \"${DIR}\"}' \\\n${SERVER_ADDRESS}/template/unpull\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/unpull\", {\ndir: DIR\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/unpull\", json={\n\"dir\": DIR\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/unpull\", json=mapOf(\n\"dir\" to DIR\n))\n
Option Mandatory Type Description dir true string path to service template directory","tags":["Vintner"]},{"location":"interface/#vintner-template-verify","title":"vintner template verify","text":"

verify a CSAR

CLIcURLJavaScriptPythonKotlin
vintner template verify --template ${TEMPLATE} --signature ${SIGNATURE} --key ${KEY}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"signature\": \"${SIGNATURE}\", \"key\": \"${KEY}\"}' \\\n${SERVER_ADDRESS}/template/verify\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/verify\", {\ntemplate: TEMPLATE,\nsignature: SIGNATURE,\nkey: KEY\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/verify\", json={\n\"template\": TEMPLATE,\n\"signature\": SIGNATURE,\n\"key\": KEY\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/verify\", json=mapOf(\n\"template\" to TEMPLATE,\n\"signature\" to SIGNATURE,\n\"key\" to KEY\n))\n
Option Mandatory Type Description template true string path to service template signature true string path of the signature (default: template path + \".asc\" ) key true string path of the key","tags":["Vintner"]},{"location":"interface/#vintner-templates-clean","title":"vintner templates clean","text":"

removes all templates

CLIcURLJavaScriptPythonKotlin
vintner templates clean 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/templates/clean\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/templates/clean\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/templates/clean\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/templates/clean\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-templates-code","title":"vintner templates code","text":"

opens the template directory in visual studio code

CLI
vintner templates code --template ${TEMPLATE}\n
Option Mandatory Type Description template true string template name","tags":["Vintner"]},{"location":"interface/#vintner-templates-delete","title":"vintner templates delete","text":"

deletes a template

CLIcURLJavaScriptPythonKotlin
vintner templates delete --template ${TEMPLATE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\"}' \\\n${SERVER_ADDRESS}/templates/delete\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/templates/delete\", {\ntemplate: TEMPLATE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/templates/delete\", json={\n\"template\": TEMPLATE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/templates/delete\", json=mapOf(\n\"template\" to TEMPLATE\n))\n
Option Mandatory Type Description template true string template name","tags":["Vintner"]},{"location":"interface/#vintner-templates-import","title":"vintner templates import","text":"

imports a new template

CLIcURLJavaScriptPythonKotlin
vintner templates import --template ${TEMPLATE} --path ${PATH}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"path\": \"${PATH}\"}' \\\n${SERVER_ADDRESS}/templates/import\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/templates/import\", {\ntemplate: TEMPLATE,\npath: PATH\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/templates/import\", json={\n\"template\": TEMPLATE,\n\"path\": PATH\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/templates/import\", json=mapOf(\n\"template\" to TEMPLATE,\n\"path\" to PATH\n))\n
Option Mandatory Type Description template true string template name path true string path or link to the CSAR git-repository false string git repository git-checkout false string git checkout signature false path to the signature (default: template + \".asc\") key false assets name to verify the signature","tags":["Vintner"]},{"location":"interface/#vintner-templates-inspect","title":"vintner templates inspect","text":"

inspects the variable service template

CLIcURLJavaScriptPythonKotlin
vintner templates inspect --template ${TEMPLATE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\"}' \\\n${SERVER_ADDRESS}/templates/inspect\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/templates/inspect\", {\ntemplate: TEMPLATE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/templates/inspect\", json={\n\"template\": TEMPLATE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/templates/inspect\", json=mapOf(\n\"template\" to TEMPLATE\n))\n
Option Mandatory Type Description template true string template name","tags":["Vintner"]},{"location":"interface/#vintner-templates-list","title":"vintner templates list","text":"

lists all templates

CLIcURLJavaScriptPythonKotlin
vintner templates list 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/templates/list\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/templates/list\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/templates/list\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/templates/list\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-templates-open","title":"vintner templates open","text":"

opens template directory in a file browser

CLI
vintner templates open --template ${TEMPLATE}\n
Option Mandatory Type Description template true string template name","tags":["Vintner"]},{"location":"interface/#vintner-templates-path","title":"vintner templates path","text":"

returns the path to the template directory

CLIcURLJavaScriptPythonKotlin
vintner templates path --template ${TEMPLATE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\"}' \\\n${SERVER_ADDRESS}/templates/path\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/templates/path\", {\ntemplate: TEMPLATE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/templates/path\", json={\n\"template\": TEMPLATE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/templates/path\", json=mapOf(\n\"template\" to TEMPLATE\n))\n
Option Mandatory Type Description template true string template name","tags":["Vintner"]},{"location":"interface/#vintner-utils-key","title":"vintner utils key","text":"

generates a key

CLIcURLJavaScriptPythonKotlin
vintner utils key --key ${KEY}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"key\": \"${KEY}\"}' \\\n${SERVER_ADDRESS}/utils/key\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/utils/key\", {\nkey: KEY\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/utils/key\", json={\n\"key\": KEY\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/utils/key\", json=mapOf(\n\"key\" to KEY\n))\n
Option Mandatory Type Description key true string key name (must match /^[a-z-]+$/)","tags":["Vintner"]},{"location":"interface/#vintner-utils-nonce","title":"vintner utils nonce","text":"

generates a nonce

CLIcURLJavaScriptPythonKotlin
vintner utils nonce 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/utils/nonce\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/utils/nonce\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/utils/nonce\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/utils/nonce\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-utils-normative","title":"vintner utils normative","text":"

returns normative types

CLIcURLJavaScriptPythonKotlin
vintner utils normative 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/utils/normative\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/utils/normative\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/utils/normative\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/utils/normative\")\n
Option Mandatory Type Description orchestrator false string orchestrator dialect profile false boolean include profile entry (default: true) no-profile false boolean base false boolean include base types (default: true) no-base false boolean extended false boolean include extended types (default: true) no-extended false boolean format false string output format (choices: [\"yaml\",\"json\"], default: \"yaml\")","tags":["Vintner"]},{"location":"interface/#vintner-utils-rules","title":"vintner utils rules","text":"

returns technology rules

CLIcURLJavaScriptPythonKotlin
vintner utils rules 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/utils/rules\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/utils/rules\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/utils/rules\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/utils/rules\")\n
Option Mandatory Type Description format false string output format (choices: [\"yaml\",\"json\",\"latex\"], default: \"yaml\")","tags":["Vintner"]},{"location":"interface/#vintner-utils-scenarios","title":"vintner utils scenarios","text":"

returns deployment scenarios

CLIcURLJavaScriptPythonKotlin
vintner utils scenarios 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/utils/scenarios\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/utils/scenarios\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/utils/scenarios\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/utils/scenarios\")\n
Option Mandatory Type Description component false string component artifact false string artifact no-artifact false boolean technology false string technology hosting false string... hosting no-hosting false boolean quality false number format false string output format (choices: [\"yaml\",\"json\"], default: \"yaml\")","tags":["Vintner"]},{"location":"orchestrators/","title":"Orchestrators","text":"

This document holds information considering supported orchestrators. We currently support xOpera and Unfurl. Since both can only be installed on Linux, we implemented a WSL integration for both. To find out more about these orchestrators, checkout our TOSCA Orchestrator Selection Support System (TOSSS). Install, configure and enable your orchestrator as follows. For more information see Interface.

","tags":["Vintner","xOpera","Unfurl"]},{"location":"orchestrators/#xopera","title":"xOpera","text":"

We install xOpera using the following command. This will install xOpera v0.6.9 in a virtual environment. For a manual installation see the documentation.

vintner install xopera\n

Next, we configure Vintner to use xOpera.

vintner orchestrators init xopera\nvintner orchestrators enable --orchestrator xopera\n

Next, we attest that Vintner can correctly use xOpera.

vintner orchestrators attest --orchestrator xopera\n

If xOpera is running in WSL and Vintner on Windows, then configure Vintner as follows.

vintner orchestrators init xopera-wsl\nvintner orchestrators enable --orchestrator xopera-wsl\n

Next, we attest that Vintner can correctly use xOpera in WSL.

vintner orchestrators attest --orchestrator xopera-wsl\n
","tags":["Vintner","xOpera","Unfurl"]},{"location":"orchestrators/#unfurl","title":"Unfurl","text":"

We install Unfurl using the following command. This will install Unfurl v1.0.0 in a virtual environment. For a manual installation see the documentation.

vintner install unfurl\n

Next, we configure Vintner to use Unfurl.

vintner orchestrators init unfurl\nvintner orchestrators enable --orchestrator unfurl\n

Next, we attest that Vintner can correctly use Unfurl.

vintner orchestrators attest --orchestrator unfurl\n

If Unfurl is running in WSL and Vintner on Windows, then configure Vintner as follows.

vintner orchestrators init unfurl-wsl\nvintner orchestrators enable --orchestrator unfurl-wsl\n

To attest that Vintner can correctly use Unfurl, run the following command.

vintner orchestrators attest --orchestrator unfurl-wsl\n
","tags":["Vintner","xOpera","Unfurl"]},{"location":"orchestrators/#integrated-features","title":"Integrated Features","text":"

The following table describes which feature of the orchestrators are integrated. The orchestrators provide more features, see TOSSS.

Feature xOpera Unfurl Validate an application topology Deploy an application Access deployment outputs Continue the deployment of an application Update the service template of an application Undeploy an application Access node instance attributes","tags":["Vintner","xOpera","Unfurl"]},{"location":"orchestrators/#deployment-technologies","title":"Deployment Technologies","text":"

Under the scene, we are using the following deployment technologies.

Technology Version ansible (pip) 4.10.0 google-cloud-cli (apt) 432.0.0 kubernetes (pip) 24.2.0 openshift (pip) 0.13.2 openstacksdk (pip) 0.61 python-openstackclient (pip) 6.0.0 terraform (apt) 1.4.6","tags":["Vintner","xOpera","Unfurl"]},{"location":"orchestrators/#known-limitations","title":"Known Limitations","text":"
  • xOpera version 0.6.9 should be used. xOpera version 0.7.0 does not parse the templates as expected, see issues #257, #258, and #261.
  • xOpera deletes attribute assignments during updates, see issue #262.
","tags":["Vintner","xOpera","Unfurl"]},{"location":"publications/","title":"Publications","text":"

This document holds a list of selected publications.

","tags":["Misc","Publication","Zenodo"]},{"location":"publications/#hosting-aware-pruning-of-components-in-deployment-models","title":"Hosting-Aware Pruning of Components in Deployment Models","text":"
  • CLOSER 2024
  • https://doi.org/10.5220/0012671900003711
  • Step-by-Step Guide
  • Models of the Case Study (Relevant models start with \"unfurl-aware\")
  • GitHub Actions (Relevant jobs start with \"Unfurl Aware\")
  • GitHub Actions Raw Logs (Relevant jobs start with \"Unfurl Aware\")
  • Assets on Zenodo
  • @publication-stoetzner-2024-hosting-aware-pruning
@inproceedings{Stoetzner2024_HostingAwarePruning,\nTitle = {{Hosting-Aware Pruning of Components in Deployment Models}},\nAuthor = {St{\\\"o}tzner, Miles and Speth, Sandro and Becker, Steffen},\nYear = 2024,\nMonth = may,\nBooktitle = {Proceedings of the 14\\textsuperscript{th} International Conference on Cloud Computing and Services Science (CLOSER 2024)},\nPublisher = {SciTePress},\nPages = {149--158},\nDoi = {10.5220/0012671900003711},\nurl = {https://www.scitepress.org/Link.aspx?doi=10.5220/0012671900003711},\nprojects = {SofDCar,OpenTOSCA}\n}\n
","tags":["Misc","Publication","Zenodo"]},{"location":"publications/#pruning-modes-for-deployment-models-from-manual-modeling-to-automated-removal-of-elements-and-their-implications","title":"Pruning Modes for Deployment Models: From Manual Modeling to Automated Removal of Elements and Their Implications","text":"
  • CLOSER 2024
  • https://doi.org/10.5220/0012568300003711
  • Step-by-Step Guide
  • Models of the Experiments
  • Models of the Case Study (Relevant models start with \"xopera-pruning\")
  • GitHub Actions (Relevant jobs start with \"xOpera Pruning Mode\")
  • GitHub Actions Raw Logs (Relevant jobs start with \"xOpera Pruning Mode\")
  • Assets on Zenodo
  • @publication-stoetzner-2024-pruning-modes
@inproceedings{Stoetzner2024_PruningModes,\nTitle = {{Pruning Modes for Deployment Models: From Manual Modeling to Automated Removal of Elements and Their Implications}},\nAuthor = {St{\\\"o}tzner, Miles and Speth, Sandro and Becker, Steffen},\nYear = 2024,\nMonth = may,\nBooktitle = {Proceedings of the 14\\textsuperscript{th} International Conference on Cloud Computing and Services Science (CLOSER 2024)},\nPublisher = {SciTePress},\nPages = {65--76},\nDoi = {10.5220/0012568300003711},\nurl = {https://www.scitepress.org/Link.aspx?doi=10.5220/0012568300003711},\nprojects = {SofDCar,OpenTOSCA}\n}\n
","tags":["Misc","Publication","Zenodo"]},{"location":"publications/#a-systematic-technology-review-of-general-purpose-open-source-tosca-orchestrators","title":"A Systematic Technology Review of General-Purpose Open-Source TOSCA Orchestrators","text":"

St\u00f6tzner, M., Becker, S., Harzenetter, L., Leymann, F., Weder, B., Breitenb\u00fccher, U., Kopp, O., Klein, K., & Soldani, J. (2023, December). A Systematic Technology Review of General-Purpose Open-Source TOSCA Orchestrators. Proceedings of the IEEE/ACM 16th International Conference on Utility and Cloud Computing (UCC 2023), 1\u201311. doi:10.1145/3603166.3632130

  • UCC 2023
  • https://doi.org/10.1145/3603166.3632130
  • https://tosss.opentosca.org
  • https://github.com/OpenTOSCA/opentosca-tosss
  • Assets on Zenodo
@inproceedings{Stoetzner2023_TOSSS,\nTitle         = {{A Systematic Technology Review of General-Purpose Open-Source TOSCA Orchestrators}},\nAuthor        = {St\\\"{o}tzner, Miles and Becker, Steffen and Harzenetter, Lukas and Leymann, Frank and Weder, Benjamin and Breitenb\\\"{u}cher, Uwe and Kopp, Oliver and Klein, Kevin and Soldani, Jacopo},\nYear          = 2023,\nMonth         = dec,\nBooktitle     = {Proceedings of the IEEE/ACM 16th International Conference on Utility and Cloud Computing (UCC 2023)},\nPublisher     = {ACM},\nAddress       = {New York, NY, USA},\nPages         = {1--11},\narticleno     = {6},\nDoi           = {10.1145/3603166.3632130},\nisbn          = {9798400702341},\nurl           = {https://doi.org/10.1145/3603166.3632130},\nprojects      = {SofDCar,OpenTOSCA,EniQmA},\nnumpages      = {11},\nkeywords      = {TOSCA, orchestrator, systematic technology review, classification framework, general-purpose, open-source},\n}\n
","tags":["Misc","Publication","Zenodo"]},{"location":"publications/#enhancing-deployment-variability-management-by-pruning-elements-in-deployment-models","title":"Enhancing Deployment Variability Management by Pruning Elements in Deployment Models","text":"

St\u00f6tzner, M., Klinaku, F., Pesl, R. D., & Becker, S. (2023, December). Enhancing Deployment Variability Management by Pruning Elements in Deployment Models. Proceedings of the IEEE/ACM 16th International Conference on Utility and Cloud Computing (UCC 2023), 1\u201311. doi:10.1145/3603166.3632143

  • UCC 2023
  • https://doi.org/10.1145/3603166.3632143
  • Step-by-Step Guide
  • Model of the Motivating Scenario
  • Models of the Complexity Evaluation
  • GitHub Actions (Relevant jobs start with \"xOpera Pruning\")
  • GitHub Actions Raw Logs (Relevant jobs start with \"xOpera Pruning\")
  • Assets on Zenodo
  • @publication-stoetzner-2023-pruning
@inproceedings{Stoetzner2023_Pruning,\nTitle         = {{Enhancing Deployment Variability Management by Pruning Elements in Deployment Models}},\nAuthor        = {St\\\"{o}tzner, Miles and Klinaku, Floriment and Pesl, Robin Dominic and Becker, Steffen},\nYear          = 2023,\nMonth         = dec,\nBooktitle     = {Proceedings of the IEEE/ACM 16th International Conference on Utility and Cloud Computing (UCC 2023)},\nPublisher     = {ACM},\nAddress       = {New York, NY, USA},\nPages         = {1--11},\narticleno     = {18},\nDoi           = {10.1145/3603166.3632143},\nisbn          = {9798400702341},\nurl           = {https://doi.org/10.1145/3603166.3632143},\nprojects      = {SofDCar,OpenTOSCA},\nnumpages      = {11},\nkeywords      = {pruning, deployment models, variability management, TOSCA},\n}\n
","tags":["Misc","Publication","Zenodo"]},{"location":"publications/#using-variability4tosca-and-opentosca-vintner-for-holistically-managing-deployment-variability","title":"Using Variability4TOSCA and OpenTOSCA Vintner for Holistically Managing Deployment Variability","text":"

St\u00f6tzner, M., Breitenb\u00fccher, U., Pesl, R. D., & Becker, S. (2024). Using Variability4TOSCA and OpenTOSCA Vintner for Holistically Managing Deployment Variability. Proceedings of the Demonstration Track at International Conference on Cooperative Information Systems 2023, CoopIS 2023, Groningen, The Netherlands, October 30 - November 3, 2023, CEUR-WS.org, online https://ceur-ws.org/Vol-3552/paper-8.pdf

  • CoopIS 2023 Demo
  • https://ceur-ws.org/Vol-3552/paper-8.pdf
  • Step-by-Step Guide
  • Demo Video
  • Model of the Motivating Scenario
  • GitHub Actions (Relevant jobs start with \"Unfurl Artifacts\")
  • GitHub Actions Raw Logs (Relevant steps start with \"Unfurl Artifacts\")
  • Assets on Zenodo
  • @publication-stoetzner-2023-vdmm-v2-demo
@inproceedings{Stoetzner2023_VDMMv2Demo,\nTitle         = {{Using Variability4TOSCA and OpenTOSCA Vintner for Holistically Managing Deployment Variability}},\nAuthor        = {St{\\\"o}tzner, Miles and Breitenb{\\\"u}cher, Uwe and Pesl, Robin D. and Becker, Steffen},\nYear          = 2023,\nMonth         = oct,\nBooktitle     = {Proceedings of the Demonstration Track at International Conference on Cooperative Information Systems 2023},\nPublisher     = {{CEUR-WS.org}},\nPages         = {36--40},\nSeries        = {CEUR Workshop Proceedings},\nVolume        = {3552},\nurl           = {https://ceur-ws.org/Vol-3552/paper-8.pdf},\ntype          = {Demonstration},\nprojects      = {SofDCar,OpenTOSCA},\n}\n
","tags":["Misc","Publication","Zenodo"]},{"location":"publications/#managing-the-variability-of-component-implementations-and-their-deployment-configurations-across-heterogeneous-deployment-technologies","title":"Managing the Variability of Component Implementations and Their Deployment Configurations Across Heterogeneous Deployment Technologies","text":"

St\u00f6tzner, M., Breitenb\u00fccher, U., Pesl, R. D., & Becker, S. (2024). Managing the Variability of Component Implementations and Their Deployment Configurations Across Heterogeneous Deployment Technologies. Cooperative Information Systems, 61\u201378. doi:10.1007/978-3-031-46846-9_4

  • CoopIS 2023
  • https://doi.org/10.1007/978-3-031-46846-9_4
  • Step-by-Step Guide
  • Model of the Motivating Scenario
  • Models of the Complexity Evaluation
  • GitHub Actions (Relevant jobs start with \"Unfurl Artifacts\")
  • GitHub Actions Raw Logs (Relevant jobs start with \"Unfurl Artifacts\")
  • Assets on Zenodo
  • @publication-stoetzner-2023-vdmm-v2
@inproceedings{Stoetzner2023_VDMMv2,\nTitle         = {{Managing the Variability of Component Implementations and Their Deployment Configurations Across Heterogeneous Deployment Technologies}},\nAuthor        = {St{\\\"o}tzner, Miles and Breitenb{\\\"u}cher, Uwe and Pesl, Robin D. and Becker, Steffen},\nYear          = 2023,\nMonth         = oct,\nBooktitle     = {Cooperative Information Systems},\nPublisher     = {Springer Nature Switzerland},\nAddress       = {Cham},\nPages         = {61--78},\nDoi           = {10.1007/978-3-031-46846-9_4},\nisbn          = {978-3-031-46846-9},\nurl           = {https://link.springer.com/chapter/10.1007/978-3-031-46846-9_4},\nprojects      = {SofDCar,OpenTOSCA},\n}\n
","tags":["Misc","Publication","Zenodo"]},{"location":"publications/#developing-the-software-of-future-cars-a-car-devops-approach","title":"Developing the Software of Future Cars: A Car DevOps Approach","text":"

Weller, M., St\u00f6tzner, M., Klinaku, F., & Becker, S. (2023). Developing the Software of Future Cars: A Car DevOps Approach. Softwaretechnik-Trends, 43(2).

  • Softwaretechnik-Trends 2024
  • https://fb-swt.gi.de/publikationen/softwaretechnik-trends
@article{Weller2023_SofDCar,\nTitle         = {{Developing the Software of Future Cars: A Car DevOps Approach}},\nAuthor        = {Weller, Marcel and St{\\\"o}tzner, Miles and Klinaku, Floriment and Becker, Steffen},\nYear          = 2023,\nMonth         = may,\nJournal       = {Softwaretechnik-Trends},\nPublisher     = {Gesellschaft f{\\\"u}r Informatik},\nPages         = {3--10},\nVolume        = {43},\nNumber        = {2},\nissn          = {0720-8928},\nprojects      = {SofDCar,OpenTOSCA},\n}\n
","tags":["Misc","Publication","Zenodo"]},{"location":"publications/#modeling-different-deployment-variants-of-a-composite-application-in-a-single-declarative-deployment-model","title":"Modeling Different Deployment Variants of a Composite Application in a Single Declarative Deployment Model","text":"

St\u00f6tzner, M., Becker, S., Breitenb\u00fccher, U., K\u00e1lm\u00e1n, K., & Leymann, F. (2022). Modeling Different Deployment Variants of a Composite Application in a Single Declarative Deployment Model. Algorithms, 15(10), 382. doi:10.3390/a15100382

  • Algorithms 2022
  • https://doi.org/10.3390/a15100382
  • Step-by-Step Guide
  • Model of the Motivating Scenario using Unfurl
  • Model of the Motivating Scenario using xOpera
  • GitHub Actions (Relevant jobs start with \"Unfurl Motivation\" and \"xOpera Motivation\")
  • GitHub Actions Raw Logs (Relevant jobs start with \"Unfurl Motivation\" and \"xOpera Motivation\")
  • Assets on Zenodo
  • @publication-stoetzner-2022-vdmm
@article{Stoetzner2022_VDMM,\nTitle         = {{Modeling Different Deployment Variants of a Composite Application in a Single Declarative Deployment Model}},\nAuthor        = {St{\\\"o}tzner, Miles and Becker, Steffen and Breitenb{\\\"u}cher, Uwe and K{\\'a}lm{\\'a}n, K{\\'e}pes and Leymann, Frank},\nYear          = 2022,\nMonth         = oct,\nJournal       = {Algorithms},\nPublisher     = {MDPI},\nPages         = {1--25},\narticleno     = {382},\nVolume        = {15},\nNumber        = {10},\nDoi           = {10.3390/a15100382},\nurl           = {https://www.mdpi.com/1999-4893/15/10/382},\nprojects      = {SofDCar,OpenTOSCA},\n}\n
","tags":["Misc","Publication","Zenodo"]},{"location":"resources/","title":"Resources","text":"

This document holds a collection of interesting resources, such as the TOSCA specifications, introductions, popular orchestrators and TOSCA repositories.

","tags":["Misc"]},{"location":"resources/#specifications","title":"Specifications","text":"
  • TOSCA Version 1.0
  • TOSCA Simple Profile in YAML Version 1.3
  • TOSCA Version 2.0
  • Variability4TOSCA
  • Queries4TOSCA
  • TOSCA SofDCar Profile
","tags":["Misc"]},{"location":"resources/#introductions","title":"Introductions","text":"
  • Understanding OASIS TOSCA
  • Portable Cloud Services Using TOSCA
  • TOSCA: Portable Automated Deployment and Management of Cloud Applications
  • Unified Invocation of Scripts and Services for Provisioning, Deployment, and Management of Cloud Applications Based on TOSCA
  • Declarative vs. Imperative: Two Modeling Patterns for the Automated Deployment of Applications
  • TOSCA Primer Version 1.0
  • TOSCA Introduction
","tags":["Misc"]},{"location":"resources/#orchestrators","title":"Orchestrators","text":"
  • Cloudify (Getting Started) (Hello World Example)
  • OpenTOSCA (Getting Started)
  • Unfurl (Getting Started)
  • xOpera (Getting Started) (Hello World Example)
  • Yorc (Getting Started) (Guides)
","tags":["Misc"]},{"location":"resources/#other-interesting-tools","title":"Other Interesting Tools","text":"
  • Alien4Cloud (TOSCA management layer) (Getting Started)
  • Ansible (Popular deployment technology for implementation artifacts)
  • Eclipse Winery (TOSCA Modeling Tool)
","tags":["Misc"]},{"location":"resources/#tosca-repositories","title":"TOSCA Repositories","text":"
  • OpenTOSCA TOSCA Definitions Common (TOSCA 1.0) (Winery) (OpenTOSCA)
  • RADON Particles (TOSCA 1.3) (Winery) (xOpera)
  • Ystia Forge (TOSCA 1.3) (Yorc)
  • Yorc Samples (TOSCA 1.3) (Alien4Cloud) (Yorc)
  • Alien4Cloud CSAR Public Library (TOSCA 1.3) (Alien4Cloud) (Yorc)
  • Unfurl Examples (TOSCA 1.3) (Unfurl)
  • Unfurl Tests Examples (TOSCA 1.3) (Unfurl)
  • xOpera Examples (TOSCA 1.3) (xOpera)
","tags":["Misc"]},{"location":"resources/#other-resources","title":"Other Resources","text":"
  • IAAS TOSCA-Related Research
  • OASIS Known TOSCA Implementations
  • OpenTOSCA Resources
","tags":["Misc"]},{"location":"uninstallation/","title":"Uninstallation","text":"

Warning

Undeploy all applications first.

This document holds instructions on uninstalling Vintner.

Depending on the installation method, uninstall Vintner as follows.

Script/ ManualNPMYarn (Classic)Docker
vintner setup clean --force\nrm \"$(which vintner)\"\n
vintner setup clean --force\nnpm uninstall --global opentosca-vintner\n
vintner setup clean --force\nyarn global remove opentosca-vintner\n
docker stop vintner\ndocker remove vintner\n

Next, remove the directories used to persists container data on the docker host.

","tags":["Vintner","Docker"]},{"location":"usage/","title":"Usage","text":"

This document holds instructions on using Vintner.

","tags":["Vintner"]},{"location":"usage/#use-the-cli","title":"Use the CLI","text":"

First, we ensure that Vintner can be executed.

vintner --version\n

From there on use the help command. See Interface for a complete interface specification.

vintner --help\n
","tags":["Vintner"]},{"location":"usage/#enable-an-orchestrator","title":"Enable an Orchestrator","text":"

Vintner requires an orchestrator for the deployment. See Orchestrators for a complete interface specification.

First, we initialize the config.

vintner orchestrators init ${ORCHESTRATOR_NAME}\n

Next, we enable the orchestrator.

vintner orchestrators enable ${ORCHESTRATOR_NAME}\n
","tags":["Vintner"]},{"location":"usage/#deploy-an-application","title":"Deploy an Application","text":"

First, we import the Variability4TOSCA template.

vintner templates import --template ${TEMPLATE_NAME} --path ${TEMPLATE_PATH}\n

Next, we initialize an application instance.

vintner instances init --instance ${INSTANCE_NAME} --template ${TEMPLATE_NAME}\n

Next, we specify variability inputs.

Next, we resolve the variability.

vintner instances resolve --instance ${INSTANCE_NAME} --inputs ${VARIABILITY_INPUTS}\n

Next, we specify deployment inputs.

Next, we deploy the application.

vintner instances deploy --instance ${INSTANCE_NAME} --inputs ${DEPLOYMENT_INPUTS_PATH}\n
","tags":["Vintner"]},{"location":"usage/#undeploy-an-application","title":"Undeploy an Application","text":"

Eventually, we undeploy the application.

vintner instances undeploy --instance ${INSTANCE_NAME}\n
","tags":["Vintner"]},{"location":"usage/#configuration","title":"Configuration","text":"

The following environment variables can be used for configuration.

Environment Variable Default Description OPENTOSCA_VINTNER_HOME_DIR ${HOME_DIR}/.opentosca_vintner Configures the home directory of Vintner.","tags":["Vintner"]},{"location":"usage/#start-the-server","title":"Start the Server","text":"

Vintner can be used as server. To start the server, run the following command.

vintner server start\n
","tags":["Vintner"]},{"location":"versions/","title":"Versions","text":"

This document holds information about the versioning concept of Vintner.

Vintner uses full commit hashes as version numbers. The current version can be accessed using vintner --version.

Vintner is a research prototype. There exists only a single GitHub release. Older releases are removed when a new GitHub release is published. Vintner versions used in publications are archived using Zenodo.

For each GitHub release, there exists a Docker Image. These images are not removed.

The versions used in package managers, such as npm, use semantic versioning.

Package Version Vintner Version 0.1.7 a3d1b58a49a02a274bc5c5124e44eca4a1b2b7a3 0.1.5 0ca9400c337530d629125c2080db3710824f77ad 0.1.4 5e5e3bca56ad702ec0d3c3561a1eac3363576a3c 0.1.3 b75c2fdb75334a7f6ff531ad8b4e47bd188b964a","tags":["Vintner"]},{"location":"about-us/","title":"About Us","text":"

This project is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Misc"]},{"location":"about-us/#license","title":"License","text":"

This project is licensed under Apache-2.0.

","tags":["Misc"]},{"location":"about-us/#haftungsausschluss","title":"Haftungsausschluss","text":"

Dies ist ein Forschungsprototyp. Die Haftung f\u00fcr entgangenen Gewinn, Produktionsausfall, Betriebsunterbrechung, entgangene Nutzungen, Verlust von Daten und Informationen, Finanzierungsaufwendungen sowie sonstige Verm\u00f6gens- und Folgesch\u00e4den ist, au\u00dfer in F\u00e4llen von grober Fahrl\u00e4ssigkeit, Vorsatz und Personensch\u00e4den ausgeschlossen.

","tags":["Misc"]},{"location":"about-us/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Misc"]},{"location":"contributing/code-of-conduct/","title":"Contributor Covenant Code of Conduct","text":"","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#our-pledge","title":"Our Pledge","text":"

We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.

","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#our-standards","title":"Our Standards","text":"

Examples of behavior that contributes to a positive environment for our community include:

  • Demonstrating empathy and kindness toward other people
  • Being respectful of differing opinions, viewpoints, and experiences
  • Giving and gracefully accepting constructive feedback
  • Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
  • Focusing on what is best not just for us as individuals, but for the overall community

Examples of unacceptable behavior include:

  • The use of sexualized language or imagery, and sexual attention or advances of any kind
  • Trolling, insulting or derogatory comments, and personal or political attacks
  • Public or private harassment
  • Publishing others' private information, such as a physical or email address, without their explicit permission
  • Other conduct which could reasonably be considered inappropriate in a professional setting
","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#enforcement-responsibilities","title":"Enforcement Responsibilities","text":"

Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.

Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.

","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#scope","title":"Scope","text":"

This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.

","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#enforcement","title":"Enforcement","text":"

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at miles.stoetzner@iste.uni-stuttgart.de. All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the reporter of any incident.

","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#enforcement-guidelines","title":"Enforcement Guidelines","text":"

Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:

","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#1-correction","title":"1. Correction","text":"

Community Impact: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.

Consequence: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.

","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#2-warning","title":"2. Warning","text":"

Community Impact: A violation through a single incident or series of actions.

Consequence: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.

","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#3-temporary-ban","title":"3. Temporary Ban","text":"

Community Impact: A serious violation of community standards, including sustained inappropriate behavior.

Consequence: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.

","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#4-permanent-ban","title":"4. Permanent Ban","text":"

Community Impact: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.

Consequence: A permanent ban from any sort of public interaction within the community.

","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#attribution","title":"Attribution","text":"

This Code of Conduct is adapted from the Contributor Covenant, version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by Mozilla's code of conduct enforcement ladder.

For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.

","tags":["Contributing"]},{"location":"contributing/development/","title":"Development","text":"

This document holds instructions on developing Vintner.

","tags":["Contributing"]},{"location":"contributing/development/#github-flow","title":"GitHub Flow","text":"

Our branching workflow follows GitHub Flow.

","tags":["Contributing"]},{"location":"contributing/development/#branch-naming-convention","title":"Branch Naming Convention","text":"

Branches should be names as follows.

  • feature-short-title for features.
  • fix-short-title for bug fixes.
  • refactor-short-title for refactoring.
  • chore-short-title for chores.
  • docs-short-title for documentations.
  • project-short-title for project, such as thesis, EnPro, StuPro ...
","tags":["Contributing"]},{"location":"contributing/development/#squash-and-merge","title":"Squash and Merge","text":"

Squash your commits into a single commit with a short but meaningful message. The commit message should have a link to the merge request. The branch is automatically deleted once merged.

","tags":["Contributing"]},{"location":"contributing/development/#tags","title":"Tags","text":"

A tag must be created for each publication, thesis, etc. For example, the following commands create and push the tag for the publication \"Modeling Different Deployment Variants of a Composite Application in a Single Declarative Deployment Model\" published by St\u00f6tzner et al. in 2022.

git tag -s publication-stoetzner-2022-vdmm -m \"Modeling Different Deployment Variants of a Composite Application in a Single Declarative Deployment Model\"\ngit push origin publication-stoetzner-2022-vdmm\n
","tags":["Contributing"]},{"location":"contributing/development/#command-line-interface","title":"Command Line Interface","text":"

Info

./task cli uses src/cli/index.ts while ./task vintner uses build/cli/index.js. Therefore, run ./task cli to execute the current code without building it first.

We use commander.js to implement the CLI. The entry point is src/cli/index.ts. Execute a CLI command during development as follows.

./task cli -- [command] [options]\n
","tags":["Contributing"]},{"location":"contributing/development/#server","title":"Server","text":"

We use express to implement the server. The entry point is src/server/index.ts. Run a development server on http://localhost:3000 with live-reload as follows.

./task server:serve\n
","tags":["Contributing"]},{"location":"contributing/development/#tests","title":"Tests","text":"

We use mocha, chai, and nyc for testing. Respective tests are inside the tests directory. Run the tests as follows.

./task test\n

On pushes to the main branch or on pull requests, the tests workflow is triggered. This workflow runs the tests.

","tags":["Contributing"]},{"location":"contributing/development/#lint","title":"Lint","text":"

We use ESLint for code linting. Lint typescript as follows.

./task lint:check\n

Fix lint problems as follows.

./task lint:fix\n
","tags":["Contributing"]},{"location":"contributing/development/#code-style","title":"Code Style","text":"

We use Prettier for code formatting. Check the code style as follows.

./task style:check\n

Fix code style problems as follows.

./task style:fix\n
","tags":["Contributing"]},{"location":"contributing/development/#benchmark","title":"Benchmark","text":"

Run the following command, to run to benchmark the variability resolving.

./task benchmark\n
","tags":["Contributing"]},{"location":"contributing/development/#dependencies","title":"Dependencies","text":"

We use license-checker to handle licenses of (transitive) dependencies. Check that (transitive) dependencies are licensed as expected as follows. This check is also executed inside workflows.

./task licenses:check\n
","tags":["Contributing"]},{"location":"contributing/development/#patch-packages","title":"Patch Packages","text":"

We use patch-package to fix dependencies. For example, adding logic-solver.d.ts to logic-solver. Therefore, proceed as follows.

First, make changes to the package inside node_modules. Then, create the patch.

yarn patch-package --exclude 'nothing' ${package-name}\n
","tags":["Contributing"]},{"location":"contributing/development/#night","title":"Night","text":"

The Night workflow is scheduled for every tuesday at 420. This workflow ensures that the latest release is correctly signed and can be executed. Moreover, integration tests are executed, which use xOpera, Unfurl, and GCP.

","tags":["Contributing"]},{"location":"contributing/documentation/","title":"Documentation","text":"

This document holds instructions on writing the documentation.

","tags":["Contributing"]},{"location":"contributing/documentation/#guidelines","title":"Guidelines","text":"

We follow the following guidelines when writing documentation.

  • start a document with \"This document holds ...\"
  • use \"we\" instead of \"you\" or imperative
  • use \"Next, we\" instead of \"Then, we ...\", \"We then ...\", etc.
  • use \", see\" instead of \"..., as given in ...\", \"..., as presented in ...\", etc.
  • use the step-by-step guide template in docs/templates/guide
  • use the specification template in docs/templates/specification
  • use \"as follows\" instead of \"in the following\"
","tags":["Contributing"]},{"location":"contributing/documentation/#mkdocs","title":"MkDocs","text":"

Warning

This only works on Linux.

We use Material for MkDocs as documentation system. The files are located in the docs directory. Custom macros are implemented in docs/macros.py using mkdocs-macros.

First, install all dependencies. This will install several apt packages on the system and mkdocs in a virtual environment.

./task docs:install\n

Next, reload your session.

Next, start a local development server on http://localhost:8000.

./task docs:serve\n

Next, open the docs in your browser.

./task docs:open\n
","tags":["Contributing"]},{"location":"contributing/documentation/#autogenerated-markdown","title":"Autogenerated Markdown","text":"

Some Markdown files are autogenerated, e.g., Dependencies or Interface. Changes must be made in the respective template files. Files are generated during the Release workflow and overwrite committed files. To warn the developer, include the following custom marco at the top of the template.

{{ autogenerated_notice('./task docs:generate:dependencies') }}\n

This will render the following warning, if the docs are served using ./task docs:serve but not when built.

Warning

Do not edit! This file is autogenerated using ./task docs:generate:dependencies and will be overwritten during the Release workflow! (This warning is not shown once deployed)

","tags":["Contributing"]},{"location":"contributing/documentation/#casts","title":"Casts","text":"

Warning

This only works on Linux.

The docs contain recorded demos. We use the following tools.

  • asciinema to record a terminal session.
  • demo-magic to automate the terminal session.
  • asciinema-player to embed casts in a standalone manner.

Casts are not recorded during any workflow. The following command can be used to record the home cast for the landing page.

./task docs:record:home\n

A cast can be embedded using the custom macro asciinema_player inside a Markdown file.

{{ asciinema_player('getting-started') }}\n

This will embed the cast docs/docs/assets/casts/getting-started.cast inside the page as follows.

","tags":["Contributing"]},{"location":"contributing/documentation/#export","title":"Export","text":"

Warning

This only works on Linux.

To export registered pages as PDF, run the following command. The PDFs are stored in dist-docs.

./task docs:export\n

By default, https://vintner.opentosca.org is used. To export pages of http://localhost:8000, run the following command.

./task docs:export:local\n
","tags":["Contributing"]},{"location":"contributing/documentation/#interface","title":"Interface","text":"

To generate the documentation for the CLI and REST API, run the following command. This command is also executed during the Release workflow and overwrites committed files.

./task docs:generate:interface\n
","tags":["Contributing"]},{"location":"contributing/documentation/#dependencies","title":"Dependencies","text":"

To generate a list of licenses for all (transitive) dependencies, run the following command This command is also executed during the Release workflow and overwrites committed files.

./task docs:generate:dependencies\n

The list includes information, such as package name, version, license, etc., and is written to a CSV file. At the same time, the Dependencies page is generated.

","tags":["Contributing"]},{"location":"contributing/documentation/#puccini","title":"Puccini","text":"

Warning

This only works on Linux.

We use puccini to validate a service template. Therefore, run the following command.

./task puccini:check:single path/to/service-template.yaml\n

To validate all registered service templates, run the following command.

./task puccini:check\n
","tags":["Contributing"]},{"location":"contributing/documentation/#plantuml","title":"PlantUML","text":"

We use PlantUML for visualizing UML diagrams. Read PlantUML Guide for modeling instructions. We use mkdocs_build_plantuml to plot PlantUML to SVGs when building the documentation. Note, we use the public PlantUML server https://www.plantuml.com/plantuml for plotting SVGs.

","tags":["Contributing"]},{"location":"contributing/documentation/#queries4tosca","title":"Queries4TOSCA","text":"

To generate the conformance tests for Queries4TOSCA, run the following command. This command is also executed during the Release workflow and overwrites committed files.

./task docs:generate:query\n
","tags":["Contributing"]},{"location":"contributing/documentation/#tosca-sofdcar-profile","title":"TOSCA SofDCar Profile","text":"

To generate the TOSCA SofDCar Profile, run the following command. This command is also executed during the Release workflow and overwrites committed files.

./task docs:generate:query\n
","tags":["Contributing"]},{"location":"contributing/documentation/#variability4tosca","title":"Variability4TOSCA","text":"

To generate the conformance tests for Variability4TOSCA, run the following command. This command is also executed during the Release workflow and overwrites committed files.

./task docs:generate:query\n
","tags":["Contributing"]},{"location":"contributing/documentation/#limitations","title":"Limitations","text":"
  • Performance is suffering due to the heavy use of plugins.
  • It is not possible to configure which release should be shown in the navigation bar. The latest release is always use which is in general correct.
","tags":["Contributing"]},{"location":"contributing/notes/","title":"Notes","text":"

This document holds a collection of arbitrary notes.

","tags":["Contributing"]},{"location":"contributing/notes/#filesystem","title":"Filesystem","text":"","tags":["Contributing"]},{"location":"contributing/notes/#home-directory","title":"Home Directory","text":"
${vintner_home}/\n\u251c\u2500 templates/\n\u251c\u2500 instances/\n\u251c\u2500 assets/\n\u251c\u2500 plugins.yaml\n
","tags":["Contributing"]},{"location":"contributing/notes/#instance-directory","title":"Instance Directory","text":"
${vintner_home}/\n\u251c\u2500 instances/\n\u2502  \u251c\u2500 ${instance-name}/\n\u2502  \u2502  \u251c\u2500 data/\n\u2502  \u2502  \u251c\u2500 service-inputs/\n\u2502  \u2502  \u2502  \u251c\u2500 ${timestamp}.yaml\n\u2502  \u2502  \u251c\u2500 templates/\n\u2502  \u2502  \u2502  \u251c\u2500 ${timestamp}/\n\u2502  \u2502  \u2502  \u2502  \u251c\u2500 service-template.${timestamp}.yaml\n\u2502  \u2502  \u2502  \u2502  \u251c\u2500 variability-inputs.${timestamp}.yaml\n\u2502  \u2502  \u2502  \u2502  \u251c\u2500 variable-service-template.yaml\n\u2502  \u2502  \u2502  \u2502  \u251c\u2500 ...\n\u2502  \u2502  \u251c\u2500 info.yaml\n\u2502  \u2502  \u251c\u2500 ...\n\u2502  \u251c\u2500 ...\n\u251c\u2500 ...\n
","tags":["Contributing"]},{"location":"contributing/notes/#instance-info","title":"Instance Info","text":"Keyname Mandatory Type Description name true String Instance name state true String Instance state creation_timestamp true Number ISO milliseconds of creation date resolved_timestamp false Number ISO milliseconds of latest variablity inputs and variability-resolved service template template_timestamp true Number ISO milliseconds of latest variable service template service_inputs_timestamp false Number ISO milliseconds of latest service inputs","tags":["Contributing"]},{"location":"contributing/notes/#instance-state-machine","title":"Instance State Machine","text":"","tags":["Contributing"]},{"location":"contributing/notes/#template-config","title":"Template Config","text":"

A template might have a config.yaml at root of the following type.

export type Config = {\ndependencies: Dependencies\n}\nexport type Dependencies = TemplateDependency[]\nexport type TemplateDependency = {\nsource: string\ntarget?: string\n}\n
","tags":["Contributing"]},{"location":"contributing/notes/#workflows","title":"Workflows","text":"","tags":["Contributing"]},{"location":"contributing/notes/#initialize-a-new-instance","title":"Initialize a new Instance","text":"

vintner instances init

  1. Instance directory is created.
  2. Extracted CSAR (Template) is copied into instance template directory.
  3. Instance info is updated
","tags":["Contributing"]},{"location":"contributing/notes/#resolve-the-variability-of-an-instance","title":"Resolve the Variability of an Instance","text":"

vintner instances resolve

  1. Variability inputs are stored in the instance template directory.
  2. Variability in variable service template is resolved based on given variability inputs.
  3. Variability-resolved service template is stored in instance template directory.
","tags":["Contributing"]},{"location":"contributing/notes/#deploy-an-instance","title":"Deploy an Instance","text":"

vintner instances deploy

  1. Deployment inputs are copied to the service inputs directory.
  2. Deployment command is sent to orchestrator. Variability-resolved service template is used.
","tags":["Contributing"]},{"location":"contributing/notes/#continue-an-instance-deployment","title":"Continue an Instance Deployment","text":"

vintner instances continue

  1. Continue deployment command is sent to the orchestrator. Variability-resolve service templated is used. For example, to rerun a failed deployment.
","tags":["Contributing"]},{"location":"contributing/notes/#swap-an-instance-template","title":"Swap an Instance Template","text":"

vintner instances swap

  1. New template is copied into (new) instance template directory
  2. Instance info is updated
","tags":["Contributing"]},{"location":"contributing/notes/#update-an-instance","title":"Update an Instance","text":"

vintner instances update

  1. Deployment inputs are copied to the service inputs directory.
  2. Instance info is updated.
  3. Update command is sent to orchestrator. Variability-resolved service template is used.

Note, requires to resolve variability first. In contrast to deploying an instance, deployment inputs can be changed and the update command instead of the deploy command is sent to the orchestrator.

","tags":["Contributing"]},{"location":"contributing/notes/#adapt-an-instance","title":"Adapt an Instance","text":"

vintner instances adapt

  1. Sensor data is collected and stored as variability inputs.
  2. Variability is resolved based on the new variability inputs.
  3. Instance is updated based on the new variability-resolved topology template.
  4. Instance info is updated.

In contrast to updating an instance template, adapting an instance regenerates the variability-resolve topology template and does not swap the variable topology template. In contrast to updating an instance, variability inputs change and variability is resolved.

","tags":["Contributing"]},{"location":"contributing/notes/#undeploy-an-instance","title":"Undeploy an Instance","text":"

vintner instances undeploy

  1. Undeployment command is sent to orchestrator.
","tags":["Contributing"]},{"location":"contributing/notes/#delete-an-instance","title":"Delete an Instance","text":"

vintner instances delete

  1. Instance directory is deleted.

Note, this does not undeploy the instance.

","tags":["Contributing"]},{"location":"contributing/notes/#conventions","title":"Conventions","text":"
  • get${data} returns path to the data, e.g., Instance#getServiceInputs.
  • load${data} returns data loaded from the filesystem, e.g. Instance#loadServiceInputs.
  • set${data} writes data to filesystem, e.g. Instance#setService.
","tags":["Contributing"]},{"location":"contributing/notes/#general-helpful-tools-on-linux","title":"General Helpful Tools on Linux","text":"
sudo apt-get update -y && sudo apt-get install sudo unzip tree nano wget jq net-tools curl git stress nmap -y\n
","tags":["Contributing"]},{"location":"contributing/notes/#put-some-stress-on-cpu-and-memory","title":"Put Some Stress on CPU and Memory","text":"
stress --cpu 18 --vm 36 --vm-bytes 1024M\n
","tags":["Contributing"]},{"location":"contributing/notes/#reverse-ssh-tunnel","title":"Reverse SSH Tunnel","text":"
ssh -N -R 2999:192.168.178.46:3001 pi\n
","tags":["Contributing"]},{"location":"contributing/notes/#executable-file-under-windows","title":"Executable File under Windows","text":"
git update-index --chmod=+x <path to file>\n
","tags":["Contributing"]},{"location":"contributing/notes/#bwcloud-blocked-ports","title":"bwCloud Blocked Ports","text":"

Some ports are blocked when using bwCloud: https://www.bw-cloud.org/de/bwcloud_scope/netzwerk

","tags":["Contributing"]},{"location":"contributing/notes/#naming-convention","title":"Naming Convention","text":"

Types should be named according to the following pattern.

type     = [domain]+.entity[.Name]+\nentity   = \"nodes\" | \"relationships\" | \"capabilities\" | \"artifacts\" | \"datatypes\" | \"groups\n         | \"policies\" | \"interfaces\"\nword     = (\"a\" ... \"z\" | \"A\" ... \"Z\")[word]\n*        = word\n
","tags":["Contributing"]},{"location":"contributing/notes/#environment","title":"Environment","text":"

All environment variables are prefixed by OPENTOSCA_VINTNER_. When the following environment variables are read, they are tried to be parsed as JSON. If they cannot be parsed, they are treated as string.

  • OPENTOSCA_VINTNER_VARIABILITY_PRESETS
  • OPENTOSCA_VINTNER_VARIABILITY_INPUT_${KEY}
  • OPENTOSCA_VINTNER_DEPLOYMENT_INPUT_${KEY}

These environment variables should be used with caution.

","tags":["Contributing"]},{"location":"contributing/notes/#lines-of-code","title":"Lines of Code","text":"

Run the following command, to count the lines of code in the src folder.

cloc src\n

The following output has been generated for the commit 3c6d29df6b7fb52b39d46ffe179e6800b60c4398 on September 5th, 2024.

     376 text files.\n     339 unique files.                                          \n      39 files ignored.\n\ngithub.com/AlDanial/cloc v 1.98  T=0.12 s (2936.0 files/s, 260917.4 lines/s)\n-------------------------------------------------------------------------------\nLanguage                     files          blank        comment           code\n-------------------------------------------------------------------------------\nTypeScript                     301           3529           2116          23146\nYAML                             9             79              0            757\nBourne Shell                    21             77             80            250\nEJS                              6             11              0             66\nPython                           1              4              0             10\nCSV                              1              0              0              1\n-------------------------------------------------------------------------------\nSUM:                           339           3700           2196          24230\n-------------------------------------------------------------------------------\n
","tags":["Contributing"]},{"location":"contributing/notes/#adding-a-new-publication","title":"Adding a New Publication","text":"
  1. Step-by-step guide
  2. Zenodo
  3. Integration tests
  4. Entry in Publications
  5. Git tag
  6. Add used links
","tags":["Contributing"]},{"location":"contributing/notes/#used-links","title":"Used Links","text":"

The following links are used in publications.

  • https://github.com/opentosca/opentosca-vintner
  • https://github.com/OpenTOSCA/opentosca-vintner/actions/runs/6100939642/job/16556255878
  • https://vintner.opentosca.org
  • https://vintner.opentosca.org/variability4tosca/specification
  • https://vintner.opentosca.org/variability4tosca/guides/artifacts
  • https://vintner.opentosca.org/variability4tosca/guides/pruning
  • https://vintner.opentosca.org/variability4tosca/guides/modes
","tags":["Contributing"]},{"location":"contributing/notes/#typical-reasons-for-unsat","title":"Typical Reasons for UNSAT","text":"
  1. Technology constraint; can be disabled by technology_constraint: false
  2. Artifact constraint; can be disabled by required_artifact_constraint: false
  3. Required incoming relation constraint; can be disabled by required_incoming_relation_constraint: false
  4. Due to some bug a node type or artifact type is not defined but a corresponding error is not thrown.
","tags":["Contributing"]},{"location":"contributing/notes/#limitations","title":"Limitations","text":"

We briefly discuss limitations of our prototypical implementation.

  1. We expect that each relationship templates is used exactly once.
  2. We expect that relationship at requirement assignments is a string.
  3. We expect that names of hosting relations match /^(.*_)?host(_.*)?$/ since we do not implement the TOSCA type system.
  4. We expect that names of connection relations match /^(.*_)?connection(_.*)?$/ since we do not implement the TOSCA type system.
  5. We only support simple consumers, i.e., directly accessed by properties.
  6. We only support simple producers, i.e., directly accessing the property of a node, using Unfurl eval Jinja filter, Unfurl eval intrinsic function, and TOSCA get_property intrinsic function, and assume that if the property is not found that it is either produced by an undefined property with a default value or by an attribute.
  7. We only support Boolean variability inputs in variability input constraints.
  8. We do not support default expressions of variability inputs in variability input constraints.
","tags":["Contributing"]},{"location":"contributing/release/","title":"Release","text":"

This document holds information about building and publishing a new release.

","tags":["Contributing"]},{"location":"contributing/release/#build","title":"Build","text":"

To locally build the project, run the following command. This will transpile Javascript inside the /build directory. During the build, the string __VERSION__ inside a Javascript file is replace with the current commit hash. The current version can be checked using vintner --version.

./task build\n
","tags":["Contributing"]},{"location":"contributing/release/#package","title":"Package","text":"

Warning

This only works on Linux.

To locally package the project, run the following command. This will package the previously transpiled Javascript using pkg and generate binaries inside the /dist directory.

./task package\n

The issue considering the failed bytecode generation of MiniSat is known and can be ignored in our case.

","tags":["Contributing"]},{"location":"contributing/release/#github","title":"GitHub","text":"

Vintner is available as GitHub release. On pushes to the main branch, the Release workflow is triggered. This workflow runs several tests, builds binaries, signs binaries, creates a new GitHub release, and deploys the documentation. An already existing GitHub release and latest tag is deleted. There is only one release at total.

However, there is also the Build workflow. This workflow basically has the same steps as the Release workflow but does create his own GitHub release and does not deploy the docs.

","tags":["Contributing"]},{"location":"contributing/release/#npm","title":"NPM","text":"

Vintner is available as npm package opentosca-vintner. New versions are published manually. To publish a new version, first update the version number in package.json and then run

./task release:npm\n
","tags":["Contributing"]},{"location":"contributing/release/#docker","title":"Docker","text":"

Vintner is available as Docker image on https://github.com/OpenTOSCA/opentosca-vintner/pkgs/container/opentosca-vintner. They are automatically build and pushed during the Release workflow.

Locally build the image as follows.

docker build -t opentosca/opentosca-vintner:local -f docker/Dockerfile .\n
","tags":["Contributing"]},{"location":"contributing/release/#choco","title":"Choco","text":"

There is also a choco package opentosca-vintner. New versions are published manually. See https://docs.chocolatey.org/en-us/create/create-packages-quick-start for more information.

First, log into the choco account.

choco apikey --api-key [API_KEY_HERE] --source https://push.chocolatey.org\n

Publish a new version as follows. This will use the latest release.

./task release:choco\n
","tags":["Contributing"]},{"location":"contributing/release/#zenodo","title":"Zenodo","text":"

Vintner is available on Zenodo with unique DOI https://doi.org/10.5281/zenodo.10155277. New versions are published manually.

To publish a new version, run the Zenodo workflow on GitHub. This workflow will create a draft of a new version based on the latest GitHub release. The version must be manually published on Zenodo.

","tags":["Contributing"]},{"location":"contributing/setup/","title":"Setup","text":"

This document holds instructions on the development setup.

","tags":["Contributing"]},{"location":"contributing/setup/#nodejs","title":"Node.js","text":"

We use Node.js version 18.15.0. To install node, use nvm or nvm-windows.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash\nsource ~/.bashrc\n\nnvm install 18.15.0\nnvm use 18.15.0\n
","tags":["Contributing"]},{"location":"contributing/setup/#yarn","title":"Yarn","text":"

We use Yarn 2 (Modern). Install it as follows.

corepack enable\n
","tags":["Contributing"]},{"location":"contributing/setup/#tasks","title":"Tasks","text":"

We use ./task as build tool.

","tags":["Contributing"]},{"location":"contributing/setup/#using-tasks","title":"Using Tasks","text":"

Execute a task as follows. On Windows, execute it using, e.g., Git Bash.

./task [task]\n

Get an overview of tasks as follows.

./task tasks:list\n

Get help for a specific task as follows.

./task tasks:help [task]\n
","tags":["Contributing"]},{"location":"contributing/setup/#writing-tasks","title":"Writing Tasks","text":"

Tasks can be written in Bash, Typescript, and Python and are located in ./tasks/some/command/task{.sh,.ts,.py}. The following environment variables are available.

Environment Description TASK_BINARY The absolute path of ./task. TASK_ROOT_DIR The absolute path of the root directory of the project. TASK_TASK_DIR The absolute path of the directory in which the task is located.

Some hints:

  • There is no need to include #!/usr/bin/bash or set -e in Bash tasks.
  • Bash tasks are executed from TASK_ROOT_DIR.
  • To add a summary, place a single line in ${TASK_TASK_DIR}/summary.
  • To add a help text for a task, place the text in ${TASK_TASK_DIR}/help.
  • Always add a new line at the end of every file.
","tags":["Contributing"]},{"location":"contributing/setup/#repository","title":"Repository","text":"

The repository is a monorepo consisting of the CLI, server, docs, tests, etc. Clone it as follows.

git clone https://github.com/opentosca/opentosca-vintner.git\ncd opentosca-vintner\ngit lfs install\ngit lfs pull\n./task install\n./task tasks:build\n./task examples:pull:link\n
","tags":["Contributing"]},{"location":"contributing/setup/#large-files","title":"Large Files","text":"

Larges files, such as binaries or archives used in examples, are added using git lfs. This includes the file extensions .bin, .gz, .tar, .zip, .xz, and .jar.

","tags":["Contributing"]},{"location":"contributing/setup/#signed-commits","title":"Signed Commits","text":"

Commits are required to be signed. Therefore, register a signing key as follows.

  • Generating a new GPG key
  • Adding a GPG key to your GitHub account
  • Telling Git About Your Signing Key
  • Signing Commits

Enable auto-signing inside the repository.

git config commit.gpgsign true\n
","tags":["Contributing"]},{"location":"contributing/setup/#jetbrains","title":"JetBrains","text":"

Warning

WebStorm Version 2022.3.3 seems to have problems with breakpoints when src/resolver/graph.ts is involved. However, WebStorm Version 2022.3.2 works fine.

We use WebStorm, which is free for students. Install Webstorm using JetBrains Toolbox.

","tags":["Contributing"]},{"location":"contributing/setup/#eslint","title":"ESLint","text":"

Open the Project Settings using Ctrl + Alt + S. ESLint should be configured as given in the figure below with the following pattern.

{**/*,*}.{ts}\n

Figure 1: IntelliJ ESLint Settings","tags":["Contributing"]},{"location":"contributing/setup/#prettier","title":"Prettier","text":"

Open the Project Settings using Ctrl + Alt + S. Prettier should be configured as given in the figure below with the following pattern.

{**/*,*}.{ts,json,yaml,yml}\n

Figure 2: IntelliJ Prettier Settings","tags":["Contributing"]},{"location":"contributing/setup/#excluded-directories","title":"Excluded Directories","text":"

The following directories should be excluded from search by the IDE.

  • .nyc_output
  • docs/.venv
  • build
  • build-tasks
  • coverage
  • yarn
  • dist
  • dist-docs
  • node_modules
","tags":["Contributing"]},{"location":"edmm/","title":"EDMM Compliance Specification 1.0 Release Candidate","text":"

Warning

This specification is experimental.

This document specifies how to achieve EDMM compliance when modeling and gives additional insights. This document does not specify how to achieve EDMM compatibility on a technical level. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["EDMM","Specification"]},{"location":"edmm/#general","title":"General","text":"
  1. Must use only features as defined by TOSCA Light extended by Variability4TOSCA.
","tags":["EDMM","Specification"]},{"location":"edmm/#node-types","title":"Node Types","text":"

A built-in type must not be compliant with EDMM restrictions since such a type is internally used for our implementation of the EDMM-DTSM mapping.

  1. A built-in and abstract node type is a normative type, which cannot be instantiated since it is missing, e.g., its management operations or deployment artifact.
  2. A built-in and concrete node type is a normative type, which can be instantiated.
  3. A custom and abstract type is a user-defined type, which cannot be instantiated since it is missing, e.g., its management operations or deployment artifact.
  4. A custom and concrete type is a user-defined type, which can be instantiated.
","tags":["EDMM","Specification"]},{"location":"edmm/#management-operations","title":"Management Operations","text":"
  1. A node type might define the create, configure, create, stop, and delete operation of the Management interface using management as interface name.
  2. A management operation is an inline bash script, which is executed in the root of the application directory.
  3. A built-in node type defines its management operations in its node type, e.g., node.service.application.
  4. A custom and abstract node type defines its management operations in its node type.
  5. A custom and concrete node type defines its management operations in its node template, e.g., shop.component derived from node.application.
","tags":["EDMM","Specification"]},{"location":"edmm/#implementations","title":"Implementations","text":"
  1. A node type t might have node type implementations which are node types that (i) are derived from t and (ii) implement the tosca.interfaces.node.lifecycle.Standard interface.
  2. A node type implementation is generated and not manually defined.
  3. A node type implementation might call operations of the Management interface.
  4. A node type implementation represent the EDMM-DTSM mapping.
","tags":["EDMM","Specification"]},{"location":"edmm/#property-assignments","title":"Property Assignments","text":"
  1. A built-in node type can define property assignments.
  2. A custom and abstract node type can define property assignments.
  3. A custom and concrete node type must not define property assignments.
  4. Only use strings as data types.
  5. Always quote string values.
","tags":["EDMM","Specification"]},{"location":"edmm/#attributes","title":"Attributes","text":"

The prototype currently does not support custom template attributes, i.e., writing back outputs from management operations.

","tags":["EDMM","Specification"]},{"location":"edmm/#application-directory","title":"Application Directory","text":"
  1. A software.application node template hosted on a remote.machine node template has its own dedicated application directory.
  2. The .vintner directory is a reserved directory in the application directory.
","tags":["EDMM","Specification"]},{"location":"edmm/#deployment-artifacts","title":"Deployment Artifacts","text":"
  1. A node template can have conditional deployment artifacts.
  2. A node type cannot have conditional deployment artifacts.
  3. A custom node type cannot have deployment artifacts.
  4. A deployment artifact must be named by its artifact type but any . replaced with _.
","tags":["EDMM","Specification"]},{"location":"edmm/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["EDMM","Specification"]},{"location":"edmm/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["EDMM","Specification"]},{"location":"edmm/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["EDMM","Specification"]},{"location":"normative/","title":"TOSCA Vintner Profile","text":"","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#tosca-vintner-profile-10-release-candidate","title":"TOSCA Vintner Profile 1.0 Release Candidate","text":"

This document specifies the TOSCA Vintner profile. This profile includes normative TOSCA types for the domain of cloud computing. Standardizing such normative TOSCA types improves interoperability. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#tosca-vintner-core-profile","title":"TOSCA Vintner Core Profile","text":"

The core normative TOSCA type definitions contain high-level type definitions.

","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#metadata","title":"Metadata","text":"

We define the following metadata.

Metadata Description vintner_ignore Flag for ignoring an entity (type) during generation, e.g., to omit a property from the environment. vintner_name Overrides the original name, e.g., override a property name with its correct environment name. vintner_generated Flag for marking an entity (type) that has been generated. vintner_orchestrator Orchestrator name for which the entity (type) has been generated. vintner_abstract Flag for marking an entity type as abstract. vintner_normative Flag for marking an entity type as normative (considering this specification). vintner_link URL which points, e.g., to the documentation page of the entity type.","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#artifact-types","title":"Artifact Types","text":"

We specify the following normative artifact types. An overview is given in Figure tosca-vintner-profile-core1.

Figure C1: TOSCA Vintner Core Artifact Types","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#artifact","title":"artifact","text":"
artifact:\nderived_from: tosca.artifacts.Root\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#sourcearchive","title":"source.archive","text":"

application packaged as archive

source.archive:\nderived_from: artifact\nmetadata:\nvintner_normative: 'true'\nproperties:\nextra_opts:\ntype: list\nentry_schema:\ntype: string\nrequired: false\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#systempackage","title":"system.package","text":"
system.package:\nderived_from: artifact\nmetadata:\nvintner_normative: 'true'\nproperties:\nscript:\ntype: string\nrequired: false\ndescription: URL of an installation script\nrepository:\ntype: string\nrequired: false\ndescription: name of the repository (required if source is set)\nkey:\ntype: string\nrequired: false\ndescription: URL of the apt key which signs the apt repository (required if source is set)\nsource:\ntype: string\nrequired: false\ndescription: source of the repository\ndependencies:\ntype: string\nrequired: false\ndescription: Comma separated list of apt packages that are additionally installed\nenv:\ntype: string\nrequired: false\ndescription: Space separated env variables\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#containerimage","title":"container.image","text":"

expects image reference in \"file\"

container.image:\nderived_from: artifact\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#machineimage","title":"machine.image","text":"

expects image reference in \"file\"

machine.image:\nderived_from: artifact\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#dbmsimage","title":"dbms.image","text":"

expects image reference in \"file\"

dbms.image:\nderived_from: artifact\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#cacheimage","title":"cache.image","text":"

expects image reference in \"file\"

cache.image:\nderived_from: artifact\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#interface-types","title":"Interface Types","text":"

We specify the following normative interface types. An overview is given in Figure tosca-vintner-profile-core2.

Figure C2: TOSCA Vintner Core Interface Types","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#interface","title":"interface","text":"
interface:\nderived_from: tosca.interfaces.Root\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#management","title":"management","text":"
management:\nderived_from: interface\nmetadata:\nvintner_normative: 'true'\noperations:\ncreate:\ndescription: management lifecycle create operation.\nconfigure:\ndescription: management lifecycle configure operation.\nstart:\ndescription: management lifecycle start operation.\nstop:\ndescription: management lifecycle stop operation.\ndelete:\ndescription: management lifecycle delete operation.\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#node-types","title":"Node Types","text":"

We specify the following normative node types. An overview is given in Figure tosca-vintner-profile-core3.

Figure C3: TOSCA Vintner Core Node Types","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#node","title":"node","text":"
node:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#cloudprovider","title":"cloud.provider","text":"
cloud.provider:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#cloudservice","title":"cloud.service","text":"
cloud.service:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#softwareapplication","title":"software.application","text":"
software.application:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_name:\ntype: string\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\ninterfaces:\nmanagement:\ntype: management\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#serviceapplication","title":"service.application","text":"
service.application:\nderived_from: software.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\napplication_port:\ntype: string\nmetadata:\nvintner_name: PORT\napplication_protocol:\ntype: string\nattributes:\napplication_address:\ntype: string\napplication_endpoint:\ntype: string\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#softwareruntime","title":"software.runtime","text":"
software.runtime:\nderived_from: software.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#containerruntime","title":"container.runtime","text":"
container.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#machine","title":"machine","text":"
machine:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\nmachine_name:\ntype: string\nattributes:\napplication_address:\ntype: string\nmanagement_address:\ntype: string\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#localmachine","title":"local.machine","text":"
local.machine:\nderived_from: machine\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#remotemachine","title":"remote.machine","text":"
remote.machine:\nderived_from: machine\nmetadata:\nvintner_normative: 'true'\nproperties:\nmachine_name:\ntype: string\nports:\ntype: list\nentry_schema:\ntype: string\nflavor:\ntype: string\ndefault: m1.medium\nnetwork:\ntype: string\nssh_user:\ntype: string\nssh_key_name:\ntype: string\nssh_key_file:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#virtualmachine","title":"virtual.machine","text":"
virtual.machine:\nderived_from: remote.machine\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#physicalmachine","title":"physical.machine","text":"
physical.machine:\nderived_from: remote.machine\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#database","title":"database","text":"
database:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#relationaldatabase","title":"relational.database","text":"
relational.database:\nderived_from: database\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#dbms","title":"dbms","text":"
dbms:\nderived_from: software.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#relationaldbms","title":"relational.dbms","text":"
relational.dbms:\nderived_from: dbms\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#cache","title":"cache","text":"
cache:\nderived_from: software.application\nproperties:\ncache_name:\ntype: string\ncache_port:\ntype: string\nattributes:\napplication_endpoint:\ntype: string\napplication_address:\ntype: string\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#storage","title":"storage","text":"
storage:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#blockstorage","title":"block.storage","text":"
block.storage:\nderived_from: storage\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#objectstorage","title":"object.storage","text":"
object.storage:\nderived_from: storage\nmetadata:\nvintner_normative: 'true'\nproperties:\nstorage_name:\ntype: string\nstorage_dialect:\ntype: string\nstorage_user:\ntype: string\nstorage_token:\ntype: string\nattributes:\nstorage_endpoint:\ntype: string\nstorage_token:\ntype: string\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#filestorage","title":"file.storage","text":"
file.storage:\nderived_from: storage\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#ingress","title":"ingress","text":"
ingress:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\napplication_port:\ntype: string\napplication_protocol:\ntype: string\nattributes:\napplication_address:\ntype: string\nrequirements:\n- application:\ncapability: tosca.capabilities.Endpoint\nrelationship: tosca.relationships.ConnectsTo\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#tosca-vintner-extended-profile","title":"TOSCA Vintner Extended Profile","text":"

The extended normative TOSCA type definitions contain additional provider-specific type definitions which are derived from the core type definitions.

","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#artifact-types_1","title":"Artifact Types","text":"

We specify the following normative artifact types. An overview is given in Figure tosca-vintner-profile-extended1.

Figure E1: Artifact Types","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#dockerimage","title":"docker.image","text":"

expects image reference in \"file\"

docker.image:\nderived_from: container.image\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#ziparchive","title":"zip.archive","text":"
zip.archive:\nderived_from: source.archive\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#tararchive","title":"tar.archive","text":"
tar.archive:\nderived_from: source.archive\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#aptpackage","title":"apt.package","text":"
apt.package:\nderived_from: system.package\nmetadata:\nvintner_normative: 'true'\nproperties:\nscript:\ntype: string\nrequired: false\ndescription: URL of an installation script\nrepository:\ntype: string\nrequired: false\ndescription: name of the repository (required if source is set)\nkey:\ntype: string\nrequired: false\ndescription: URL of the apt key which signs the apt repository (required if source is set)\nsource:\ntype: string\nrequired: false\ndescription: source of the repository\ndependencies:\ntype: string\nrequired: false\ndescription: Comma separated list of apt packages that are additionally installed\nenv:\ntype: string\nrequired: false\ndescription: Space separated env variables\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#node-types_1","title":"Node Types","text":"

We specify the following normative node types. An overview is given in Figure tosca-vintner-profile-extended2.

Figure E2: Node Types","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#nodejsruntime","title":"nodejs.runtime","text":"
nodejs.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\ndefault: nodejs\nartifacts:\napt_package:\ntype: apt.package\nfile: nodejs\nproperties:\nscript: https://deb.nodesource.com/setup_18.x\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#nodejsserviceapplication","title":"nodejs.service.application","text":"
nodejs.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: nodejs18\ninterfaces:\nmanagement:\ntype: management\noperations:\nconfigure: npm ci\nstart: npm start\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#reactjsserviceapplication","title":"reactjs.service.application","text":"
reactjs.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: nodejs18\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#pythonruntime","title":"python.runtime","text":"
python.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nartifacts:\napt_package:\ntype: apt.package\nfile: python-is-python3\nproperties:\ndependencies:\ntype: string\ndefault: python3 python3-pip python3-venv\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#pythonserviceapplication","title":"python.service.application","text":"
python.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: python3\ninterfaces:\nmanagement:\ntype: management\noperations:\nconfigure: pip install -r requirements.txt\nstart: python main.py\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#goserviceapplication","title":"go.service.application","text":"
go.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: go122\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#javaruntime","title":"java.runtime","text":"
java.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\ndefault: java\nartifacts:\napt_package:\ntype: apt.package\nfile: openjdk-18-jre-headless\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#javaserviceapplication","title":"java.service.application","text":"
java.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: java21\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#dotnetruntime","title":"dotnet.runtime","text":"
dotnet.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\ndefault: java\nartifacts:\napt_package:\ntype: apt.package\nfile: dotnet-sdk-8.0\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#csharpserviceapplication","title":"csharp.service.application","text":"
csharp.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: dotnet8\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#binaryserviceapplication","title":"binary.service.application","text":"
binary.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: binary\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpprovider","title":"gcp.provider","text":"
gcp.provider:\nderived_from: cloud.provider\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\n_hosting:\ntype: string\ndefault: gcp\ngcp_region:\ntype: string\ngcp_service_account_file:\ntype: string\ngcp_project:\ntype: string\ninterfaces:\nStandard:\noperations:\ncreate: exit 0\ndelete: exit 0\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpservice","title":"gcp.service","text":"
gcp.service:\nderived_from: cloud.service\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\n_hosting:\ntype: string\ndefault: gcp\ngcp_service:\ntype: string\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpcloudrun","title":"gcp.cloudrun","text":"
gcp.cloudrun:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: run.googleapis.com\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpcloudsql","title":"gcp.cloudsql","text":"
gcp.cloudsql:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: sqladmin.googleapis.com\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpappengine","title":"gcp.appengine","text":"
gcp.appengine:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: appengine.googleapis.com\nrequirements:\n- build:\ncapability: tosca.capabilities.Root\nrelationship: tosca.relationships.DependsOn\n- reporting:\ncapability: tosca.capabilities.Root\nrelationship: tosca.relationships.DependsOn\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpappenginereporting","title":"gcp.appenginereporting","text":"
gcp.appenginereporting:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: appenginereporting.googleapis.com\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpcloudbuild","title":"gcp.cloudbuild","text":"
gcp.cloudbuild:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: cloudbuild.googleapis.com\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpkubernetesengine","title":"gcp.kubernetesengine","text":"
gcp.kubernetesengine:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: container.googleapis.com\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpcloudstorage","title":"gcp.cloudstorage","text":"
gcp.cloudstorage:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: storage.googleapis.com\nattributes:\nstorage_dialect:\ntype: string\ndefault: gcp\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpmemorystore","title":"gcp.memorystore","text":"
gcp.memorystore:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: redis.googleapis.com\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#dockerengine","title":"docker.engine","text":"

Installs Docker Engine listening on the unix socket as well as on tcp://0.0.0.0:2375

docker.engine:\nderived_from: container.runtime\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\ndefault: docker\n_hosting:\ntype: string\ndefault: docker\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#kubernetescluster","title":"kubernetes.cluster","text":"
kubernetes.cluster:\nderived_from: cloud.service\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\n_hosting:\ntype: string\ndefault: kubernetes\nk8s_host:\ntype: string\nk8s_ca_cert_file:\ntype: string\nk8s_client_cert_file:\ntype: string\nk8s_client_key_file:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\ninterfaces:\nStandard:\noperations:\ncreate: exit 0\ndelete: exit 0\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#openstackprovider","title":"openstack.provider","text":"
openstack.provider:\nderived_from: cloud.provider\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\n_hosting:\ntype: string\ndefault: openstack\nos_region_name:\ntype: string\nos_auth_type:\ntype: string\nos_auth_url:\ntype: string\nos_identity_api_version:\ntype: string\nos_interface:\ntype: string\nos_application_credential_id:\ntype: string\nos_application_credential_secret:\ntype: string\ninterfaces:\nStandard:\noperations:\ncreate: exit 0\ndelete: exit 0\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#mysqldbms","title":"mysql.dbms","text":"
mysql.dbms:\nderived_from: relational.dbms\nmetadata:\nvintner_normative: 'true'\nproperties:\ndbms_name:\ntype: string\napplication_name:\ntype: string\ndbms_password:\ntype: string\ndbms_ssl_mode:\ntype: string\ndefault: None\nattributes:\napplication_address:\ntype: string\napplication_port:\ntype: string\nmanagement_address:\ntype: string\nmanagement_port:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#mysqldatabase","title":"mysql.database","text":"
mysql.database:\nderived_from: relational.database\nmetadata:\nvintner_normative: 'true'\nproperties:\ndatabase_name:\ntype: string\ndatabase_user:\ntype: string\ndatabase_password:\ntype: string\nattributes:\napplication_address:\ntype: string\napplication_port:\ntype: string\ncapabilities:\ndatabase:\ntype: tosca.capabilities.Endpoint.Database\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#minioserver","title":"minio.server","text":"
minio.server:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nproperties:\naccess_key:\ntype: string\nmetadata:\nvintner_name: MINIO_ROOT_USER\nsecret_key:\ntype: string\nmetadata:\nvintner_name: MINIO_ROOT_PASSWORD\nattributes:\nstorage_dialect:\ntype: string\ndefault: minio\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#redisserver","title":"redis.server","text":"
redis.server:\nderived_from: cache\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_protocol:\ntype: string\ndefault: redis\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#appendix-a-tosca-vintner-profile","title":"Appendix A \"TOSCA Vintner Profile\"","text":"

This appendix contains the TOSCA Vintner profile. The profile is also available as download.

tosca_definitions_version: tosca_simple_yaml_1_3\ndescription: TOSCA Profile for OpenTOSCA Vintner\nmetadata:\nvintner_normative: 'true'\ntemplate_name: TOSCA Vintner Profile\ntemplate_author: Miles St\u00f6tzner\ntemplate_contact: miles.stoetzner@iste.uni-stuttgart.de\ntemplate_link: https://vintner.opentosca.org\ntemplate_version: 1.0.0-draft\ntemplate_id: tosca-vintner-profile\ntemplate_license: https://www.apache.org/licenses/LICENSE-2.0\nacknowledgments: Partially funded by the [German Federal Ministry for Economic Affairs and Climate Action (BMWK)](https://www.bmwk.de) as part of the research project [SofDCar (19S21002)](https://sofdcar.de).\nimports:\n- ./tosca-vintner-profile-core.yaml\n- ./tosca-vintner-profile-extended.yaml\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#appendix-b-tosca-vintner-core-profile","title":"Appendix B \"TOSCA Vintner Core Profile\"","text":"

This appendix contains the TOSCA Vintner Core profile. The profile is also available as download.

tosca_definitions_version: tosca_simple_yaml_1_3\ndescription: TOSCA Profile for OpenTOSCA Vintner (Core)\nmetadata:\nvintner_normative: 'true'\ntemplate_name: TOSCA Vintner Profile (Core)\ntemplate_author: Miles St\u00f6tzner\ntemplate_contact: miles.stoetzner@iste.uni-stuttgart.de\ntemplate_link: https://vintner.opentosca.org\ntemplate_version: 1.0.0-draft\ntemplate_id: tosca-vintner-profile\ntemplate_license: https://www.apache.org/licenses/LICENSE-2.0\nacknowledgments: Partially funded by the [German Federal Ministry for Economic Affairs and Climate Action (BMWK)](https://www.bmwk.de) as part of the research project [SofDCar (19S21002)](https://sofdcar.de).\nartifact_types:\nartifact:\nderived_from: tosca.artifacts.Root\nmetadata:\nvintner_normative: 'true'\nsource.archive:\nderived_from: artifact\ndescription: application packaged as archive\nmetadata:\nvintner_normative: 'true'\nproperties:\nextra_opts:\ntype: list\nentry_schema:\ntype: string\nrequired: false\nsystem.package:\nderived_from: artifact\nmetadata:\nvintner_normative: 'true'\nproperties:\nscript:\ntype: string\nrequired: false\ndescription: URL of an installation script\nrepository:\ntype: string\nrequired: false\ndescription: name of the repository (required if source is set)\nkey:\ntype: string\nrequired: false\ndescription: URL of the apt key which signs the apt repository (required if source is set)\nsource:\ntype: string\nrequired: false\ndescription: source of the repository\ndependencies:\ntype: string\nrequired: false\ndescription: Comma separated list of apt packages that are additionally installed\nenv:\ntype: string\nrequired: false\ndescription: Space separated env variables\ncontainer.image:\nderived_from: artifact\ndescription: expects image reference in \"file\"\nmetadata:\nvintner_normative: 'true'\nmachine.image:\nderived_from: artifact\ndescription: expects image reference in \"file\"\nmetadata:\nvintner_normative: 'true'\ndbms.image:\nderived_from: artifact\ndescription: expects image reference in \"file\"\nmetadata:\nvintner_normative: 'true'\ncache.image:\nderived_from: artifact\ndescription: expects image reference in \"file\"\nmetadata:\nvintner_normative: 'true'\ninterface_types:\ninterface:\nderived_from: tosca.interfaces.Root\nmetadata:\nvintner_normative: 'true'\nmanagement:\nderived_from: interface\nmetadata:\nvintner_normative: 'true'\noperations:\ncreate:\ndescription: management lifecycle create operation.\nconfigure:\ndescription: management lifecycle configure operation.\nstart:\ndescription: management lifecycle start operation.\nstop:\ndescription: management lifecycle stop operation.\ndelete:\ndescription: management lifecycle delete operation.\nnode_types:\nnode:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncloud.provider:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\ncloud.service:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\nsoftware.application:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_name:\ntype: string\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\ninterfaces:\nmanagement:\ntype: management\nservice.application:\nderived_from: software.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\napplication_port:\ntype: string\nmetadata:\nvintner_name: PORT\napplication_protocol:\ntype: string\nattributes:\napplication_address:\ntype: string\napplication_endpoint:\ntype: string\nsoftware.runtime:\nderived_from: software.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\ncontainer.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nmachine:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\nmachine_name:\ntype: string\nattributes:\napplication_address:\ntype: string\nmanagement_address:\ntype: string\nlocal.machine:\nderived_from: machine\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nremote.machine:\nderived_from: machine\nmetadata:\nvintner_normative: 'true'\nproperties:\nmachine_name:\ntype: string\nports:\ntype: list\nentry_schema:\ntype: string\nflavor:\ntype: string\ndefault: m1.medium\nnetwork:\ntype: string\nssh_user:\ntype: string\nssh_key_name:\ntype: string\nssh_key_file:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nvirtual.machine:\nderived_from: remote.machine\nphysical.machine:\nderived_from: remote.machine\ndatabase:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\nrelational.database:\nderived_from: database\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ndbms:\nderived_from: software.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nrelational.dbms:\nderived_from: dbms\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncache:\nderived_from: software.application\nproperties:\ncache_name:\ntype: string\ncache_port:\ntype: string\nattributes:\napplication_endpoint:\ntype: string\napplication_address:\ntype: string\nstorage:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nblock.storage:\nderived_from: storage\nmetadata:\nvintner_normative: 'true'\nobject.storage:\nderived_from: storage\nmetadata:\nvintner_normative: 'true'\nproperties:\nstorage_name:\ntype: string\nstorage_dialect:\ntype: string\nstorage_user:\ntype: string\nstorage_token:\ntype: string\nattributes:\nstorage_endpoint:\ntype: string\nstorage_token:\ntype: string\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\nfile.storage:\nderived_from: storage\nmetadata:\nvintner_normative: 'true'\ningress:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\napplication_port:\ntype: string\napplication_protocol:\ntype: string\nattributes:\napplication_address:\ntype: string\nrequirements:\n- application:\ncapability: tosca.capabilities.Endpoint\nrelationship: tosca.relationships.ConnectsTo\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#appendix-c-tosca-vintner-extended-profile","title":"Appendix C \"TOSCA Vintner Extended Profile\"","text":"

This appendix contains the TOSCA Vintner Extended profile. The profile is also available as download.

tosca_definitions_version: tosca_simple_yaml_1_3\ndescription: TOSCA Profile for OpenTOSCA Vintner (Extended)\nmetadata:\nvintner_normative: 'true'\ntemplate_name: TOSCA Vintner Profile (Extended)\ntemplate_author: Miles St\u00f6tzner\ntemplate_contact: miles.stoetzner@iste.uni-stuttgart.de\ntemplate_link: https://vintner.opentosca.org\ntemplate_version: 1.0.0-draft\ntemplate_id: tosca-vintner-profile\ntemplate_license: https://www.apache.org/licenses/LICENSE-2.0\nacknowledgments: Partially funded by the [German Federal Ministry for Economic Affairs and Climate Action (BMWK)](https://www.bmwk.de) as part of the research project [SofDCar (19S21002)](https://sofdcar.de).\nimports:\n- tosca-vintner-profile-core.yaml\nartifact_types:\ndocker.image:\nderived_from: container.image\ndescription: expects image reference in \"file\"\nmetadata:\nvintner_normative: 'true'\nzip.archive:\nderived_from: source.archive\nmetadata:\nvintner_normative: 'true'\ntar.archive:\nderived_from: source.archive\nmetadata:\nvintner_normative: 'true'\napt.package:\nderived_from: system.package\nmetadata:\nvintner_normative: 'true'\nproperties:\nscript:\ntype: string\nrequired: false\ndescription: URL of an installation script\nrepository:\ntype: string\nrequired: false\ndescription: name of the repository (required if source is set)\nkey:\ntype: string\nrequired: false\ndescription: URL of the apt key which signs the apt repository (required if source is set)\nsource:\ntype: string\nrequired: false\ndescription: source of the repository\ndependencies:\ntype: string\nrequired: false\ndescription: Comma separated list of apt packages that are additionally installed\nenv:\ntype: string\nrequired: false\ndescription: Space separated env variables\nnode_types:\nnodejs.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\ndefault: nodejs\nartifacts:\napt_package:\ntype: apt.package\nfile: nodejs\nproperties:\nscript: https://deb.nodesource.com/setup_18.x\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nnodejs.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: nodejs18\ninterfaces:\nmanagement:\ntype: management\noperations:\nconfigure: npm ci\nstart: npm start\nreactjs.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: nodejs18\npython.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nartifacts:\napt_package:\ntype: apt.package\nfile: python-is-python3\nproperties:\ndependencies:\ntype: string\ndefault: python3 python3-pip python3-venv\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\npython.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: python3\ninterfaces:\nmanagement:\ntype: management\noperations:\nconfigure: pip install -r requirements.txt\nstart: python main.py\ngo.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: go122\njava.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\ndefault: java\nartifacts:\napt_package:\ntype: apt.package\nfile: openjdk-18-jre-headless\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\njava.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: java21\ndotnet.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\ndefault: java\nartifacts:\napt_package:\ntype: apt.package\nfile: dotnet-sdk-8.0\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\ncsharp.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: dotnet8\nbinary.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: binary\ngcp.provider:\nderived_from: cloud.provider\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\n_hosting:\ntype: string\ndefault: gcp\ngcp_region:\ntype: string\ngcp_service_account_file:\ntype: string\ngcp_project:\ntype: string\ninterfaces:\nStandard:\noperations:\ncreate: exit 0\ndelete: exit 0\ngcp.service:\nderived_from: cloud.service\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\n_hosting:\ntype: string\ndefault: gcp\ngcp_service:\ntype: string\ngcp.cloudrun:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: run.googleapis.com\ngcp.cloudsql:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: sqladmin.googleapis.com\ngcp.appengine:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: appengine.googleapis.com\nrequirements:\n- build:\ncapability: tosca.capabilities.Root\nrelationship: tosca.relationships.DependsOn\n- reporting:\ncapability: tosca.capabilities.Root\nrelationship: tosca.relationships.DependsOn\ngcp.appenginereporting:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: appenginereporting.googleapis.com\ngcp.cloudbuild:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: cloudbuild.googleapis.com\ngcp.kubernetesengine:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: container.googleapis.com\ngcp.cloudstorage:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: storage.googleapis.com\nattributes:\nstorage_dialect:\ntype: string\ndefault: gcp\ngcp.memorystore:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: redis.googleapis.com\ndocker.engine:\nderived_from: container.runtime\ndescription: Installs Docker Engine listening on the unix socket as well as on tcp://0.0.0.0:2375\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\ndefault: docker\n_hosting:\ntype: string\ndefault: docker\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nkubernetes.cluster:\nderived_from: cloud.service\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\n_hosting:\ntype: string\ndefault: kubernetes\nk8s_host:\ntype: string\nk8s_ca_cert_file:\ntype: string\nk8s_client_cert_file:\ntype: string\nk8s_client_key_file:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\ninterfaces:\nStandard:\noperations:\ncreate: exit 0\ndelete: exit 0\nopenstack.provider:\nderived_from: cloud.provider\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\n_hosting:\ntype: string\ndefault: openstack\nos_region_name:\ntype: string\nos_auth_type:\ntype: string\nos_auth_url:\ntype: string\nos_identity_api_version:\ntype: string\nos_interface:\ntype: string\nos_application_credential_id:\ntype: string\nos_application_credential_secret:\ntype: string\ninterfaces:\nStandard:\noperations:\ncreate: exit 0\ndelete: exit 0\nmysql.dbms:\nderived_from: relational.dbms\nmetadata:\nvintner_normative: 'true'\nproperties:\ndbms_name:\ntype: string\napplication_name:\ntype: string\ndbms_password:\ntype: string\ndbms_ssl_mode:\ntype: string\ndefault: None\nattributes:\napplication_address:\ntype: string\napplication_port:\ntype: string\nmanagement_address:\ntype: string\nmanagement_port:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\nmysql.database:\nderived_from: relational.database\nmetadata:\nvintner_normative: 'true'\nproperties:\ndatabase_name:\ntype: string\ndatabase_user:\ntype: string\ndatabase_password:\ntype: string\nattributes:\napplication_address:\ntype: string\napplication_port:\ntype: string\ncapabilities:\ndatabase:\ntype: tosca.capabilities.Endpoint.Database\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\nminio.server:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nproperties:\naccess_key:\ntype: string\nmetadata:\nvintner_name: MINIO_ROOT_USER\nsecret_key:\ntype: string\nmetadata:\nvintner_name: MINIO_ROOT_PASSWORD\nattributes:\nstorage_dialect:\ntype: string\ndefault: minio\nredis.server:\nderived_from: cache\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_protocol:\ntype: string\ndefault: redis\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Vintner","Normative","Profile","Specification"]},{"location":"queries4tosca/getting-started/","title":"Getting Started","text":"

There is no standardized way to query TOSCA repositories or instance data. Therefore, we introduce Queries4TOSCA which defined a query language for TOSCA. This language provides a graph-based query language which includes path expressions, filters, and pattern matching. This section will give a quick introduction to Queries4TOSCA.

","tags":["Queries4TOSCA","Guide"]},{"location":"queries4tosca/getting-started/#preparation","title":"Preparation","text":"

To run the example queries, we need to install OpenTOSCA Vintner and have a resolved instance of the \"Getting Started\" template. First, clone the repository.

git clone https://github.com/OpenTOSCA/opentosca-vintner.git\ncd opentosca-vintner\ngit lfs install\ngit lfs pull\n./task install\n./task tasks:build\n./task examples:pull:link\n

Then import the template, create an instance, and resolve the variability.

vintner templates import --template getting-started --path examples/xopera-getting-started\nvintner instances init --instance getting-started --template getting-started\nvintner instances resolve --instance getting-started --presets first\n
","tags":["Queries4TOSCA","Guide"]},{"location":"queries4tosca/getting-started/#example-queries","title":"Example Queries","text":"

Queries start with a FROM statement, followed by either templates or instances and the name of the template or the name of the instance, respectively. Inside a SELECT statement, we can enter a path to the data that we want to return.

To get the entire contents of the template, run the following command.

QueryResult
vintner query --query \"\\\n    FROM templates.getting-started \\\n    SELECT .\"\n
tosca_definitions_version: tosca_simple_yaml_1_3\nnode_types:\ntextfile:\nderived_from: tosca.nodes.SoftwareComponent\nproperties:\ncontent:\ntype: string\ninterfaces:\nStandard:\ninputs:\ncontent:\nvalue:\nget_property:\n- SELF\n- content\ntype: string\noperations:\ncreate: create.yaml\ndelete: delete.yaml\ntopology_template:\nnode_templates:\nlocalhost:\ntype: tosca.nodes.Compute\nattributes:\nprivate_address: localhost\npublic_address: localhost\nfirst:\ntype: textfile\nproperties:\ncontent: First Textfile has been selected!\nrequirements:\n- host:\nnode: localhost\n

We can return specific elements by specifying their path. Note, that topology_template can be omitted at the start. The following command returns the contents of the localhost node.

QueryResult
vintner query --query \"\\\n    FROM templates.getting-started \\\n    SELECT node_templates.localhost\"\n
type: tosca.nodes.Compute\nattributes:\nprivate_address: localhost\npublic_address: localhost\n

We can use an asterisk as a wildcard operator to get all child elements. The following command returns a list of all nodes.

QueryResult
vintner query --query \"\\\n    FROM templates.getting-started \\\n    SELECT node_templates.*\"\n
- type: tosca.nodes.Compute\nattributes:\nprivate_address: localhost\npublic_address: localhost\n- type: textfile\nproperties:\ncontent: First Textfile has been selected!\nrequirements:\n- host:\nnode: localhost\n

We can also specify a predicate in square brackets after any part of the path expression to filter elements. The following command will return only nodes of type textfile.

QueryResult
vintner query --query \"\\\n    FROM templates.getting-started \\\n    SELECT node_templates.*[type='textfile']\"\n
type: textfile\nproperties:\ncontent: First Textfile has been selected!\nrequirements:\n- host:\nnode: localhost\n

In cases where we are only interested in some elements of a node, we can use a return structure to restrict the output to certain variables. To do this, put curly braces with key-value pairs behind your path expression. The following command will return only the content property of the first node.

QueryResult
vintner query --query \"\\\n    FROM templates.getting-started \\\n    SELECT node_templates.first{'Type': type, 'Text': properties.content}\"\n
Type: textfile\nText: First Textfile has been selected!\n

This also works on arrays. The following command returns an array that consists of the name and type of each node. Note the lack of quotation marks - we are using a value from the template for both key and value of the return object.

QueryResult
vintner query --query \"\\\n    FROM templates.getting-started \\\n    SELECT node_templates.*{name: type}\"\n
- localhost: tosca.nodes.Compute\n- first: textfile\n

MATCH statements are used to match patterns in the topology of a template. We can \"draw\" the pattern by surrounding nodes with parentheses and connect them to other nodes via arrows. The following statement will return all nodes that have a requirement fulfilled by localhost.

QueryResult
vintner query --query \"\\\n    FROM templates.getting-started \\\n    MATCH ([name='localhost'])<--(node) \\\n    SELECT node\"\n
first:\ntype: textfile\nproperties:\ncontent: First Textfile has been selected!\nrequirements:\n- host:\nnode: localhost\n

This is just a simple example. In a more complex scenario, it would be possible, e.g., to dynamically access the public address of a virtual machine which hosts a database to which a specific component connects.

","tags":["Queries4TOSCA","Guide"]},{"location":"queries4tosca/specification/","title":"Specification","text":"","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#queries4tosca-specification-10-release-candidate","title":"Queries4TOSCA Specification 1.0 Release Candidate","text":"

This document specifies a Query Language for TOSCA (Queries4TOSCA) inspired by XPath and Cypher. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#queries4tosca","title":"Queries4TOSCA","text":"

The following statements can be used inside a query.

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#from","title":"FROM","text":"

A FROM statement is used to denote which templates or instances the query should be executed on. It starts with the literal FROM, followed by a space and the keyword templates or instances. Afterward, either a file path needs to be provided, or an asterisk can be used to select all service templates or instances, respectively.

From = \"FROM\" (\"instances\" | \"templates\") (\"/\" | \".\") (\"*\" | filePath)\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#select","title":"SELECT","text":"

SELECT statements are used to select elements from a template. They are denoted by the keyword SELECT, followed by one or more path expressions separated by a comma. Path expressions are described in detail later. They can start with the special keywords Group or Policy, the name of an element, or a dot to select everything. Afterward, a series of mapping steps, filters, or array accesses can be used. Lastly, there is an optional return structure.

Select = \"SELECT\" Path (\",\" Path)*\nPath = (Group | Policy | Step | \".\") (ArrayAccess | Map | Filter)* ReturnClause?\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#match","title":"MATCH","text":"

MATCH statements are used to search for a pattern inside the nodes of a service template. A pattern consists of at least one node, along with any number of additional nodes and relationships. The syntax for denoting nodes and relationships is described in detail later.

Match = \"MATCH\" Node (Relationship Node)*\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#comments","title":"Comments","text":"

Single-line comments begin with two forward slashes and extend to the end of the current line. Multi-line comments begin with a forward slash and an asterisk and end with another asterisk and slash and can be inserted anywhere. Here are some examples.

// single-line comment\n/* multi-line\ncomment */\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#paths4tosca","title":"Paths4TOSCA","text":"

Paths4TOSCA is a path expression syntax that can navigate the various parts of a service template. Paths are separated by dots. All parts of a topology template (node_templates, inputs, etc...) can be accessed directly. The following expressions can be used.

Symbol Meaning Description name Literal Used to access an element at the current position by its name. . Path Separator Mapping step. * Wildcard Matches any child element. SELF Current Element Matches the element that contains the query (inside templates only). [Condition] Filter Evaluates the predicate inside the brackets for every current element. [Integer] Array Access Returns the element at the specified position. GROUP(name) Group Members Returns the set of nodes that belong to the group with the specified name. POLICY(name) Policy Targets Returns the set of nodes that are targeted by the policy with the specified name. @ Attributes Shortcut for attributes. # Properties Shortcut for properties. $ Requirements Shortcut for requirements. % Capabilities Shortcut for capabilities.

Here are some examples.

node_templates.localhost       // Selecting a node directly by name\nnode_templates.localhost.#     // Selecting attributes of a node\nnode_templates.*               // Selecting all nodes\nGROUP(my-group)                // Selecting all nodes in group 'my-group'\nPOLICY(my-policy)              // Selecting all nodes targeted by policy 'my-policy'\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#predicates","title":"Predicates","text":"

Elements can be filtered by putting a condition in square brackets. Strings need to be surrounded by single or double quotes, and may use regular expressions to find multiple possible matches. If a filter only consists of a single variable with no comparison operator, it will return true if the current element has a matching child element. Putting an exclamation mark before a condition negates it. The following operators can be used.

Symbol Description ! Negation = Equality != Inequality > Greater than < Less than >= Greater than or equal <= Less than or equal =~ Matches regular expression

Here are some examples.

node_templates.*[type='textfile']       // equality\nnode_templates.*[name!='localhost']     // inequality\nnode_templates.*[name=~'^local']        // regular expression\nnode_templates.*[properties]            // existence of field properties\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#array-access","title":"Array Access","text":"

Accessing an element of an array can be accomplished by putting an integer inside square brackets after the path of the array. If the value inside the brackets is an integer, it is interpreted as an array access, otherwise, it is interpreted as a filter. Attempting to access non-existent array indices will return an empty result.

node_templates.*[0]                         // Selecting the first node template\nnode_templates.localhost.requirements[1]    // Selecting the second requirement of a node\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#boolean-operators","title":"Boolean Operators","text":"

Boolean operators can be used in predicates to link two or more conditions. AND returns true if both predicates evaluate to true, OR returns true if at least one of the predicates evaluates to true.

node_templates.*[type='textfile' AND name='first']\nnode_templates.*[name='first' OR name='second']\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#return-structures","title":"Return Structures","text":"

By default, the output that is returned will always consist of the value at the current context specified by the path expression. However, it is possible to define the shape of the returned data. This can be done by putting curly braces with comma-separated key-value pairs at the end of a path expression. Both key and value can either be a literal or a variable. When a variable is used as a key, it needs to evaluate to a string. Instead of a key-value pair, it is also possible to only specify the name of a value, in which case it will automatically be used as the name for the key.

The expression in the first line returns a list of objects comprised of the keys Node Name and Node Type mapped to the names and types of individual nodes. The second expression also returns a list of objects, but their keys are named directly after the values, namely name and type. The expression in the last line returns a list of objects consisting of only a single key-value pair, with the name of each individual node as the key, and the corresponding type as the value.

node_templates.*{'Node Name': name, 'Node Type': type}  // Using custom key names\nnode_templates.*{name, type}                            // Short form\nnode_templates.*{name: type}                            // List of node names mapped to type\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#patterns","title":"Patterns","text":"

The following sections describes how to define patterns, which can be matched using a MATCH statement.

Nodes are denoted by a pair of parentheses. Inside those parentheses, a variable name can be given to the node, otherwise they are anonymous and cannot be referenced in the SELECT clause.

()  // anonymous node template\n(n) // node template with variable n\n

Nodes can optionally contain a filter in square brackets that allows the same predicate syntax described above. Selecting a node template can be seen as the equivalent of a SELECT clause that implicitly starts at the path node_templates.*.

([type='textfile'])   // anonymous node template with filter\n(n [type='textfile']) // node template with variable n and filter\n

Relationships can be specified between nodes. They are connected to nodes via dashes or arrows to denote undirected or directed relationships, respectively. An incoming relationship means that the requirement of another node is fulfilled by a capability of the current node, while an outgoing relationship means that a requirement of the current node is fulfilled by the capability of the other node. An undirected relationship applies to both of these scenarios.

(a)-->(b)   // a has requirement fulfilled by capability of b\n(a)<--(b)   // a has capability that fulfills requirement of b\n(a)--(b)    // a and b have any relationship\n

Like node templates, relationships can be given a variable name, and their types can be specified using the same filter syntax. In order to do this, they need to be surrounded by curly braces inserted in the middle of the arrow.

(a)-{r}->(b)                // relationship with variable r\n(a)-{r [name='host']}->(b)  // relationship with symbolic name host and variable r\n

It is also possible to search for node templates connected over multiple relationships by specifying a cardinality. This can be accomplished by putting an asterisk at the end of a relationship, followed optionally by a number or a range.

(a)-{*2}->(b)       // exactly two hops between a and b\n(a)-{*2..5}->(b)    // between two and five hops\n(a)-{*2..}->(b)     // at least two hops\n(a)-{*..5}->(b)     // at most five hops\n(a)-{*}->(b)        // any amount of hops\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#appendix-a-grammar","title":"Appendix A \"Grammar\"","text":"

This appendix contains the Ohm grammar of Queries4TOSCA.

Query {\n  Main = (Expression | MatchExpression) end\n  Expression = FromExpression Select\n  MatchExpression = FromExpression Match Select\n\n  FromExpression = \"FROM\" (\"instances\" | \"templates\") (\"/\" | \".\") (asterisk | filePath)\n\n  Select = \"SELECT\" Path (\",\" Path)*\n  Path = (Group | Policy | Step | \".\") (ArrayAccess | Map | Filter)* ReturnClause?\n  Map = \".\" Step\n  Filter = PredicateExpression\n  Step = shortcut? (asterisk | ident)\n  ArrayAccess = \"[\" integer \"]\"\n  ReturnClause = \"{\" KeyValuePair (\",\" KeyValuePair)* \"}\"\n  KeyValuePair = Variable \":\" Variable --complex\n               | Variable              --simple\n  Group = \"GROUP\" \"(\" ident \")\"\n  Policy = \"POLICY\" \"(\" ident \")\"\n\n  PredicateExpression = \"[\" Predicate \"]\"\n  Predicate = Predicate logic Predicate -- multi\n            | Condition -- single\n  Condition = negation Value comparison literal -- comparison\n            | negation Value -- existence\n\n  Match = \"MATCH\" Node (Relationship Node)*\n  Node = \"(\" ident? PredicateExpression? \")\"\n  Relationship = arrowLeft arrowRight --simple\n               | arrowLeft \"{\" ident? PredicateExpression? Cardinality? \"}\" arrowRight --cond\n  Cardinality = asterisk integer \"..\" integer --range\n              | asterisk \"..\" integer --max\n              | asterisk integer \"..\" --min\n              | asterisk integer --exact\n              | asterisk --unlimited\n  Variable = literal | path | ident\n  Value = shortcut? (path | literal)\n\n  negation = \"!\" | \"\"\n  arrowLeft = \"<-\" | \"-\"\n  arrowRight = \"->\" | \"-\"\n  asterisk = \"*\"\n  comparison = \"=~\" | \"=\" | \"!=\" | \">=\" | \"<=\" | \">\" | \"<\"\n  ident = letter (alnum | \"_\" | \"-\")*\n  logic = \"AND\" | \"OR\"\n  path = letter (alnum | \"_\" | \"-\" | \".\")*\n  filePath = (~space any)*\n  literal = string | float | integer | bool\n  bool = \"true\" | \"false\" | \"TRUE\" | \"FALSE\"\n  shortcut = \"@\" | \"#\" | \"$\" | \"%\"\n  string\n    = \"'\" (~\"'\" any)* \"'\"\n    | \"\\\"\" (~\"\\\"\" any)* \"\\\"\"\n  integer = digit+\n  float   = digit? \".\" digit+\n  singleComment = \"//\" (~\"\\n\" any)*\n  multiComment = \"/*\" (~\"*/\" any)* \"*/\"\n  space := singleComment | multiComment | ...\n}\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#reference-implementation","title":"Reference Implementation","text":"

We provide a reference implementation for this specification as part of OpenTOSCA Vintner. OpenTOSCA Vintner is a TOSCA preprocessing and management layer. The project is open-source, licensed under Apache-2.0, and publicly available at GitHub.

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/tests/introduction/","title":"Introduction","text":"","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/tests/introduction/#queries4tosca-conformance-test-suite-10-release-candidate","title":"Queries4TOSCA Conformance Test Suite 1.0 Release Candidate","text":"

This document specifies the conformance test suite for the Queries4TOSCA specification which can be used to evaluate Query4TOSCA implementations. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/tests/introduction/#conformance-tests","title":"Conformance Tests","text":"

Each test is described on a separate page. The description includes typically a service template, a query, expected results and so on along with an explanation about the expected processing.

ID Test 1 all 2 array-access 3 boolean-and 4 boolean-or 5 filter-equals 6 filter-existence 7 filter-negation 8 filter-nested 9 filter-regex 10 group 11 match-length-any 12 match-length-range 13 match-next 14 match-previous 15 match-rel-filter 16 match-single 17 node-template 18 policy 19 resolve-chain 20 resolve-loop 21 resolve-self 22 resolve-simple 23 result-structure-complex 24 result-structure-simple 25 shortcut-property","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/tests/introduction/#reference-implementation","title":"Reference Implementation","text":"

We provide a reference implementation for this specification as part of OpenTOSCA Vintner. OpenTOSCA Vintner is a TOSCA preprocessing and management layer. The project is open-source, licensed under Apache-2.0, and publicly available at GitHub.

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/tests/introduction/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/tests/introduction/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/tests/introduction/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/tests/test-all/","title":"all","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-all/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-all/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT .\n
"},{"location":"queries4tosca/tests/test-all/#query-result","title":"Query Result","text":"

The following query result is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-array-access/","title":"array-access","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-array-access/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-array-access/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.webapp.requirements[1]\n
"},{"location":"queries4tosca/tests/test-array-access/#query-result","title":"Query Result","text":"

The following query result is expected.

host: tomcat\n
"},{"location":"queries4tosca/tests/test-boolean-and/","title":"boolean-and","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-boolean-and/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-boolean-and/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.*[name=\"dbms\" AND type=\"DBMS\"]\n
"},{"location":"queries4tosca/tests/test-boolean-and/#query-result","title":"Query Result","text":"

The following query result is expected.

type: DBMS\nrequirements:\n- host: vm_2\n
"},{"location":"queries4tosca/tests/test-boolean-or/","title":"boolean-or","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-boolean-or/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-boolean-or/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.*[type=\"Database\" OR type=\"DBMS\"]\n
"},{"location":"queries4tosca/tests/test-boolean-or/#query-result","title":"Query Result","text":"

The following query result is expected.

- type: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\n- type: DBMS\nrequirements:\n- host: vm_2\n
"},{"location":"queries4tosca/tests/test-filter-equals/","title":"filter-equals","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-filter-equals/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-filter-equals/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.*[type=\"VirtualMachine\"].name\n
"},{"location":"queries4tosca/tests/test-filter-equals/#query-result","title":"Query Result","text":"

The following query result is expected.

- vm_1\n- vm_2\n
"},{"location":"queries4tosca/tests/test-filter-existence/","title":"filter-existence","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-filter-existence/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-filter-existence/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.*[properties.num_cpus].name\n
"},{"location":"queries4tosca/tests/test-filter-existence/#query-result","title":"Query Result","text":"

The following query result is expected.

- vm_1\n- vm_2\n
"},{"location":"queries4tosca/tests/test-filter-negation/","title":"filter-negation","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-filter-negation/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-filter-negation/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.*[!type=\"VirtualMachine\"].name\n
"},{"location":"queries4tosca/tests/test-filter-negation/#query-result","title":"Query Result","text":"

The following query result is expected.

- webapp\n- tomcat\n- mysql_database\n- dbms\n- openstack\n
"},{"location":"queries4tosca/tests/test-filter-nested/","title":"filter-nested","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-filter-nested/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-filter-nested/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.*[properties.port=3306]\n
"},{"location":"queries4tosca/tests/test-filter-nested/#query-result","title":"Query Result","text":"

The following query result is expected.

type: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\n
"},{"location":"queries4tosca/tests/test-filter-regex/","title":"filter-regex","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-filter-regex/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-filter-regex/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.*[name=~\"vm_\"]\n
"},{"location":"queries4tosca/tests/test-filter-regex/#query-result","title":"Query Result","text":"

The following query result is expected.

- type: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\n- type: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\n
"},{"location":"queries4tosca/tests/test-group/","title":"group","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-group/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-group/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT GROUP(database_group)\n
"},{"location":"queries4tosca/tests/test-group/#query-result","title":"Query Result","text":"

The following query result is expected.

mysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\n
"},{"location":"queries4tosca/tests/test-match-length-any/","title":"match-length-any","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-match-length-any/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-match-length-any/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml MATCH ([type=\"WebApplication\"])-{*}->(node[type=\"OpenStack\"]) SELECT node\n
"},{"location":"queries4tosca/tests/test-match-length-any/#query-result","title":"Query Result","text":"

The following query result is expected.

openstack:\ntype: OpenStack\n
"},{"location":"queries4tosca/tests/test-match-length-range/","title":"match-length-range","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-match-length-range/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-match-length-range/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml MATCH ([type=\"Tomcat\"])-{*1..2}->(node) SELECT node.*.name\n
"},{"location":"queries4tosca/tests/test-match-length-range/#query-result","title":"Query Result","text":"

The following query result is expected.

- vm_1\n- openstack\n
"},{"location":"queries4tosca/tests/test-match-next/","title":"match-next","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-match-next/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-match-next/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml MATCH ([type=\"Tomcat\"])-->(node) SELECT node\n
"},{"location":"queries4tosca/tests/test-match-next/#query-result","title":"Query Result","text":"

The following query result is expected.

vm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\n
"},{"location":"queries4tosca/tests/test-match-previous/","title":"match-previous","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-match-previous/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-match-previous/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml MATCH (node)<--([type=\"Tomcat\"]) SELECT node\n
"},{"location":"queries4tosca/tests/test-match-previous/#query-result","title":"Query Result","text":"

The following query result is expected.

vm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\n
"},{"location":"queries4tosca/tests/test-match-rel-filter/","title":"match-rel-filter","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-match-rel-filter/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-match-rel-filter/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml MATCH ()-{[type=\"ConnectsTo\"]}->(node2) SELECT node2\n
"},{"location":"queries4tosca/tests/test-match-rel-filter/#query-result","title":"Query Result","text":"

The following query result is expected.

dbms:\ntype: DBMS\nrequirements:\n- host: vm_2\n
"},{"location":"queries4tosca/tests/test-match-single/","title":"match-single","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-match-single/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-match-single/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml MATCH (node[type=\"WebApplication\"]) SELECT node\n
"},{"location":"queries4tosca/tests/test-match-single/#query-result","title":"Query Result","text":"

The following query result is expected.

webapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\n
"},{"location":"queries4tosca/tests/test-node-template/","title":"node-template","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-node-template/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-node-template/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.webapp\n
"},{"location":"queries4tosca/tests/test-node-template/#query-result","title":"Query Result","text":"

The following query result is expected.

type: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\n
"},{"location":"queries4tosca/tests/test-policy/","title":"policy","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-policy/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-policy/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT POLICY(placement_policy)\n
"},{"location":"queries4tosca/tests/test-policy/#query-result","title":"Query Result","text":"

The following query result is expected.

vm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\n
"},{"location":"queries4tosca/tests/test-resolve-chain/","title":"resolve-chain","text":"

This test is of type template.

"},{"location":"queries4tosca/tests/test-resolve-chain/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/resolve-chain/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username: executeQuery(SELECT node_templates.webapp.properties.db_password)\ndb_password: executeQuery(SELECT node_templates.mysql_database.properties.password)\nport:\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: user\npassword: password\nrequirements:\n- my_db_connection: dbms\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nopenstack:\ntype: Compute\ncapabilities:\nhost:\nproperties:\nnum_cpus: 1\nmem_size: 2 GB\nos:\nproperties:\ntype: linux\ndistribution: ubuntu\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\n
"},{"location":"queries4tosca/tests/test-resolve-chain/#query-result","title":"Query Result","text":"

The following query result is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username: password\ndb_password: password\nport:\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: user\npassword: password\nrequirements:\n- my_db_connection: dbms\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nopenstack:\ntype: Compute\ncapabilities:\nhost:\nproperties:\nnum_cpus: 1\nmem_size: 2 GB\nos:\nproperties:\ntype: linux\ndistribution: ubuntu\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\n
"},{"location":"queries4tosca/tests/test-resolve-loop/","title":"resolve-loop","text":"

This test is of type template.

"},{"location":"queries4tosca/tests/test-resolve-loop/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/resolve-loop/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username: executeQuery(SELECT node_templates.webapp.properties.db_password)\ndb_password: executeQuery(SELECT node_templates.webapp.properties.db_username)\nport:\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: user\npassword: password\nrequirements:\n- my_db_connection: dbms\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nopenstack:\ntype: Compute\ncapabilities:\nhost:\nproperties:\nnum_cpus: 1\nmem_size: 2 GB\nos:\nproperties:\ntype: linux\ndistribution: ubuntu\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\n
"},{"location":"queries4tosca/tests/test-resolve-loop/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown.

Circular dependencies detected. Unable to resolve queries in your template.\n
"},{"location":"queries4tosca/tests/test-resolve-self/","title":"resolve-self","text":"

This test is of type template.

"},{"location":"queries4tosca/tests/test-resolve-self/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/resolve-self/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username: executeQuery(SELECT SELF.properties.db_password)\ndb_password: mypassword\nport:\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: user\npassword: password\nrequirements:\n- my_db_connection: dbms\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nopenstack:\ntype: Compute\ncapabilities:\nhost:\nproperties:\nnum_cpus: 1\nmem_size: 2 GB\nos:\nproperties:\ntype: linux\ndistribution: ubuntu\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\n
"},{"location":"queries4tosca/tests/test-resolve-self/#query-result","title":"Query Result","text":"

The following query result is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username: mypassword\ndb_password: mypassword\nport:\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: user\npassword: password\nrequirements:\n- my_db_connection: dbms\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nopenstack:\ntype: Compute\ncapabilities:\nhost:\nproperties:\nnum_cpus: 1\nmem_size: 2 GB\nos:\nproperties:\ntype: linux\ndistribution: ubuntu\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\n
"},{"location":"queries4tosca/tests/test-resolve-simple/","title":"resolve-simple","text":"

This test is of type template.

"},{"location":"queries4tosca/tests/test-resolve-simple/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/resolve-simple/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username: executeQuery(SELECT node_templates.mysql_database.properties.username)\ndb_password: executeQuery(SELECT node_templates.mysql_database.properties.password)\nport:\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: user\npassword: password\nrequirements:\n- my_db_connection: dbms\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nopenstack:\ntype: Compute\ncapabilities:\nhost:\nproperties:\nnum_cpus: 1\nmem_size: 2 GB\nos:\nproperties:\ntype: linux\ndistribution: ubuntu\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\n
"},{"location":"queries4tosca/tests/test-resolve-simple/#query-result","title":"Query Result","text":"

The following query result is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username: user\ndb_password: password\nport:\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: user\npassword: password\nrequirements:\n- my_db_connection: dbms\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nopenstack:\ntype: Compute\ncapabilities:\nhost:\nproperties:\nnum_cpus: 1\nmem_size: 2 GB\nos:\nproperties:\ntype: linux\ndistribution: ubuntu\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\n
"},{"location":"queries4tosca/tests/test-result-structure-complex/","title":"result-structure-complex","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-result-structure-complex/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-result-structure-complex/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.*{\"Node Name\": name, \"Node Type\": type}\n
"},{"location":"queries4tosca/tests/test-result-structure-complex/#query-result","title":"Query Result","text":"

The following query result is expected.

- Node Name: webapp\nNode Type: WebApplication\n- Node Name: tomcat\nNode Type: Tomcat\n- Node Name: mysql_database\nNode Type: Database\n- Node Name: dbms\nNode Type: DBMS\n- Node Name: vm_1\nNode Type: VirtualMachine\n- Node Name: vm_2\nNode Type: VirtualMachine\n- Node Name: openstack\nNode Type: OpenStack\n
"},{"location":"queries4tosca/tests/test-result-structure-simple/","title":"result-structure-simple","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-result-structure-simple/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-result-structure-simple/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.webapp{name, type}\n
"},{"location":"queries4tosca/tests/test-result-structure-simple/#query-result","title":"Query Result","text":"

The following query result is expected.

name: webapp\ntype: WebApplication\n
"},{"location":"queries4tosca/tests/test-shortcut-property/","title":"shortcut-property","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-shortcut-property/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-shortcut-property/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.webapp.#port\n
"},{"location":"queries4tosca/tests/test-shortcut-property/#query-result","title":"Query Result","text":"

The following query result is expected.

3306\n
"},{"location":"scsar/","title":"Secure CSAR","text":"","tags":["Specification"]},{"location":"scsar/#secure-cloud-service-archive-10-release-candidate","title":"Secure Cloud Service Archive 1.0 Release Candidate","text":"

This document specifies the concept of a Secure Cloud Service Archive (sCSAR). The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Specification"]},{"location":"scsar/#secure-cloud-service-archive","title":"Secure Cloud Service Archive","text":"

Sign the CSAR using RSA with SHA256 and place the signature under the name of the CSAR appended with .asc. For example, if the CSAR is named example.csar, then the signature file is named example.csar.asc. An RSA key length of 4096 is adviced. The CSAR and signature might be distributed in a ZIP file with the extension .scsar having the following structure.

File Description <CSAR Name>.csar The CSAR. <CSAR Name>.csar.asc The signature of the CSAR (encoded as HEX) certificate.pem The certificate (encoded as PEM) of the signature key used for verifying the signature. certificate-chain.pem The certificate chain (encoded as PEM).","tags":["Specification"]},{"location":"scsar/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Specification"]},{"location":"scsar/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Specification"]},{"location":"scsar/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Specification"]},{"location":"sofdcar/profile/","title":"Profile","text":"","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#tosca-software-defined-car-sofdcar-profile-10-release-candidate","title":"TOSCA Software-Defined Car (SofDCar) Profile 1.0 Release Candidate","text":"

This document specifies the TOSCA Software-Defined Car (SofDCar) profile. This profile includes normative TOSCA types for the domain of software-defined cars. Standardizing such normative TOSCA types improves interoperability. For example, an ECU supplier can model and distribute the deployment and management of their ECUs using these types. Various OEMs can then import provided models and integrate them into their cars. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#tosca-sofdcar-core-profile","title":"TOSCA SofDCar Core Profile","text":"

The core normative TOSCA type definitions contain high-level type definitions which are mainly derived from the normative TOSCA type definitions of the TOSCA Simple Profile in YAML 1.3. These types mainly concern the following topics.

  • Hardware and software of electronic computing units (ECUs) which are typically microcontrollers
  • Hardware and software of high performance computing platforms (HPCs) which are typically microprocessors
  • Sensors and actuators
  • Communication channels

Considering the modeling communication, the TOSCA modeling approach is application centric meaning that, e.g., a CAN communication is modeled by relationships between the communicating software components. Thus, no (physical) CAN bus is modeled between the ECUs. However, this might not provide all required information. This issue is also discussed in the networking section of the TOSCA specification. In this section, the authors of TOSCA propose to have a TOSCA model for the application and a second separate one for the networking. Therefore, we provide type definitions to model such an automotive TOSCA networking model which includes, e.g., a physical CAN bus.

","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#artifact-types","title":"Artifact Types","text":"

We specify the following normative artifact types. An overview is given in Figure tosca-sofdcar-profile-core1.

Figure C1: TOSCA SofDCar Core Artifact Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarartifactsroot","title":"sofdcar.artifacts.Root","text":"

The artifact all other artifacts are derived from.

sofdcar.artifacts.Root:\nderived_from: tosca.artifacts.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarartifactsdeployment","title":"sofdcar.artifacts.Deployment","text":"

The artifact all other deployment artifacts are derived from.

sofdcar.artifacts.Deployment:\nderived_from: tosca.artifacts.Deployment\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarartifactsimplementation","title":"sofdcar.artifacts.Implementation","text":"

The artifact all other implementation artifacts are derived from.

sofdcar.artifacts.Implementation:\nderived_from: tosca.artifacts.Implementation\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#capability-types","title":"Capability Types","text":"

We specify the following normative capability types. An overview is given in Figure tosca-sofdcar-profile-core2.

Figure C2: TOSCA SofDCar Core Capability Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesroot","title":"sofdcar.capabilities.Root","text":"

The capability all other capabilities are derived from.

sofdcar.capabilities.Root:\nderived_from: tosca.capabilities.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitieshostecusoftware","title":"sofdcar.capabilities.Host.ECU.Software","text":"

The capability to host an ECU software.

sofdcar.capabilities.Host.ECU.Software:\nderived_from: tosca.capabilities.Container\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesoperatingsystemrealtime","title":"sofdcar.capabilities.OperatingSystem.RealTime","text":"

The capability to provide a real-time operating system.

sofdcar.capabilities.OperatingSystem.RealTime:\nderived_from: tosca.capabilities.OperatingSystem\nproperties:\ntime_guarantee:\ntype: integer\nrequired: false\nguarantee_type:\ntype: string\nconstraints:\n- valid_values:\n- hard\n- firm\n- soft\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpoint","title":"sofdcar.capabilities.Endpoint","text":"

The capability to provide an endpoint to which a client can connect to.

sofdcar.capabilities.Endpoint:\nderived_from: sofdcar.capabilities.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#data-types","title":"Data Types","text":"

We specify the following normative data types. An overview is given in Figure tosca-sofdcar-profile-core3.

Figure C3: TOSCA SofDCar Core Data Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcardataroot","title":"sofdcar.data.Root","text":"

The data all other data are derived from.

sofdcar.data.Root:\nderived_from: tosca.datatypes.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#group-types","title":"Group Types","text":"

We specify the following normative group types. An overview is given in Figure tosca-sofdcar-profile-core4.

Figure C4: TOSCA SofDCar Core Group Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcargroupsroot","title":"sofdcar.groups.Root","text":"

The group all other groups are derived from.

sofdcar.groups.Root:\nderived_from: tosca.groups.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcargroupslocation","title":"sofdcar.groups.Location","text":"

The geographical location of nodes.

sofdcar.groups.Location:\nderived_from: sofdcar.groups.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcargroupsdomain","title":"sofdcar.groups.Domain","text":"

The domain in a domain-oriented architecture.

sofdcar.groups.Domain:\nderived_from: sofdcar.groups.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcargroupszone","title":"sofdcar.groups.Zone","text":"

The zone in a zone-oriented architecture.

sofdcar.groups.Zone:\nderived_from: sofdcar.groups.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#interface-types","title":"Interface Types","text":"

We specify the following normative interface types. An overview is given in Figure tosca-sofdcar-profile-core5.

Figure C5: TOSCA SofDCar Core Interface Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarinterfacesroot","title":"sofdcar.interfaces.Root","text":"

The interface all other interfaces are derived from.

sofdcar.interfaces.Root:\nderived_from: tosca.interfaces.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarinterfacesnodes","title":"sofdcar.interfaces.Nodes","text":"

The standard management interface of nodes.

sofdcar.interfaces.Nodes:\nderived_from: tosca.interfaces.node.lifecycle.Standard\noperations:\nbuild:\ndescription: Builds deployment artifacts.\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarinterfacesrelationship","title":"sofdcar.interfaces.Relationship","text":"

The standard management interface for relationships.

sofdcar.interfaces.Relationship:\nderived_from: tosca.interfaces.relationship.Configure\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#node-types","title":"Node Types","text":"

We specify the following normative node types. An overview is given in Figure tosca-sofdcar-profile-core6.

Figure C6: TOSCA SofDCar Core Node Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesroot","title":"sofdcar.nodes.Root","text":"

The node all other nodes are derived from.

sofdcar.nodes.Root:\nderived_from: tosca.nodes.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesvehicle","title":"sofdcar.nodes.Vehicle","text":"

The node all other vehicles are derived from.

sofdcar.nodes.Vehicle:\nderived_from: sofdcar.nodes.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodescloud","title":"sofdcar.nodes.Cloud","text":"

The node all other clouds are derived from.

sofdcar.nodes.Cloud:\nderived_from: sofdcar.nodes.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesecuhardware","title":"sofdcar.nodes.ECU.Hardware","text":"

The hardware of an ECU.

sofdcar.nodes.ECU.Hardware:\nderived_from: sofdcar.nodes.Root\ncapabilities:\nhost:\ntype: sofdcar.capabilities.Host.ECU.Software\nvalid_source_types:\n- sofdcar.nodes.ECU.Software\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesecusoftware","title":"sofdcar.nodes.ECU.Software","text":"

The software running on an ECU.

sofdcar.nodes.ECU.Software:\nderived_from: sofdcar.nodes.Root\nrequirements:\n- host:\ncapability: sofdcar.capabilities.Host.ECU.Software\nrelationship: tosca.relationships.HostedOn\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesecuruntime","title":"sofdcar.nodes.ECU.Runtime","text":"

The runtime for an ECU software.

sofdcar.nodes.ECU.Runtime:\nderived_from: sofdcar.nodes.ECU.Software\ncapabilities:\nhost:\ntype: sofdcar.capabilities.Host.ECU.Software\nvalid_source_types:\n- sofdcar.nodes.ECU.Software\nrequirements:\n- host:\ncapability: sofdcar.capabilities.Host.ECU.Software\nrelationship: tosca.relationships.HostedOn\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodeshpcsoftware","title":"sofdcar.nodes.HPC.Software","text":"

The software running on an HPC.

sofdcar.nodes.HPC.Software:\nderived_from: tosca.nodes.SoftwareComponent\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodeshpchardware","title":"sofdcar.nodes.HPC.Hardware","text":"

The hardware of an HPC.

sofdcar.nodes.HPC.Hardware:\nderived_from: sofdcar.nodes.Root\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nvalid_source_types:\n- tosca.nodes.SoftwareComponent\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesactuator","title":"sofdcar.nodes.Actuator","text":"

The node all other actuators are derived from.

sofdcar.nodes.Actuator:\nderived_from: sofdcar.nodes.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesaccelerator","title":"sofdcar.nodes.Accelerator","text":"

The node all other accelerators are derived from.

sofdcar.nodes.Accelerator:\nderived_from: sofdcar.nodes.Actuator\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesbrake","title":"sofdcar.nodes.Brake","text":"

The node all other brakes are derived from.

sofdcar.nodes.Brake:\nderived_from: sofdcar.nodes.Actuator\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodessteering","title":"sofdcar.nodes.Steering","text":"

The node all other steerings are derived from.

sofdcar.nodes.Steering:\nderived_from: sofdcar.nodes.Actuator\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodeslight","title":"sofdcar.nodes.Light","text":"

The node all other lights are derived from.

sofdcar.nodes.Light:\nderived_from: sofdcar.nodes.Actuator\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodescooling","title":"sofdcar.nodes.Cooling","text":"

The node all other coolings are derived from.

sofdcar.nodes.Cooling:\nderived_from: sofdcar.nodes.Actuator\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesairbag","title":"sofdcar.nodes.Airbag","text":"

The node all other airbags are derived from.

sofdcar.nodes.Airbag:\nderived_from: sofdcar.nodes.Actuator\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodessensor","title":"sofdcar.nodes.Sensor","text":"

The node all other sensors are derived from.

sofdcar.nodes.Sensor:\nderived_from: sofdcar.nodes.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesradar","title":"sofdcar.nodes.RADAR","text":"

The node all other RADAR are derived from.

sofdcar.nodes.RADAR:\nderived_from: sofdcar.nodes.Sensor\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodescamera","title":"sofdcar.nodes.Camera","text":"

The node all other cameras are derived from.

sofdcar.nodes.Camera:\nderived_from: sofdcar.nodes.Sensor\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodeslidar","title":"sofdcar.nodes.LIDAR","text":"

The node all other LIDAR are derived from.

sofdcar.nodes.LIDAR:\nderived_from: sofdcar.nodes.Sensor\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesultrasonic","title":"sofdcar.nodes.Ultrasonic","text":"

The node all other ultrasonics are derived from.

sofdcar.nodes.Ultrasonic:\nderived_from: sofdcar.nodes.Sensor\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesmicrophone","title":"sofdcar.nodes.Microphone","text":"

The node all other microphones are derived from.

sofdcar.nodes.Microphone:\nderived_from: sofdcar.nodes.Sensor\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodeschannel","title":"sofdcar.nodes.Channel","text":"

The node all other communication channels are derived from.

sofdcar.nodes.Channel:\nderived_from: sofdcar.nodes.Root\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint\noccurrences:\n- 0\n- UNBOUNDED\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesbattery","title":"sofdcar.nodes.Battery","text":"

The node all other batteries are derived from.

sofdcar.nodes.Battery:\nderived_from: sofdcar.nodes.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesfeature","title":"sofdcar.nodes.Feature","text":"

The node all other features are derived from.

sofdcar.nodes.Feature:\nderived_from: sofdcar.nodes.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#policy-types","title":"Policy Types","text":"

We specify the following normative policy types. An overview is given in Figure tosca-sofdcar-profile-core7.

Figure C7: TOSCA SofDCar Core Policy Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarpoliciesroot","title":"sofdcar.policies.Root","text":"

The policy all other policies are derived from.

sofdcar.policies.Root:\nderived_from: tosca.policies.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarpoliciessecurity","title":"sofdcar.policies.Security","text":"

The policy all other security-related policies are derived from.

sofdcar.policies.Security:\nderived_from: sofdcar.policies.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarpoliciessafety","title":"sofdcar.policies.Safety","text":"

The policy all other safety-related policies are derived from.

sofdcar.policies.Safety:\nderived_from: sofdcar.policies.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#relationship-types","title":"Relationship Types","text":"

We specify the following normative relationship types. An overview is given in Figure tosca-sofdcar-profile-core8.

Figure C8: TOSCA SofDCar Core Relationship Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipsroot","title":"sofdcar.relationships.Root","text":"

The relationship all other relationships are derived from.

sofdcar.relationships.Root:\nderived_from: tosca.relationships.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#tosca-sofdcar-extended-profile","title":"TOSCA SofDCar Extended Profile","text":"

The extended normative TOSCA type definitions contain additional high-level type definitions which are derived from the core type definitions. These types mainly concern specific communications, such as CAN or FlexRay, but also ECUs and HPCs, such as Arduino or Raspberry Pi.

","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#capability-types_1","title":"Capability Types","text":"

We specify the following normative capability types. An overview is given in Figure tosca-sofdcar-profile-extended1.

Figure E1: Capability Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpointcan","title":"sofdcar.capabilities.Endpoint.CAN","text":"

The capability to provide a CAN endpoint.

sofdcar.capabilities.Endpoint.CAN:\nderived_from: sofdcar.capabilities.Endpoint\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpointcan-fd","title":"sofdcar.capabilities.Endpoint.CAN-FD","text":"

The capability to provide a CAN-FD endpoint.

sofdcar.capabilities.Endpoint.CAN-FD:\nderived_from: sofdcar.capabilities.Endpoint.CAN\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpointlin","title":"sofdcar.capabilities.Endpoint.LIN","text":"

The capability to provide a LIN endpoint.

sofdcar.capabilities.Endpoint.LIN:\nderived_from: sofdcar.capabilities.Endpoint\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpointmost","title":"sofdcar.capabilities.Endpoint.MOST","text":"

The capability to provide a MOST endpoint.

sofdcar.capabilities.Endpoint.MOST:\nderived_from: sofdcar.capabilities.Endpoint\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpointgpio","title":"sofdcar.capabilities.Endpoint.GPIO","text":"

The capability to provide a GPIO endpoint.

sofdcar.capabilities.Endpoint.GPIO:\nderived_from: sofdcar.capabilities.Endpoint\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpointflexray","title":"sofdcar.capabilities.Endpoint.FlexRay","text":"

The capability to provide a FlexRay endpoint.

sofdcar.capabilities.Endpoint.FlexRay:\nderived_from: sofdcar.capabilities.Endpoint\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpointethernet","title":"sofdcar.capabilities.Endpoint.Ethernet","text":"

The capability to provide an Ethernet endpoint.

sofdcar.capabilities.Endpoint.Ethernet:\nderived_from: sofdcar.capabilities.Endpoint\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpointobd","title":"sofdcar.capabilities.Endpoint.OBD","text":"

The capability to provide an OBD endpoint.

sofdcar.capabilities.Endpoint.OBD:\nderived_from: sofdcar.capabilities.Endpoint.CAN\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpointsomeip","title":"sofdcar.capabilities.Endpoint.SOME/IP","text":"

The capability to provide a SOME/IP endpoint.

sofdcar.capabilities.Endpoint.SOME/IP:\nderived_from: sofdcar.capabilities.Endpoint.Ethernet\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#data-types_1","title":"Data Types","text":"

We specify the following normative data types. An overview is given in Figure tosca-sofdcar-profile-extended2.

Figure E2: Data Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcardatagpiopin","title":"sofdcar.data.GPIO.Pin","text":"

The GPIO pin used, e.g., when connecting using GPIO.

sofdcar.data.GPIO.Pin:\nderived_from: sofdcar.data.Root\nproperties:\npin:\ntype: integer\ndirection:\ntype: string\nconstraints:\n- valid_values:\n- in\n- out\n- in/out\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#node-types_1","title":"Node Types","text":"

We specify the following normative node types. An overview is given in Figure tosca-sofdcar-profile-extended3.

Figure E3: Node Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodescan","title":"sofdcar.nodes.CAN","text":"

The CAN channel all other CAN channels are derived from.

sofdcar.nodes.CAN:\nderived_from: sofdcar.nodes.Channel\nproperties:\nbitrate:\ntype: integer\nrequired: false\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.CAN\noccurrences:\n- 0\n- UNBOUNDED\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodescan-fd","title":"sofdcar.nodes.CAN-FD","text":"

The CAN-FD channel all other CAN-FD channels are derived from.

sofdcar.nodes.CAN-FD:\nderived_from: sofdcar.nodes.CAN\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.CAN-FD\noccurrences:\n- 0\n- UNBOUNDED\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodeslin","title":"sofdcar.nodes.LIN","text":"

The LIN channel all other LIN channels are derived from.

sofdcar.nodes.LIN:\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.LIN\noccurrences:\n- 0\n- UNBOUNDED\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesmost","title":"sofdcar.nodes.MOST","text":"

The MOST channel all other MOST channels are derived from.

sofdcar.nodes.MOST:\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.MOST\noccurrences:\n- 0\n- UNBOUNDED\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesgpio","title":"sofdcar.nodes.GPIO","text":"

The GIP channel all other GIP channels are derived from.

sofdcar.nodes.GPIO:\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.GPIO\noccurrences:\n- 2\n- 2\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesflexray","title":"sofdcar.nodes.FlexRay","text":"

The FlexRay channel all other FlexRay channels are derived from.

sofdcar.nodes.FlexRay:\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.FlexRay\noccurrences:\n- 0\n- UNBOUNDED\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesethernet","title":"sofdcar.nodes.Ethernet","text":"

The ethernet channel all other ethernet channels are derived from.

sofdcar.nodes.Ethernet:\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.Ethernet\noccurrences:\n- 2\n- 2\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodessomeip","title":"sofdcar.nodes.SOME/IP","text":"

The SOME/IP channel all other SOME/IP channels are derived from.

sofdcar.nodes.SOME/IP:\nderived_from: sofdcar.nodes.Ethernet\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.SOME/IP\noccurrences:\n- 2\n- 2\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodespythonapplication","title":"sofdcar.nodes.Python.Application","text":"

Non-normative python application running on an HPC. This application requires a python runtime.

sofdcar.nodes.Python.Application:\nderived_from: sofdcar.nodes.HPC.Software\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodespythonruntime","title":"sofdcar.nodes.Python.Runtime","text":"

Non-normative python runtime running on an HPC. This runtime is able to host python applications and requires a host.

sofdcar.nodes.Python.Runtime:\nderived_from: sofdcar.nodes.HPC.Software\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nvalid_source_types:\n- sofdcar.nodes.Python.Application\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesraspberrypihardware","title":"sofdcar.nodes.RaspberryPi.Hardware","text":"

The hardware of a Raspberry Pi serving as an HPC hardware. This Raspberry Pi is able to host HPC software. Furthermore, the Raspberry Pi is able to directly host python applications without explicit python runtime since a python runtime is already installed on the Raspberry Pi.

sofdcar.nodes.RaspberryPi.Hardware:\nderived_from: sofdcar.nodes.HPC.Hardware\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nvalid_source_types:\n- sofdcar.nodes.HPC.Software\n- sofdcar.nodes.Python.Application\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesarduinosoftware","title":"sofdcar.nodes.Arduino.Software","text":"

The software running on an Arduino.

sofdcar.nodes.Arduino.Software:\nderived_from: sofdcar.nodes.ECU.Software\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesarduinosoftwarec","title":"sofdcar.nodes.Arduino.Software.C++","text":"

C++ software running on an Arduino.

sofdcar.nodes.Arduino.Software.C++:\nderived_from: sofdcar.nodes.Arduino.Software\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesarduinohardware","title":"sofdcar.nodes.Arduino.Hardware","text":"

The hardware of an Arduino serving as ECU hardware. The Arduino is able to host Arduino software.

sofdcar.nodes.Arduino.Hardware:\nderived_from: sofdcar.nodes.ECU.Hardware\ncapabilities:\nhost:\ntype: sofdcar.capabilities.Host.ECU.Software\nvalid_source_types:\n- sofdcar.nodes.Arduino.Software\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#policy-types_1","title":"Policy Types","text":"

We specify the following normative policy types. An overview is given in Figure tosca-sofdcar-profile-extended4.

Figure E4: Policy Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarpoliciesasil","title":"sofdcar.policies.ASIL","text":"

The policy that all other ASIL policies are derived from.

sofdcar.policies.ASIL:\nderived_from: sofdcar.policies.Safety\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarpoliciesasila","title":"sofdcar.policies.ASIL.A","text":"

The policy that represents the ASIL level A.

sofdcar.policies.ASIL.A:\nderived_from: sofdcar.policies.ASIL\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarpoliciesasilb","title":"sofdcar.policies.ASIL.B","text":"

The policy that represents the ASIL level B.

sofdcar.policies.ASIL.B:\nderived_from: sofdcar.policies.ASIL\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarpoliciesasilc","title":"sofdcar.policies.ASIL.C","text":"

The policy that represents the ASIL level C.

sofdcar.policies.ASIL.C:\nderived_from: sofdcar.policies.ASIL\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarpoliciesasild","title":"sofdcar.policies.ASIL.D","text":"

The policy that represents the ASIL level D.

sofdcar.policies.ASIL.D:\nderived_from: sofdcar.policies.ASIL\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#relationship-types_1","title":"Relationship Types","text":"

We specify the following normative relationship types. An overview is given in Figure tosca-sofdcar-profile-extended5.

Figure E5: Relationship Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipscan","title":"sofdcar.relationships.CAN","text":"

The relationship for CAN connections.

sofdcar.relationships.CAN:\nderived_from: sofdcar.relationships.Root\nproperties:\ninterface:\ntype: string\ndescription: The interface name at the source at which the CAN bus is available.\ndefault: can0\ntarget_interface:\ntype: string\ndescription: The interface name at the target at which the CAN bus is available.\nrequired: false\nbitrate:\ntype: integer\ndescription: The bitrate of the CAN bus.\nrequired: false\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipscan-fd","title":"sofdcar.relationships.CAN-FD","text":"

The relationship for CAN-FD connections.

sofdcar.relationships.CAN-FD:\nderived_from: sofdcar.relationships.CAN\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipslin","title":"sofdcar.relationships.LIN","text":"

The relationship for LIN connections.

sofdcar.relationships.LIN:\nderived_from: sofdcar.relationships.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipsmost","title":"sofdcar.relationships.MOST","text":"

The relationships for MOST connections.

sofdcar.relationships.MOST:\nderived_from: sofdcar.relationships.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipsgpio","title":"sofdcar.relationships.GPIO","text":"

The relationship for GPIO connections.

sofdcar.relationships.GPIO:\nderived_from: sofdcar.relationships.Root\nproperties:\npins:\ntype: list\nentry_schema:\ntype: sofdcar.data.GPIO.Pin\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipsflexray","title":"sofdcar.relationships.FlexRay","text":"

The relationship for FlexRay connections.

sofdcar.relationships.FlexRay:\nderived_from: sofdcar.relationships.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipsethernet","title":"sofdcar.relationships.Ethernet","text":"

The relationship for Ethernet connections.

sofdcar.relationships.Ethernet:\nderived_from: sofdcar.relationships.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipsobd","title":"sofdcar.relationships.OBD","text":"

The relationship for OBD connections.

sofdcar.relationships.OBD:\nderived_from: sofdcar.relationships.CAN\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipssomeip","title":"sofdcar.relationships.SOME/IP","text":"

The relationship for SOME/IP connections.

sofdcar.relationships.SOME/IP:\nderived_from: sofdcar.relationships.Ethernet\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#appendix-a-tosca-sofdcar-profile","title":"Appendix A \"TOSCA SofDCar Profile\"","text":"

This appendix contains the TOSCA SofDCar profile. The profile is also available as download.

tosca_definitions_version: tosca_simple_yaml_1_3\ndescription: TOSCA Profile for Software-Defined Cars.\nmetadata:\ntemplate_name: TOSCA SofDCar Profile\ntemplate_author: Miles St\u00f6tzner\ntemplate_contact: miles.stoetzner@iste.uni-stuttgart.de\ntemplate_link: https://vintner.opentosca.org\ntemplate_version: 1.0.0-draft\ntemplate_id: tosca-sofdcar-profile\ntemplate_license: https://www.apache.org/licenses/LICENSE-2.0\nacknowledgments: Partially funded by the [German Federal Ministry for Economic Affairs and Climate Action (BMWK)](https://www.bmwk.de) as part of the research project [SofDCar (19S21002)](https://sofdcar.de).\nimports:\n- ./tosca-sofdcar-profile-core.yaml\n- ./tosca-sofdcar-profile-extended.yaml\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#appendix-b-tosca-sofdcar-core-profile","title":"Appendix B \"TOSCA SofDCar Core Profile\"","text":"

This appendix contains the TOSCA SofDCar Core profile. The profile is also available as download.

tosca_definitions_version: tosca_simple_yaml_1_3\ndescription: TOSCA Profile for Software-Defined Cars (Core).\nmetadata:\ntemplate_name: TOSCA SofDCar Profile (Core)\ntemplate_author: Miles St\u00f6tzner\ntemplate_contact: miles.stoetzner@iste.uni-stuttgart.de\ntemplate_link: https://vintner.opentosca.org\ntemplate_version: 1.0.0-draft\ntemplate_id: tosca-sofdcar-profile-core\ntemplate_license: https://www.apache.org/licenses/LICENSE-2.0\nabbreviations: |\n- ASIL: Automotive Safety Integrity Level\n- CAN: Controller Area Network\n- CAN-FD: Controller Area Network Flexible Data-Rate\n- ECU: Electronic Control Unit\n- GPIO: General-Purpose Input/ Output\n- HPC: High Performance Computer\n- LIDAR: Light Detection and Ranging\n- LIN: Local Interconnect Network\n- MOST: Media-Oriented Systems Transport\n- OBD: On-Board Diagnostics\n- RADAR: Radio Detection and Ranging\n- SOME/IP: Scalable Service-Oriented Middleware over IP\nacknowledgments: Partially funded by the [German Federal Ministry for Economic Affairs and Climate Action (BMWK)](https://www.bmwk.de) as part of the research project [SofDCar (19S21002)](https://sofdcar.de).\nartifact_types:\nsofdcar.artifacts.Root:\ndescription: The artifact all other artifacts are derived from.\nderived_from: tosca.artifacts.Root\nsofdcar.artifacts.Deployment:\ndescription: The artifact all other deployment artifacts are derived from.\nderived_from: tosca.artifacts.Deployment\nsofdcar.artifacts.Implementation:\ndescription: The artifact all other implementation artifacts are derived from.\nderived_from: tosca.artifacts.Implementation\ncapability_types:\nsofdcar.capabilities.Root:\ndescription: The capability all other capabilities are derived from.\nderived_from: tosca.capabilities.Root\nsofdcar.capabilities.Host.ECU.Software:\ndescription: The capability to host an ECU software.\nderived_from: tosca.capabilities.Container\nsofdcar.capabilities.OperatingSystem.RealTime:\ndescription: The capability to provide a real-time operating system.\nderived_from: tosca.capabilities.OperatingSystem\nproperties:\ntime_guarantee:\ntype: integer\nrequired: false\nguarantee_type:\ntype: string\nconstraints:\n- valid_values:\n- hard\n- firm\n- soft\nsofdcar.capabilities.Endpoint:\ndescription: The capability to provide an endpoint to which a client can connect to.\nderived_from: sofdcar.capabilities.Root\ndata_types:\nsofdcar.data.Root:\ndescription: The data all other data are derived from.\nderived_from: tosca.datatypes.Root\ngroup_types:\nsofdcar.groups.Root:\ndescription: The group all other groups are derived from.\nderived_from: tosca.groups.Root\nsofdcar.groups.Location:\ndescription: The geographical location of nodes.\nderived_from: sofdcar.groups.Root\nsofdcar.groups.Domain:\ndescription: The domain in a domain-oriented architecture.\nderived_from: sofdcar.groups.Root\nsofdcar.groups.Zone:\ndescription: The zone in a zone-oriented architecture.\nderived_from: sofdcar.groups.Root\ninterface_types:\nsofdcar.interfaces.Root:\ndescription: The interface all other interfaces are derived from.\nderived_from: tosca.interfaces.Root\nsofdcar.interfaces.Nodes:\ndescription: The standard management interface of nodes.\nderived_from: tosca.interfaces.node.lifecycle.Standard\noperations:\nbuild:\ndescription: Builds deployment artifacts.\nsofdcar.interfaces.Relationship:\ndescription: The standard management interface for relationships.\nderived_from: tosca.interfaces.relationship.Configure\nnode_types:\nsofdcar.nodes.Root:\ndescription: The node all other nodes are derived from.\nderived_from: tosca.nodes.Root\nsofdcar.nodes.Vehicle:\ndescription: The node all other vehicles are derived from.\nderived_from: sofdcar.nodes.Root\nsofdcar.nodes.Cloud:\ndescription: The node all other clouds are derived from.\nderived_from: sofdcar.nodes.Root\nsofdcar.nodes.ECU.Hardware:\ndescription: The hardware of an ECU.\nderived_from: sofdcar.nodes.Root\ncapabilities:\nhost:\ntype: sofdcar.capabilities.Host.ECU.Software\nvalid_source_types: [sofdcar.nodes.ECU.Software]\nsofdcar.nodes.ECU.Software:\ndescription: The software running on an ECU.\nderived_from: sofdcar.nodes.Root\nrequirements:\n- host:\ncapability: sofdcar.capabilities.Host.ECU.Software\nrelationship: tosca.relationships.HostedOn\nsofdcar.nodes.ECU.Runtime:\ndescription: The runtime for an ECU software.\nderived_from: sofdcar.nodes.ECU.Software\ncapabilities:\nhost:\ntype: sofdcar.capabilities.Host.ECU.Software\nvalid_source_types: [sofdcar.nodes.ECU.Software]\nrequirements:\n- host:\ncapability: sofdcar.capabilities.Host.ECU.Software\nrelationship: tosca.relationships.HostedOn\nsofdcar.nodes.HPC.Software:\ndescription: The software running on an HPC.\nderived_from: tosca.nodes.SoftwareComponent\nsofdcar.nodes.HPC.Hardware:\ndescription: The hardware of an HPC.\nderived_from: sofdcar.nodes.Root\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nvalid_source_types: [tosca.nodes.SoftwareComponent]\nsofdcar.nodes.Actuator:\ndescription: The node all other actuators are derived from.\nderived_from: sofdcar.nodes.Root\nsofdcar.nodes.Accelerator:\ndescription: The node all other accelerators are derived from.\nderived_from: sofdcar.nodes.Actuator\nsofdcar.nodes.Brake:\ndescription: The node all other brakes are derived from.\nderived_from: sofdcar.nodes.Actuator\nsofdcar.nodes.Steering:\ndescription: The node all other steerings are derived from.\nderived_from: sofdcar.nodes.Actuator\nsofdcar.nodes.Light:\ndescription: The node all other lights are derived from.\nderived_from: sofdcar.nodes.Actuator\nsofdcar.nodes.Cooling:\ndescription: The node all other coolings are derived from.\nderived_from: sofdcar.nodes.Actuator\nsofdcar.nodes.Airbag:\ndescription: The node all other airbags are derived from.\nderived_from: sofdcar.nodes.Actuator\nsofdcar.nodes.Sensor:\ndescription: The node all other sensors are derived from.\nderived_from: sofdcar.nodes.Root\nsofdcar.nodes.RADAR:\ndescription: The node all other RADAR are derived from.\nderived_from: sofdcar.nodes.Sensor\nsofdcar.nodes.Camera:\ndescription: The node all other cameras are derived from.\nderived_from: sofdcar.nodes.Sensor\nsofdcar.nodes.LIDAR:\ndescription: The node all other LIDAR are derived from.\nderived_from: sofdcar.nodes.Sensor\nsofdcar.nodes.Ultrasonic:\ndescription: The node all other ultrasonics are derived from.\nderived_from: sofdcar.nodes.Sensor\nsofdcar.nodes.Microphone:\ndescription: The node all other microphones are derived from.\nderived_from: sofdcar.nodes.Sensor\nsofdcar.nodes.Channel:\ndescription: The node all other communication channels are derived from.\nderived_from: sofdcar.nodes.Root\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint\noccurrences: [0, UNBOUNDED]\nsofdcar.nodes.Battery:\ndescription: The node all other batteries are derived from.\nderived_from: sofdcar.nodes.Root\nsofdcar.nodes.Feature:\ndescription: The node all other features are derived from.\nderived_from: sofdcar.nodes.Root\npolicy_types:\nsofdcar.policies.Root:\ndescription: The policy all other policies are derived from.\nderived_from: tosca.policies.Root\nsofdcar.policies.Security:\ndescription: The policy all other security-related policies are derived from.\nderived_from: sofdcar.policies.Root\nsofdcar.policies.Safety:\ndescription: The policy all other safety-related policies are derived from.\nderived_from: sofdcar.policies.Root\nrelationship_types:\nsofdcar.relationships.Root:\ndescription: The relationship all other relationships are derived from.\nderived_from: tosca.relationships.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#appendix-c-tosca-sofdcar-extended-profile","title":"Appendix C \"TOSCA SofDCar Extended Profile\"","text":"

This appendix contains the TOSCA SofDCar Extended profile. The profile is also available as download.

tosca_definitions_version: tosca_simple_yaml_1_3\ndescription: TOSCA Profile for Software-Defined Cars (Extended).\nmetadata:\ntemplate_name: TOSCA SofDCar Profile (Extended)\ntemplate_author: Miles St\u00f6tzner\ntemplate_contact: miles.stoetzner@iste.uni-stuttgart.de\ntemplate_link: https://vintner.opentosca.org\ntemplate_version: 1.0.0-draft\ntemplate_id: tosca-sofdcar-profile-extended\ntemplate_license: https://www.apache.org/licenses/LICENSE-2.0\nabbreviations: |\n- ASIL: Automotive Safety Integrity Level\n- CAN: Controller Area Network\n- CAN-FD: Controller Area Network Flexible Data-Rate\n- ECU: Electronic Control Unit\n- GPIO: General-Purpose Input/ Output\n- HPC: High Performance Computer\n- LIDAR: Light Detection and Ranging\n- LIN: Local Interconnect Network\n- MOST: Media-Oriented Systems Transport\n- OBD: On-Board Diagnostics\n- RADAR: Radio Detection and Ranging\n- SOME/IP: Scalable Service-Oriented Middleware over IP\nacknowledgments: Partially funded by the [German Federal Ministry for Economic Affairs and Climate Action (BMWK)](https://www.bmwk.de) as part of the research project [SofDCar (19S21002)](https://sofdcar.de).\nimports:\n- ./tosca-sofdcar-profile-core.yaml\ncapability_types:\nsofdcar.capabilities.Endpoint.CAN:\ndescription: The capability to provide a CAN endpoint.\nderived_from: sofdcar.capabilities.Endpoint\nsofdcar.capabilities.Endpoint.CAN-FD:\ndescription: The capability to provide a CAN-FD endpoint.\nderived_from: sofdcar.capabilities.Endpoint.CAN\nsofdcar.capabilities.Endpoint.LIN:\ndescription: The capability to provide a LIN endpoint.\nderived_from: sofdcar.capabilities.Endpoint\nsofdcar.capabilities.Endpoint.MOST:\ndescription: The capability to provide a MOST endpoint.\nderived_from: sofdcar.capabilities.Endpoint\nsofdcar.capabilities.Endpoint.GPIO:\ndescription: The capability to provide a GPIO endpoint.\nderived_from: sofdcar.capabilities.Endpoint\nsofdcar.capabilities.Endpoint.FlexRay:\ndescription: The capability to provide a FlexRay endpoint.\nderived_from: sofdcar.capabilities.Endpoint\nsofdcar.capabilities.Endpoint.Ethernet:\ndescription: The capability to provide an Ethernet endpoint.\nderived_from: sofdcar.capabilities.Endpoint\nsofdcar.capabilities.Endpoint.OBD:\ndescription: The capability to provide an OBD endpoint.\nderived_from: sofdcar.capabilities.Endpoint.CAN\nsofdcar.capabilities.Endpoint.SOME/IP:\ndescription: The capability to provide a SOME/IP endpoint.\nderived_from: sofdcar.capabilities.Endpoint.Ethernet\ndata_types:\nsofdcar.data.GPIO.Pin:\ndescription: The GPIO pin used, e.g., when connecting using GPIO.\nderived_from: sofdcar.data.Root\nproperties:\npin:\ntype: integer\ndirection:\ntype: string\nconstraints:\n- valid_values:\n- in\n- out\n- in/out\nnode_types:\nsofdcar.nodes.CAN:\ndescription: The CAN channel all other CAN channels are derived from.\nderived_from: sofdcar.nodes.Channel\nproperties:\nbitrate:\ntype: integer\nrequired: false\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.CAN\noccurrences: [0, UNBOUNDED]\nsofdcar.nodes.CAN-FD:\ndescription: The CAN-FD channel all other CAN-FD channels are derived from.\nderived_from: sofdcar.nodes.CAN\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.CAN-FD\noccurrences: [0, UNBOUNDED]\nsofdcar.nodes.LIN:\ndescription: The LIN channel all other LIN channels are derived from.\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.LIN\noccurrences: [0, UNBOUNDED]\nsofdcar.nodes.MOST:\ndescription: The MOST channel all other MOST channels are derived from.\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.MOST\noccurrences: [0, UNBOUNDED]\nsofdcar.nodes.GPIO:\ndescription: The GIP channel all other GIP channels are derived from.\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.GPIO\noccurrences: [2, 2]\nsofdcar.nodes.FlexRay:\ndescription: The FlexRay channel all other FlexRay channels are derived from.\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.FlexRay\noccurrences: [0, UNBOUNDED]\nsofdcar.nodes.Ethernet:\ndescription: The ethernet channel all other ethernet channels are derived from.\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.Ethernet\noccurrences: [2, 2]\nsofdcar.nodes.SOME/IP:\ndescription: The SOME/IP channel all other SOME/IP channels are derived from.\nderived_from: sofdcar.nodes.Ethernet\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.SOME/IP\noccurrences: [2, 2]\nsofdcar.nodes.Python.Application:\ndescription: >\nNon-normative python application running on an HPC.\nThis application requires a python runtime.\nderived_from: sofdcar.nodes.HPC.Software\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\nsofdcar.nodes.Python.Runtime:\ndescription: >\nNon-normative python runtime running on an HPC.\nThis runtime is able to host python applications and requires a host.\nderived_from: sofdcar.nodes.HPC.Software\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nvalid_source_types: [sofdcar.nodes.Python.Application]\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\nsofdcar.nodes.RaspberryPi.Hardware:\ndescription: >\nThe hardware of a Raspberry Pi serving as an HPC hardware.\nThis Raspberry Pi is able to host HPC software.\nFurthermore, the Raspberry Pi is able to directly host python applications without explicit python runtime since a python runtime is already installed on the Raspberry Pi.\nderived_from: sofdcar.nodes.HPC.Hardware\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nvalid_source_types: [sofdcar.nodes.HPC.Software, sofdcar.nodes.Python.Application]\nsofdcar.nodes.Arduino.Software:\ndescription: The software running on an Arduino.\nderived_from: sofdcar.nodes.ECU.Software\nsofdcar.nodes.Arduino.Software.C++:\ndescription: C++ software running on an Arduino.\nderived_from: sofdcar.nodes.Arduino.Software\nsofdcar.nodes.Arduino.Hardware:\ndescription: >\nThe hardware of an Arduino serving as ECU hardware.\nThe Arduino is able to host Arduino software.\nderived_from: sofdcar.nodes.ECU.Hardware\ncapabilities:\nhost:\ntype: sofdcar.capabilities.Host.ECU.Software\nvalid_source_types: [sofdcar.nodes.Arduino.Software]\npolicy_types:\nsofdcar.policies.ASIL:\ndescription: The policy that all other ASIL policies are derived from.\nderived_from: sofdcar.policies.Safety\nsofdcar.policies.ASIL.A:\ndescription: The policy that represents the ASIL level A.\nderived_from: sofdcar.policies.ASIL\nsofdcar.policies.ASIL.B:\ndescription: The policy that represents the ASIL level B.\nderived_from: sofdcar.policies.ASIL\nsofdcar.policies.ASIL.C:\ndescription: The policy that represents the ASIL level C.\nderived_from: sofdcar.policies.ASIL\nsofdcar.policies.ASIL.D:\ndescription: The policy that represents the ASIL level D.\nderived_from: sofdcar.policies.ASIL\nrelationship_types:\nsofdcar.relationships.CAN:\ndescription: The relationship for CAN connections.\nderived_from: sofdcar.relationships.Root\nproperties:\ninterface:\ntype: string\ndescription: The interface name at the source at which the CAN bus is available.\ndefault: can0\ntarget_interface:\ntype: string\ndescription: The interface name at the target at which the CAN bus is available.\nrequired: false\nbitrate:\ntype: integer\ndescription: The bitrate of the CAN bus.\nrequired: false\nsofdcar.relationships.CAN-FD:\ndescription: The relationship for CAN-FD connections.\nderived_from: sofdcar.relationships.CAN\nsofdcar.relationships.LIN:\ndescription: The relationship for LIN connections.\nderived_from: sofdcar.relationships.Root\nsofdcar.relationships.MOST:\ndescription: The relationships for MOST connections.\nderived_from: sofdcar.relationships.Root\nsofdcar.relationships.GPIO:\ndescription: The relationship for GPIO connections.\nderived_from: sofdcar.relationships.Root\nproperties:\npins:\ntype: list\nentry_schema:\ntype: sofdcar.data.GPIO.Pin\nsofdcar.relationships.FlexRay:\ndescription: The relationship for FlexRay connections.\nderived_from: sofdcar.relationships.Root\nsofdcar.relationships.Ethernet:\ndescription: The relationship for Ethernet connections.\nderived_from: sofdcar.relationships.Root\nsofdcar.relationships.OBD:\ndescription: The relationship for OBD connections.\nderived_from: sofdcar.relationships.CAN\nsofdcar.relationships.SOME/IP:\ndescription: The relationship for SOME/IP connections.\nderived_from: sofdcar.relationships.Ethernet\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/guides/location/","title":"Distributed Locations","text":"

This document holds an example of two geographically distributed ECUs using the TOSCA SofDCar profile.

","tags":["SofDCar","Guide"]},{"location":"sofdcar/guides/location/#scenario","title":"Scenario","text":"

In this example, there are two ECUs. These two ECUs communicate via CAN which is bridged over the cloud, as shown in Figure 1. Thereby, we model the CAN communication application-centric via a direct relationship between the two software components as well as network-centric via explicitly modeling the CAN busses and their connections to the underlying hardware.

Figure 1: Distributed Locations","tags":["SofDCar","Guide"]},{"location":"sofdcar/guides/location/#appendix-a-service-template","title":"Appendix A \"Service Template\"","text":"

This appendix contains the service template of this guide. The service template is also available as download.

tosca_definitions_version: tosca_simple_yaml_1_3\ndescription: Example of an architecture distributed across several geographical locations.\nimports:\n- types.yaml\ntopology_template:\nnode_templates:\n###################################################\n#\n# Cloud\n#\n###################################################\ncloud_service:\ntype: example.nodes.Cloud.Service\nrequirements:\n- host: cloud_provider\ncloud_provider:\ntype: example.nodes.Cloud.Provider\n###################################################\n#\n# Location A\n#\n###################################################\na_ecu_software:\ntype: example.nodes.ECU.Software\nrequirements:\n- host: a_ecu_runtime\n- can: a_can_bus\n- connect: b_ecu_software\na_ecu_runtime:\ntype: example.nodes.ECU.Runtime\nrequirements:\n- host: a_ecu_hardware\na_ecu_hardware:\ntype: example.nodes.ECU.Hardware\nrequirements:\n- can: a_can_bus\na_can_bus:\ntype: sofdcar.nodes.CAN\na_can_bridge:\ntype: example.nodes.CAN.Bridge\nrequirements:\n- can: a_can_bus\n- cloud: cloud_service\n###################################################\n#\n# Location B\n#\n###################################################\nb_ecu_software:\ntype: example.nodes.ECU.Software\nrequirements:\n- host: b_ecu_runtime\n- can: b_can_bus\nb_ecu_runtime:\ntype: example.nodes.ECU.Runtime\nrequirements:\n- host: b_ecu_hardware\nb_ecu_hardware:\ntype: example.nodes.ECU.Hardware\nrequirements:\n- can: b_can_bus\nb_can_bus:\ntype: sofdcar.nodes.CAN\nb_can_bridge:\ntype: example.nodes.CAN.Bridge\nrequirements:\n- can: b_can_bus\n- cloud: cloud_service\ngroups:\ncloud:\ntype: sofdcar.groups.Location\nmembers:\n- cloud_service\n- cloud_provider\nlocation_a:\ntype: sofdcar.groups.Location\nmembers:\n- a_ecu_software\n- a_ecu_runtime\n- a_ecu_hardware\n- a_can_bus\n- a_can_bridge\nlocation_b:\ntype: sofdcar.groups.Location\nmembers:\n- b_ecu_software\n- b_ecu_runtime\n- b_ecu_hardware\n- b_can_bus\n- b_can_bridge\n
","tags":["SofDCar","Guide"]},{"location":"sofdcar/guides/location/#appendix-b-type-definitions","title":"Appendix B \"Type Definitions\"","text":"

This appendix contains the type definitions of this guide. The type definitions are also available as download

tosca_definitions_version: tosca_simple_yaml_1_3\nimports:\n- ../../tosca-sofdcar-profile.yaml\n- ../../tosca-sofdcar-profile-extended.yaml\nnode_types:\nexample.nodes.Cloud.Service:\nderived_from: tosca.nodes.SoftwareComponent\ncapabilities:\nendpoint:\ntype: tosca.capabilities.Endpoint\nexample.nodes.Cloud.Provider:\nderived_from: sofdcar.nodes.Cloud\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nexample.nodes.ECU.Software:\nderived_from: sofdcar.nodes.ECU.Software\ncapabilities:\nconnect:\ntype: sofdcar.capabilities.Endpoint.CAN\nrequirements:\n- can:\ncapability: sofdcar.capabilities.Endpoint.CAN\nrelationship: sofdcar.relationships.CAN\noccurrences: [0, 1]\n- connect:\ncapability: sofdcar.capabilities.Endpoint.CAN\nrelationship: sofdcar.relationships.CAN\noccurrences: [0, 1]\nexample.nodes.ECU.Runtime:\nderived_from: sofdcar.nodes.ECU.Runtime\nexample.nodes.ECU.Hardware:\nderived_from: sofdcar.nodes.ECU.Hardware\nrequirements:\n- can:\ncapability: sofdcar.capabilities.Endpoint.CAN\nrelationship: sofdcar.relationships.CAN\nexample.nodes.CAN.Bridge:\nderived_from: sofdcar.nodes.Root\nrequirements:\n- cloud:\ncapability: tosca.capabilities.Endpoint\nrelationship: tosca.relationships.ConnectsTo\n- can:\ncapability: sofdcar.capabilities.Endpoint.CAN\nrelationship: sofdcar.relationships.CAN\n
","tags":["SofDCar","Guide"]},{"location":"sofdcar/guides/zone/","title":"Zonal Architecture","text":"

This document holds an example of a zonal architecture using the TOSCA SofDCar profile. This zonal architecture consists of several zones inside the vehicle in which also cloud services are integrated.

","tags":["SofDCar","Guide"]},{"location":"sofdcar/guides/zone/#scenario","title":"Scenario","text":"

In this example, there are two zones which both contain a zone control unit, an actuator, and a sensor, as shown in Figure 1. Communication inside those zones is based on CAN. Furthermore, there is a third zone which contains a vehicle control unit. This vehicle control unit connects the other two zones based on Ethernet. Moreover, this vehicle control unit also connects to some service running in the cloud.

Figure 1: Zonal Architecture","tags":["SofDCar","Guide"]},{"location":"sofdcar/guides/zone/#appendix-a-service-template","title":"Appendix A \"Service Template\"","text":"

This appendix contains the service template of this guide. The service template is also available as download.

tosca_definitions_version: tosca_simple_yaml_1_3\ndescription: Example of a zonal architecture connected to the cloud.\nimports:\n- types.yaml\ntopology_template:\nnode_templates:\n###################################################\n#\n# Cloud\n#\n###################################################\ncloud_service:\ntype: example.nodes.Cloud.Service\nrequirements:\n- host: cloud_provider\ncloud_provider:\ntype: example.nodes.Cloud.Provider\n###################################################\n#\n# Vehicle Control Unit\n#\n###################################################\nvehicle_control_unit_software:\ntype: example.nodes.VCU.Software\nrequirements:\n- host: vehicle_control_unit_hardware\n- cloud: cloud_service\nvehicle_control_unit_hardware:\ntype: example.nodes.VCU.Hardware\nrequirements:\n- ethernet: zone_a_ethernet\n- ethernet: zone_b_ethernet\n###################################################\n#\n# Zone A\n#\n###################################################\nzone_a_control_unit_software:\ntype: example.nodes.ZCU.Software\nrequirements:\n- host: zone_a_control_unit_hardware\n- vcu: vehicle_control_unit_software\nzone_a_control_unit_hardware:\ntype: example.nodes.ZCU.Hardware\nrequirements:\n- ethernet: zone_a_ethernet\n- can: zone_a_can_bus\nzone_a_ethernet:\ntype: sofdcar.nodes.Ethernet\nzone_a_can_bus:\ntype: sofdcar.nodes.CAN\nzone_a_actuator:\ntype: example.nodes.Actuator\nrequirements:\n- can: zone_a_can_bus\n- zcu: zone_a_control_unit_software\nzone_a_sensor:\ntype: example.nodes.Sensor\nrequirements:\n- can: zone_a_can_bus\n- zcu: zone_a_control_unit_software\n###################################################\n#\n# Zone B\n#\n###################################################\nzone_b_control_unit_software:\ntype: example.nodes.ZCU.Software\nrequirements:\n- host: zone_b_control_unit_hardware\n- vcu: vehicle_control_unit_software\nzone_b_control_unit_hardware:\ntype: example.nodes.ZCU.Hardware\nrequirements:\n- ethernet: zone_b_ethernet\n- can: zone_b_can_bus\nzone_b_ethernet:\ntype: sofdcar.nodes.Ethernet\nzone_b_can_bus:\ntype: sofdcar.nodes.CAN\nzone_b_actuator:\ntype: example.nodes.Actuator\nrequirements:\n- can: zone_b_can_bus\n- zcu: zone_b_control_unit_software\nzone_b_sensor:\ntype: example.nodes.Sensor\nrequirements:\n- can: zone_b_can_bus\n- zcu: zone_b_control_unit_software\ngroups:\ncloud:\ntype: tosca.groups.Root\nmembers:\n- cloud_service\n- cloud_provider\nzone_a:\ntype: sofdcar.groups.Zone\nmembers:\n- zone_a_control_unit_software\n- zone_a_control_unit_hardware\n- zone_a_ethernet\n- zone_a_can_bus\n- zone_a_actuator\n- zone_a_sensor\nzone_b:\ntype: sofdcar.groups.Zone\nmembers:\n- zone_b_control_unit_software\n- zone_b_control_unit_hardware\n- zone_b_ethernet\n- zone_b_can_bus\n- zone_b_actuator\n- zone_b_sensor\nzone_c:\ntype: sofdcar.groups.Zone\nmembers:\n- vehicle_control_unit_software\n- vehicle_control_unit_hardware\n
","tags":["SofDCar","Guide"]},{"location":"sofdcar/guides/zone/#appendix-b-type-definitions","title":"Appendix B \"Type Definitions\"","text":"

This appendix contains the type definitions of this guide. The type definitions are also available as download

tosca_definitions_version: tosca_simple_yaml_1_3\nimports:\n- ../../tosca-sofdcar-profile.yaml\n- ../../tosca-sofdcar-profile-extended.yaml\nnode_types:\nexample.nodes.Cloud.Service:\nderived_from: tosca.nodes.SoftwareComponent\ncapabilities:\nendpoint:\ntype: tosca.capabilities.Endpoint\nexample.nodes.Cloud.Provider:\nderived_from: sofdcar.nodes.Cloud\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nexample.nodes.VCU.Software:\nderived_from: sofdcar.nodes.HPC.Software\ncapabilities:\nendpoint:\ntype: tosca.capabilities.Endpoint\nrequirements:\n- cloud:\ncapability: tosca.capabilities.Endpoint\nrelationship: tosca.relationships.ConnectsTo\nexample.nodes.VCU.Hardware:\nderived_from: sofdcar.nodes.HPC.Hardware\nrequirements:\n- ethernet:\ncapability: sofdcar.capabilities.Endpoint.Ethernet\nrelationship: sofdcar.relationships.Ethernet\noccurrences: [0, UNBOUNDED]\nexample.nodes.ZCU.Software:\nderived_from: sofdcar.nodes.HPC.Software\ncapabilities:\nendpoint:\ntype: tosca.capabilities.Endpoint\nrequirements:\n- vcu:\ncapability: tosca.capabilities.Endpoint\nrelationship: tosca.relationships.ConnectsTo\nexample.nodes.ZCU.Hardware:\nderived_from: sofdcar.nodes.HPC.Hardware\nrequirements:\n- can:\ncapability: sofdcar.capabilities.Endpoint.CAN\nrelationship: sofdcar.relationships.CAN\n- ethernet:\ncapability: sofdcar.capabilities.Endpoint.Ethernet\nrelationship: sofdcar.relationships.Ethernet\nexample.nodes.Actuator:\nderived_from: sofdcar.nodes.Actuator\nrequirements:\n- can:\ncapability: sofdcar.capabilities.Endpoint.CAN\nrelationship: sofdcar.relationships.CAN\n- zcu:\ncapability: tosca.capabilities.Endpoint\nrelationship: tosca.relationships.ConnectsTo\nexample.nodes.Sensor:\nderived_from: sofdcar.nodes.Sensor\nrequirements:\n- can:\ncapability: sofdcar.capabilities.Endpoint.CAN\nrelationship: sofdcar.relationships.CAN\n- zcu:\ncapability: tosca.capabilities.Endpoint\nrelationship: tosca.relationships.ConnectsTo\n
","tags":["SofDCar","Guide"]},{"location":"variability4tosca/benchmark/","title":"Benchmark","text":"

To benchmark our implementation of a Variability4TOSCA processor, we run several tests. Thereby, a service template is generated and then resolved based on a seed. A seed of value n results in 2n node templates and 2n relationship templates, thus, 4n templates. For example, a seed of 10.000 generates 20.0000 node templates and 20.0000 relationship templates. When variability is resolved, n node templates and n relationship templates are removed. An concrete example is given below.

","tags":["Variability4TOSCA"]},{"location":"variability4tosca/benchmark/#tests-in-memory","title":"Tests In-Memory","text":"

The first test suite runs the tests in-memory. Thus, generated and resolved service templates are not read or stored to the filesystem.

Test Seed Templates Median Median per Template 1 10 40 37.918 ms 0.948 ms 2 250 1,000 38.578 ms 0.039 ms 3 500 2,000 71.489 ms 0.036 ms 4 1,000 4,000 136.850 ms 0.034 ms 5 2,500 10,000 334.963 ms 0.033 ms 6 5,000 20,000 669.432 ms 0.033 ms 7 10,000 40,000 1.365 s 0.034 ms","tags":["Variability4TOSCA"]},{"location":"variability4tosca/benchmark/#tests-with-filesystem","title":"Tests with Filesystem","text":"

The second test suite runs the tests with filesystem interaction. Thus, generated and resolved service templates are also read and stored to the filesystem.

Test Seed Templates Median Median per Template 1 10 40 5.992 ms 0.150 ms 2 250 1,000 48.485 ms 0.048 ms 3 500 2,000 94.863 ms 0.047 ms 4 1,000 4,000 182.193 ms 0.046 ms 5 2,500 10,000 463.675 ms 0.046 ms 6 5,000 20,000 955.071 ms 0.048 ms 7 10,000 40,000 1.997 s 0.050 ms","tags":["Variability4TOSCA"]},{"location":"variability4tosca/benchmark/#file-measurements","title":"File Measurements","text":"

The written variable service templates have the following measurements.

Test Seed File Size File Lines 1 10 10 kb 322 2 250 254 kb 7,762 3 500 509 kb 15,512 4 1,000 1.019 mb 31,012 5 2,500 2.578 mb 77,512 6 5,000 5.175 mb 155,012 7 10,000 10.370 mb 310,012","tags":["Variability4TOSCA"]},{"location":"variability4tosca/benchmark/#computing-resources","title":"Computing Resources","text":"

The following computing resources have been used for the benchmark.

Resource Value Date 2024-01-27 OpenTOSCA Vintner e800c672edebf2d7338029680b58016244461736 Operating System Windows 11 Processor Intel Core i7-12700KF Memory 2x Crucial RAM 32GB DDR4 3200MHz CL22 Motherboard ASRock H670 PG Riptide Intel H670 Graphic Card GeForce RTX TM 2060 WINDFORCE OC 6G Disk Samsung 990 Pro NVMe M.2 SSD PCIe 4.0 1TB","tags":["Variability4TOSCA"]},{"location":"variability4tosca/benchmark/#running-the-benchmark","title":"Running the Benchmark","text":"

To run the benchmark on your own, run the following command. For more information see Interface. Feel free to open a merge request, if your benchmarking results are better.

vintner setup benchmark --markdown --io\n
","tags":["Variability4TOSCA"]},{"location":"variability4tosca/benchmark/#service-template-under-test","title":"Service Template Under Test","text":"

The following is an example of the expected service template that is under test when the seed is 2.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode: { type: string }\nexpressions:\ncondition_0_present: { equal: [ { variability_input: mode }, present ] }\ncondition_0_removed: { equal: [ { variability_input: mode }, absent ] }\ncondition_1_present: { equal: [ { variability_input: mode }, present ] }\ncondition_1_removed: { equal: [ { variability_input: mode }, absent ] }\nnode_templates:\ncomponent_0_present:\ntype: component_type_0_present\nconditions: { logic_expression: condition_0_present }\nrequirements:\n-   relation_present:\nnode: component_1_present\nconditions: { logic_expression: condition_0_present }\nrelationship: relationship_0_present\n-   relation_removed:\nnode: component_1_removed\nconditions: { logic_expression: condition_0_removed }\nrelationship: relationship_0_removed\ncomponent_0_removed:\ntype: component_type_0_removed\nconditions: { logic_expression: condition_0_removed }\ncomponent_1_present:\ntype: component_type_1_present\nconditions: { logic_expression: condition_1_present }\nrequirements:\n-   relation_present:\nnode: component_0_present\nconditions: { logic_expression: condition_1_present }\nrelationship: relationship_1_present\n-   relation_removed:\nnode: component_0_removed\nconditions: { logic_expression: condition_1_removed }\nrelationship: relationship_1_removed\ncomponent_1_removed:\ntype: component_type_1_removed\nconditions: { logic_expression: condition_1_removed }\nrelationship_templates:\nrelationship_0_present:\ntype: relationship_type_0_present\nrelationship_0_removed:\ntype: relationship_type_0_removed\nrelationship_1_present:\ntype: relationship_type_1_present\nrelationship_1_removed:\ntype: relationship_type_1_removed\n
","tags":["Variability4TOSCA"]},{"location":"variability4tosca/dynamic/","title":"Dynamic Deployment Artifacts","text":"","tags":["Variability4TOSCA","Specification","Experimental"]},{"location":"variability4tosca/dynamic/#variability4tosca-dynamic-deployment-artifacts-10-release-candidate","title":"Variability4TOSCA Dynamic Deployment Artifacts 1.0 Release Candidate","text":"

Warning

This specification is experimental.

This document specifies dynamic deployment artifacts which are supposed to be build on-demand based on information in the topology. The intention is to build variants of deployment artifacts which are specific for the application. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Variability4TOSCA","Specification","Experimental"]},{"location":"variability4tosca/dynamic/#dynamic-build-artifacts","title":"Dynamic Build Artifacts","text":"

To build dynamic deployment artifacts a build management operation is defined for the tosca.interfaces.node.lifecycle.Variability interface. This management operation can be used in several stages. Artifacts can be build during modeling when packaging the application as CSAR, right before the deployment process or during deployment. The implementation of the build management operation can start, e.g., a build pipeline and set a reference, such as a Docker Tag as attribute of the respective node template. This reference can then be used by the create management operation of tosca.interfaces.node.lifecycle.Standard.

tosca.interfaces.node.lifecycle.Variability\n+    build:\n+        description: Builds a Deployment Artifact\n

A rough idea has been also mentioned in TOSCA Simple Profile in YAML Version 1.3.

","tags":["Variability4TOSCA","Specification","Experimental"]},{"location":"variability4tosca/dynamic/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Variability4TOSCA","Specification","Experimental"]},{"location":"variability4tosca/dynamic/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Variability4TOSCA","Specification","Experimental"]},{"location":"variability4tosca/dynamic/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Variability4TOSCA","Specification","Experimental"]},{"location":"variability4tosca/feature-ide/","title":"Feature IDE","text":"","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/feature-ide/#variability4tosca-feature-ide-integration-10-release-candidate","title":"Variability4TOSCA Feature IDE Integration 1.0 Release Candidate","text":"

This document specifies the integration of FeatureIDE into the Variability4TOSCA specification. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/feature-ide/#featureide-integration","title":"FeatureIDE Integration","text":"

In order to generate only valid service templates, feature models can be used to model dependencies between variability inputs. A feature model of Feature IDE is supposed to be packaged as feature-model.xml at the root of the CSAR. We describe the mapping between the Extended XML Configuration to variability inputs.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/feature-ide/#features","title":"Features","text":"

Each feature is mapped to a Boolean variability input. The value is true if either automatic or manual is selected. Otherwise, the value is false. Thereby, the feature name is transformed to lowercase and all whitespaces are replaced with an underscore.

FeatureIDE Extended XMLYAML
<feature automatic=\"selected\" manual=\"selected\" name=\"Feature A\"/>\n
feature_a: true\n

Feature names can be overridden by the value of the attribute __name.

FeatureIDE Extended XMLYAML
<feature automatic=\"undefined\" manual=\"selected\" name=\"Feature C\">\n<attribute name=\"__name\" value=\"feature_overridden\"/>\n</feature>\n
feature_overridden: true\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/feature-ide/#attributes","title":"Attributes","text":"

Each attribute is mapped to a variability input. The values are parsed by a JSON parser. If parsing throws an error, then the value is treated as a string.

The attribute name is namespaced by their feature, transformed to lowercase and all whitespaces are replaced with an underscore.

FeatureIDE Extended XMLYAML
<feature automatic=\"undefined\" manual=\"selected\" name=\"Feature A\">\n<attribute name=\"attr_bool_true\" value=\"true\"/>\n</feature>\n
feature_a_attr_bool_true: true\n

Attribute names can be overridden by the value of the attribute __name_${attribute name}.

FeatureIDE Extended XMLYAML
<feature automatic=\"undefined\" manual=\"selected\" name=\"Feature D\">\n<attribute name=\"attr Long\" value=\"1\"/>\n<attribute name=\"__name_attr_long\" value=\"attr_overridden\"/>\n</feature>\n
feature_d_attr_overridden: true\n

The full attribute name (including the feature namespacing) can be overridden by the value of the attribute __full_name_${attribute name}.

FeatureIDE Extended XMLYAML
<feature automatic=\"undefined\" manual=\"selected\" name=\"Feature E\">\n<attribute name=\"attr_another_string\" value=\"something else\"/>\n<attribute name=\"__full_name_attr_another_string\" value=\"fully_overridden\"/>\n</feature>\n
fully_overridden: something else\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/feature-ide/#example","title":"Example","text":"

The following example of a complete FeatureIDE Extended XML Configuration contains examples of the above introduced concepts.

FeatureIDE Extended XMLYAML
<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<extendedConfiguration>\n<feature automatic=\"selected\" manual=\"undefined\" name=\"Application\"/>\n<feature automatic=\"selected\" manual=\"selected\" name=\"Feature A\">\n<attribute name=\"attr_bool_true\" value=\"true\"/>\n<attribute name=\"attr_bool_false\" value=\"false\"/>\n<attribute name=\"attr LoNg\" value=\"3\"/>\n<attribute name=\"attr_double\" value=\"2.5\"/>\n<attribute name=\"attr_string\" value=\"hello world\"/>\n</feature>\n<feature automatic=\"undefined\" manual=\"undefined\" name=\"Feature B\"/>\n<feature automatic=\"undefined\" manual=\"selected\" name=\"Feature C\">\n<attribute name=\"__name\" value=\"feature_overridden\"/>\n</feature>\n<feature automatic=\"undefined\" manual=\"selected\" name=\"Feature D\">\n<attribute name=\"attr Long\" value=\"1\"/>\n<attribute name=\"__name_attr_long\" value=\"attr_overridden\"/>\n</feature>\n<feature automatic=\"undefined\" manual=\"selected\" name=\"Feature E\">\n<attribute name=\"__name\" value=\"feature_another_overridden\"/>\n<attribute name=\"attr_double\" value=\"1337\"/>\n<attribute name=\"attr_string\" value=\"something\"/>\n<attribute name=\"__name_attr_string\" value=\"attr_also_overridden\"/>\n<attribute name=\"attr_another_string\" value=\"something else\"/>\n<attribute name=\"__full_name_attr_another_string\" value=\"fully_overridden\"/>\n</feature>\n</extendedConfiguration>\n
application: true\nfeature_a: true\nfeature_a_attr_bool_true: true\nfeature_a_attr_bool_false: false\nfeature_a_attr_long: 3\nfeature_a_attr_double: 2.5\nfeature_a_attr_string: 'hello world'\nfeature_b: false\nfeature_overridden: true\nfeature_d: true\nfeature_d_attr_overridden: 1\nfeature_another_overridden: true\nfeature_another_overridden_attr_double: 1337\nfeature_another_overridden_attr_also_overridden: something\nfully_overridden: something else\n

To run the transformation using our reference implementation, run the following command.

vintner template inputs --path path/to/my-inputs.xml --output result.yaml\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/feature-ide/#reference-implementation","title":"Reference Implementation","text":"

We provide a reference implementation for this specification as part of OpenTOSCA Vintner. OpenTOSCA Vintner is a TOSCA preprocessing and management layer. The project is open-source, licensed under Apache-2.0, and publicly available at GitHub.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/feature-ide/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/feature-ide/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/feature-ide/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/testing/","title":"Testing","text":"","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/testing/#variability4tosca-testing-10-release-candidate","title":"Variability4TOSCA Testing 1.0 Release Candidate","text":"

This document specifies variability tests for the Variability4TOSCA specification to continuously test that the variability is resolved as expected, e.g., during continuous integration pipelines or before importing the CSAR. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/testing/#variability-tests","title":"Variability Tests","text":"

A CSAR might contain variability tests. Therefore, add the directory /tests in the root of the CSAR. Each test is defined inside its own directory of /tests and might contain the following files.

File Description expected.yaml The expected service template after resolving variability. inputs.yaml The variability inputs used for resolving variability. test.yaml The test configuration.

Here is an exemplary structure of a CSAR that has one variability test.

<CSAR Name>/\n\u251c\u2500 tests/\n\u2502  \u251c\u2500 <Test Name>/\n\u2502  \u2502  \u251c\u2500 expected.yaml\n\u2502  \u2502  \u251c\u2500 inputs.yaml\n\u2502  \u2502  \u251c\u2500 test.yaml\n\u251c\u2500 service-template.yaml\n

The following configurations can be configured in the test configuration file.

Keyname Mandatory Type Description name false String Display name of the test case (default is the directory name). description false String Description of the test case. presets false String | List(String) Variability presets to use when resolving variability. error false String The expected error that is thrown. template false String Path (relative to test.yaml) to the variable service template. expected false String Path (relative to test.yaml) to the expected service template after resolving variability. inputs false String Path (relative to test.yaml) to the variability inputs. replace false List(Tuple(Find: String, Replace: String)) An optional list of strings to search and replace for in the generated service template. merge false Object An optional object that is merged into the expected service template.

There are the following special cases considering test directory names.

  • Hidden Directories: Directories starting with . are ignored.
  • Isolating Tests: Append ---only to a test directory to run only this specific test.
  • Disabling Tests: Append ---disabled to a test directory to disable a specific test.
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/testing/#example","title":"Example","text":"

The following service template contains two conditional nodes. A variability inputs decides which node should be present.

/my-testing-csar/service-template.yaml
tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\noptions:\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: tosca.nodes.Root\nconditions: {equal: [{variability_input: mode}, one]}\nnode_two:\ntype: tosca.nodes.Root\nconditions: {equal: [{variability_input: mode}, two]}\n

We specify the following test in which we expect that only the first node is present after resolving variability.

/my-testing-csar/my-test/test.yaml
name: My Test\ndescriptions: | This tests is a simple example.\nWe expect the following: \n- First node is preserved\n- Second node is removed\n

The following inputs are used.

/my-testing-csar/my-test/inputs.yaml
mode: one\n

We expect the following service template.

/my-testing-csar/my-test/expected.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: tosca.nodes.Root\n

To execute the test using our reference implementation, run the following command.

vintner template test --path path/to/my-testing-csar/\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/testing/#reference-implementation","title":"Reference Implementation","text":"

We provide a reference implementation for this specification as part of OpenTOSCA Vintner. OpenTOSCA Vintner is a TOSCA preprocessing and management layer. The project is open-source, licensed under Apache-2.0, and publicly available at GitHub.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/testing/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/testing/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/testing/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/guides/artifacts/","title":"Conditional Deployment Artifacts and Conditional Properties","text":"

This document holds a detailed step-by-step guide to deploy the enterprise plan of a web shop application to showcase conditional deployment artifacts and conditional properties, as presented in Figure 1. The motivating scenario is a simple shopping application that consists of a shop component and a database. Thereby, we take the role of a SaaS provider which offers different pricing plans to his customers. Furthermore, there are two different deployment artifacts: the community deployment artifact and the enterprise deployment artifact. The community deployment artifact implements the core functionality of the shop component whereas the enterprise deployment artifact additionally implements analytical reporting functionalities.

There is a free community plan that deploys the community deployment artifact along with SQLite on a small virtual machine. In contrast, the business plan is a paid plan that deploys the enterprise deployment artifact which contains analytical reporting functionalities along with MySQL on Google Cloud Platform (GCP). However, to have full access to all analytical reporting functionalities, the enterprise plan is required. An important aspect of the deployment of the shop component is that the correct SQL dialect must be configured.

Figure 1: The different deployment variants.","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#requirements","title":"Requirements","text":"

We need to fulfill the following requirements to follow this step-by-step guide.

  • Ubuntu 22.04
  • Access to a GCP project
  • GCloud
  • Git
  • Unfurl
  • Terraform
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#preparation","title":"Preparation","text":"

First, we install OpenTOSCA Vintner. For more information see Installation.

curl -fsSL https://vintner.opentosca.org/install.sh | sudo bash -\n

Next, we configure Unfurl as the orchestrator that should be used for the deployment. For more information see Orchestrators.

vintner orchestrators init unfurl\nvintner orchestrators enable --orchestrator unfurl\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#import-the-template","title":"Import the Template","text":"Figure 2: The Variability4TOSCA template.

First, we clone the repository.

git clone https://github.com/OpenTOSCA/opentosca-vintner.git\ncd opentosca-vintner\ngit lfs install\ngit lfs pull\n./task install\n./task tasks:build\n./task examples:pull:link\n

Next, we import the template and initialize an instance.

vintner templates import --template artifacts --path examples/unfurl-artifacts\n

Next, we initialize an application instance.

vintner instances init --instance artifacts --template artifacts\n

We can optionally inspect the Variability4TOSCA template. This template contains all possible elements having conditions assigned. For example, the MySQL database has a condition assigned that checks if the enterprise deployment artifact is present. An overview is given in Figure 2.

vintner templates inspect --template artifacts\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#resolve-variability","title":"Resolve Variability","text":"Figure 3: The deployment variant.

We intend to deploy the enterprise plan. Furthermore, we want to configure the display language of the shop component to be German. We specify this when resolving variability.

vintner instances resolve --instance artifacts --presets enterprise\n

We can optionally inspect the generated TOSCA-compliant template. This template contains only the elements required for the enterprise plan. Notably, the enterprise deployment artifacts is present and configured to use the MySQL dialect. An overview is given in Figure 3.

vintner instances inspect --instance artifacts\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#deploy-the-application","title":"Deploy the Application","text":"

Finally, we deploy the application. Therefore, we need to provide deployment inputs, e.g., credentials to GCP. Possible deployment inputs are specified in topology_template.inputs of the TOSCA-compliant template. The deployment will take around 15-20 minutes.

vintner instances deploy --instance artifacts --inputs ${INPUTS_PATH}\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#undeploy-the-application","title":"Undeploy the Application","text":"

Afterward, we can undeploy the application.

vintner instances undeploy --instance artifacts\n

Optionally, we can remove the instance and cleanup the filesystem. Cleaning up the filesystem removes any data including, e.g., all imported templates and created instances.

vintner instances delete --instance pruning\nvintner setup clean --force\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#complexity-analysis","title":"Complexity Analysis","text":"

The templates for our complexity analysis can be found here.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#logs","title":"Logs","text":"

This deployment is also executed in our integration pipeline, which is executed once a week. The logs of the corresponding GitHub action can be accessed here. Relevant jobs start with \"Unfurl Artifacts\". Note, a GitHub account is required to access these logs. The raw logs are available without requiring an GitHub account.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#zenodo","title":"Zenodo","text":"

The assets of this guide can be also found on Zenodo.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#publication","title":"Publication","text":"

This guide is part of our research paper published at the main track of the CoopIS 2023. Also, this guide is further extended by our demonstration paper which was published at the demo track at the CoopIS 2023. Also check our other publications.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/aware/","title":"Hosting-Aware Pruning","text":"

This document holds the step-by-step guide to deploy the on-premise deployment variant of a webshop application to showcase the hosting-aware pruning. The webshop application can be deployed in the following deployment variants.

  • on-premise/ local: Kubernetes on a single virtual machine on a local OpenStack (OS) instance
  • cloud: Google Cloud Platform (GCP)
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#requirements","title":"Requirements","text":"

We need to fulfill the following requirements to follow this step-by-step guide.

  • Linux machine, e.g., Ubuntu 22.04
  • Access to an OpenStack instance
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#preparation","title":"Preparation","text":"

First, we install OpenTOSCA Vintner. For more information see Installation.

curl -fsSL https://vintner.opentosca.org/install.sh | sudo bash -\n

Next, we install Unfurl.

vintner install unfurl\n

Next, we configure Unfurl as the orchestrator that should be used for the deployment.

vintner orchestrators init unfurl\nvintner orchestrators enable --orchestrator unfurl\n

Next, we attest that Vintner can use unfurl.

vintner orchestrators attest --orchestrator unfurl\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#import-the-template","title":"Import the Template","text":"Figure 1: The Variability4TOSCA model.

Next, we import the Variability4TOSCA template.

vintner templates import --template aware --path examples/unfurl-aware\n

Then, we initialize an application instance.

vintner instances init --instance aware --template aware\n

We can optionally inspect the Variability4TOSCA model. This model contains all possible elements having conditions assigned. However, due to the hosting-aware pruning, only a handful of condition must be modeled. This is shown in Figure 1.

vintner templates inspect --template aware\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#resolve-variability","title":"Resolve Variability","text":"Figure 2: The derived TOSCA model.

We want to deploy the on-premise variant of the webshop application on Kubernetes using OpenStack. We specify this when resolving variability as follows.

vintner instances resolve --instance aware --presets local\n

You can optionally inspect the generated TOSCA-compliant model. This template contains only the elements required for the on-premise variant, e.g., Kubernetes. This is shown in Figure 2.

vintner instances inspect --instance aware\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#deploy-the-application","title":"Deploy the Application","text":"

Finally, we can deploy the application. Therefore, we need to provide deployment inputs, e.g., credentials to OpenStack. These inputs are specified in topology_template.inputs of the TOSCA-compliant model. The following inputs must be defined.

os_compute_network: <OS_COMPUTE_NETWORK>\nos_compute_key_name: <OS_COMPUTE_KEY_NAME>\nos_compute_ssh_user: <OS_COMPUTE_SSH_USER>\nos_compute_ssh_key_file: <OS_COMPUTE_SSH_KEY_FILE>\nos_region_name: <OS_REGION_NAME>\nos_auth_type: <OS_AUTH_TYPE>\nos_auth_url: <OS_AUTH_URL>\nos_identity_api_version: <OS_IDENTITY_API_VERSION>\nos_interface: <OS_INTERFACE>\nos_application_credential_id: <OS_APPLICATION_CREDENTIAL_ID>\nos_application_credential_secret: <OS_APPLICATION_CREDENTIAL_SECRET>\n# Also required. Just fill them with dummy values.\ndatabase_password: <DATABASE_PASSWORD>\ngcp_region: <GCP_REGION>\ngcp_service_account_file: <GCP_SERVICE_ACCOUNT_FILE>\ngcp_project: <GCP_PROJECT>\ngcp_auto_scaling: <GCP_AUTO_SCALING>\n

Next, we start the deployment. The deployment will take around 5-10 minutes.

vintner instances deploy --instance aware --inputs ${INPUTS_PATH}\n

Do not abort the deployment manually. Not even in case of errors. Once the deployment command exits, the deployment can be retried as follows.

vintner instances continue --instance aware\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#test-the-application","title":"Test the Application","text":"

Next, we can test that the application is correctly working. Therefore, find out the hostname of the provisioned virtual machine.

curl --fail-with-body http://${HOSTNAME_OF_VM}\n

If no hostname has been assigned, then use the IPv4 address.

curl --fail-with-body http://[${IPv4_ADDRESS_OF_VM}]\n

This should return the following.

{\n\"MESSAGE\": \"Successfully executed query\",\n\"QUERY\": \"SELECT 1 + 1;\",\n\"DB_DIALECT\": \"mysql\",\n\"DB_NAME\": \"shop\",\n\"DB_ADDRESS\": \"mysql\",\n\"DB_USERNAME\": \"root\",\n\"DB_PASSWORD\": \"5e88\"\n}\n

We can observe the following.

  • according to MESSAGE, the query has been successful
  • according to DB_ADDRESS, the MySQL instance running in Kubernetes has been used

Thus, we conclude that the application has been deployed as desired.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#undeploy-the-application","title":"Undeploy the Application","text":"

Afterward, we can undeploy the application.

vintner instances undeploy --instance aware\n

We can also optionally remove the instance or cleanup the filesystem. Note, cleaning up the filesystem removes any vintner data including, e.g., all imported templates and created instances.

vintner instances delete --instance aware\nvintner setup clean --force\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#logs","title":"Logs","text":"

This deployment is also executed in our integration pipeline, which is executed once a week. The logs of the corresponding GitHub action can be accessed here. Relevant jobs start with \"Unfurl Aware\". Note, a GitHub account is required to access these logs. The raw logs are available without requiring an GitHub account.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#zenodo","title":"Zenodo","text":"

The assets of this guide can be also found on Zenodo.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#publication","title":"Publication","text":"

This guide is part of our paper published at the CLOSER 2024. Also check our other publications.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/modes/","title":"Pruning Modes","text":"

This document holds a detailed step-by-step guide to deploy the medium-sized static deployment variant of a webshop application to showcase the Consistent-Loose Pruning Mode. The webshop application can be deployed in the following deployment variants.

  • static with medium resources on a single virtual machine on a local OpenStack (OS) instance
  • static with large resources on a single virtual machine on a local OpenStack (OS) instance
  • elastic with high availability and backups on Google Cloud Platform (GCP)
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#requirements","title":"Requirements","text":"

We need to fulfill the following requirements to follow this step-by-step guide.

  • Linux machine, e.g., Ubuntu 22.04
  • Access to an OpenStack instance
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#preparation","title":"Preparation","text":"

First, we install OpenTOSCA Vintner. For more information see Installation.

curl -fsSL https://vintner.opentosca.org/install.sh | sudo bash -\n

Next, install xOpera.

vintner setup install --xopera\n

Next, we configure xOpera as the orchestrator that should be used for the deployment.

vintner orchestrators init xopera --no-venv\nvintner orchestrators enable --orchestrator xopera\nvintner orchestrators attest --orchestrator xopera\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#import-the-template","title":"Import the Template","text":"Figure 1: The Variability4TOSCA model of our webshop.

First, we import the Variability4TOSCA template.

vintner templates import --template pruning-mode --path examples/xopera-pruning-consistent-loose\n

Then, we initialize an application instance.

vintner instances init --instance pruning-mode --template pruning-mode\n

We can optionally inspect the Variability4TOSCA model. This model contains all possible elements having conditions assigned. However, due to pruning, only a handful of condition must be modeled, e.g., the condition checking if a medium or large virtual machine is required. This is shown in Figure 1.

vintner templates inspect --template pruning-mode\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#resolve-variability","title":"Resolve Variability","text":"Figure 2: The medium-sized static deployment variant of the webshop.

We want to deploy the medium-sized static variant of the webshop application using GCP. We specify this when resolving variability as follows.

vintner instances resolve --instance pruning-mode --presets static\n

You can optionally inspect the generated TOSCA-compliant model. This template contains only the elements required for the elastic variant, e.g., the MySQL database. This is shown in Figure 2.

vintner instances inspect --instance pruning-mode\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#deploy-the-application","title":"Deploy the Application","text":"

Finally, we can deploy the elastic variant. Therefore, we need to provide deployment inputs, e.g., credentials to OpenStack. These inputs are specified in topology_template.inputs of the TOSCA-compliant model. The following inputs must be defined.

os_compute_network: <OS_COMPUTE_NETWORK>\nos_compute_security_groups: <OS_COMPUTE_SECURITY_GROUPS>\nos_compute_key_name: <OS_COMPUTE_KEY_NAME>\nos_compute_ssh_user: <OS_COMPUTE_SSH_USER>\nos_compute_ssh_key_file: <OS_COMPUTE_SSH_KEY_FILE>\nos_region_name: <OS_REGION_NAME>\nos_auth_type: <OS_AUTH_TYPE>\nos_auth_url: <OS_AUTH_URL>\nos_identity_api_version: <OS_IDENTITY_API_VERSION>\nos_interface: <OS_INTERFACE>\nos_application_credential_id: <OS_APPLICATION_CREDENTIAL_ID>\nos_application_credential_secret: <OS_APPLICATION_CREDENTIAL_SECRET>\n# Also required. Just fill them with dummy values.\ndatabase_password: <DATABASE_PASSWORD>\ngcp_region: <GCP_REGION>\ngcp_service_account_file: <GCP_SERVICE_ACCOUNT_FILE>\ngcp_project: <GCP_PROJECT>\ngcp_auto_scaling: <GCP_AUTO_SCALING>\n

Next, start the deployment. The deployment will take around 5 minutes.

vintner instances deploy --instance pruning-mode --inputs ${INPUTS_PATH}\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#test-the-application","title":"Test the Application","text":"

Next, we can test that the application is correctly working. Therefore, find out the hostname of the provisioned virtual machine.

curl --fail-with-body http://${HOSTNAME_OF_VM}:3000\n

If no hostname has been assigned, then use the IPv4 address.

curl --fail-with-body http://[${IPv4_ADDRESS_OF_VM}]:3000\n

This should return the following.

{\n\"MESSAGE\": \"Successfully executed query\",\n\"QUERY\": \"SELECT 1 + 1;\",\n\"DB_DIALECT\": \"sqlite\",\n\"DB_NAME\": \"shop\",\n\"DB_ADDRESS\": \"/var/lib/sqlite-databases/shop.db\",\n\"DB_USERNAME\": \"root\",\n\"DB_PASSWORD\": \"5e88\"\n}\n

We can observe the following.

  • according to MESSAGE, the query has been successful
  • according to DB_DIALECT, the SQLite has been used as dialect
  • according to DB_ADDRESS, a local SQLite database has been used

Thus, we conclude that the application has been deployed as desired.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#undeploy-the-application","title":"Undeploy the Application","text":"

Afterward, we can undeploy the application.

vintner instances undeploy --instance pruning-mode\n

We can also optionally remove the instance or cleanup the filesystem. Note, cleaning up the filesystem removes any vintner data including, e.g., all imported templates and created instances.

vintner instances delete --instance pruning-mode\nvintner setup clean --force\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#logs","title":"Logs","text":"

This deployment is also executed in our integration pipeline, which is executed once a week. The logs of the corresponding GitHub action can be accessed here. Relevant jobs start with \"xOpera Pruning Mode\". Note, a GitHub account is required to access these logs. The raw logs are available without requiring an GitHub account.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#zenodo","title":"Zenodo","text":"

The assets of this guide can be also found on Zenodo.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#publication","title":"Publication","text":"

This guide is part of our paper published at the CLOSER 2024. Also check our other publications.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/pipes-and-filters/","title":"Pipes and Filters Application","text":"

Warning

This document presents experimental features and is still in an early stage.

In the following, we provide a detailed step-by-step guide to deploy the Raspberry Pi variant of the pipes-and-filters application to showcase conditional deployment artifacts and properties. The application can be either installed on a Raspberry Pi or on a virtual machine. Based on the underlying host, either an arm64 or x64 binary must be used. The application is also differently configured due to the different availability of RAM.

Figure 1: Deployment Variant using Raspberry Pi

Figure 2: Deployment Variant using Virtual Machine","tags":["Variability4TOSCA","Guide","xOpera","Experimental"]},{"location":"variability4tosca/guides/pipes-and-filters/#environment","title":"Environment","text":"

We expect that the xOpera CLI is installed on a Linux machine and that a Raspberry Pi 3 Model B+ is available.

","tags":["Variability4TOSCA","Guide","xOpera","Experimental"]},{"location":"variability4tosca/guides/pipes-and-filters/#preparation","title":"Preparation","text":"

First, we install OpenTOSCA Vintner. For more information see Installation.

curl -fsSL https://vintner.opentosca.org/install.sh | sudo bash -\n

Next, we need to configure xOpera as the orchestrator that should be used for the deployment. For more information see Orchestrators.

vintner orchestrators init xopera\nvintner orchestrators enable --orchestrator xopera\n
","tags":["Variability4TOSCA","Guide","xOpera","Experimental"]},{"location":"variability4tosca/guides/pipes-and-filters/#deployment","title":"Deployment","text":"

Deploy the Raspberry Pi variant of the pipes-and-filters application. Therefore, import the template, create an instance, resolve the variability and finally deploy the application.

# Add variable service template\nvintner templates import --template pipes-and-filters --path examples/xopera-pipes-and-filters\n\n# Add instance\nvintner instances init --instance pipes-and-filters --template pipes-and-filters\n\n# Resolve variability\nvintner instances resolve --instance pipes-and-filters --presets raspberry\n\n# (optional) Inspect service template\nvintner instances inspect --instance pipes-and-filters\n\n# Deploy instance\nvintner instances deploy --instance pipes-and-filters --inputs ${INPUTS_PATH}\n
","tags":["Variability4TOSCA","Guide","xOpera","Experimental"]},{"location":"variability4tosca/guides/pipes-and-filters/#undeployment","title":"Undeployment","text":"

Cleanup the deployment. Therefore, undeploy the instance and cleanup the filesystem.

# Undeploy instance\nvintner instances undeploy --instance pipes-and-filters\n\n# Cleanup\nvintner setup clean --force\n
","tags":["Variability4TOSCA","Guide","xOpera","Experimental"]},{"location":"variability4tosca/guides/pruning/","title":"Pruning Elements","text":"Figure 1: The different deployment variants.

This document holds a detailed step-by-step guide to deploy the elastic deployment variant of a web shop application to showcase the reduced modeling effort when pruning elements. The application can be deployed in the following deployment variants, see Figure 1.

  • static with medium resources on a single virtual machine on a local OpenStack (OS) instance
  • static with large resources on a single virtual machine on a local OpenStack (OS) instance
  • elastic with high availability and backups on Google Cloud Platform (GCP)
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#requirements","title":"Requirements","text":"

We need to fulfill the following requirements to follow this step-by-step guide.

  • Ubuntu 22.04
  • Access to a GCP project
  • GCloud
  • Git
  • xOpera
  • Ansible
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#preparation","title":"Preparation","text":"

First, we install OpenTOSCA Vintner. For more information see Installation.

curl -fsSL https://vintner.opentosca.org/install.sh | sudo bash -\n

Next, we configure xOpera as the orchestrator that should be used for the deployment. For more information see Orchestrators.

vintner orchestrators init xopera\nvintner orchestrators enable --orchestrator xopera\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#import-the-template","title":"Import the Template","text":"Figure 2: The Variability4TOSCA template.

First, we clone the repository.

git clone https://github.com/OpenTOSCA/opentosca-vintner.git\ncd opentosca-vintner\ngit lfs install\ngit lfs pull\n./task install\n./task tasks:build\n./task examples:pull:link\n

Next, we import the Variability4TOSCA template.

vintner templates import --template pruning --path examples/xopera-pruning\n

Next, we initialize an application instance.

vintner instances init --instance pruning --template pruning\n

We can optionally inspect the Variability4TOSCA template. This template contains all possible elements having conditions assigned. However, due to pruning, only a handful of condition must be modeled, e.g., the condition checking if a medium or large virtual machine is required. An overview is given in Figure 2.

vintner templates inspect --template pruning\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#resolve-variability","title":"Resolve Variability","text":"Figure 3: The deployment variant.

We intend to deploy the elastic variant. We specify this when resolving variability.

vintner instances resolve --instance pruning --presets elastic\n

We can optionally inspect the generated TOSCA-compliant template. This template contains only the elements required for the elastic variant, e.g., the MySQL database. An overview is given in Figure 3.

vintner instances inspect --instance pruning\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#deploy-the-application","title":"Deploy the Application","text":"

Finally, we deploy the application. Therefore, we need to provide deployment inputs, e.g., credentials to GCP. Possible deployment inputs are specified in topology_template.inputs of the TOSCA-compliant template. The deployment will take around 15-20 minutes.

vintner instances deploy --instance pruning --inputs ${INPUTS_PATH}\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#undeploy-the-application","title":"Undeploy the Application","text":"

Afterward, we undeploy the application.

vintner instances undeploy --instance pruning\n

Optionally, we can remove the instance and cleanup the filesystem. Cleaning up the filesystem removes any data including, e.g., all imported templates and created instances.

vintner instances delete --instance pruning\nvintner setup clean --force\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#complexity-analysis","title":"Complexity Analysis","text":"

The templates for our complexity analysis can be found here.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#logs","title":"Logs","text":"

This deployment is also executed in our integration pipeline, which is executed once a week. The logs of the corresponding GitHub action can be accessed here. Relevant jobs start with \"Unfurl Artifacts\". Note, a GitHub account is required to access these logs. The raw logs are available without requiring an GitHub account.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#zenodo","title":"Zenodo","text":"

The assets of this guide can be also found on Zenodo.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#publication","title":"Publication","text":"

This guide is part of our paper published at the UCC 2023. Also check our other publications.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/motivation/","title":"Motivation","text":"Figure 1: The different deployment variants.

This document holds a detailed step-by-step guide to deploy the development variant of the motivating scenario. The motivating scenario is a simple composite application that consists of a web component and a database, as presented in Figure 1.

This application can be deployed in different variants. During development the application should be deployed on a single virtual machine. However, for the productive operation, an elastic deployment is required and, therefore, the application is deployed on Google Cloud Platform (GCP).

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/motivation/#requirements","title":"Requirements","text":"

We need to fulfill the following requirements to follow this step-by-step guide.

  • Access to an OpenStack instance
  • Ubuntu 22.04
  • Git
  • xOpera
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/motivation/#preparation","title":"Preparation","text":"

First, we install OpenTOSCA Vintner. For more information see Installation.

curl -fsSL https://vintner.opentosca.org/install.sh | sudo bash -\n

Next, we configure xOpera as the orchestrator that should be used for the deployment. For more information see Orchestrators.

vintner orchestrators init xopera\nvintner orchestrators enable --orchestrator xopera\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/motivation/#import-the-template","title":"Import the Template","text":"Figure 2: The Variability4TOSCA template.

First, we clone the repository.

git clone https://github.com/OpenTOSCA/opentosca-vintner.git\ncd opentosca-vintner\ngit lfs install\ngit lfs pull\n./task install\n./task tasks:build\n./task examples:pull:link\n

Next, we import the Variability4TOSCA template.

vintner templates import --template motivation --path examples/motivation\n

Next, we initialize an application instance.

vintner instances init --instance motivation --template motivation\n

We can optionally inspect the Variability4TOSCA template. This template contains all possible elements having conditions assigned. For example, the virtual machine hosted on OpenStack has a condition assigned that checks if the development variant has been chosen. An overview is given in Figure 2.

vintner templates inspect --template motivation\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/motivation/#resolve-variability","title":"Resolve Variability","text":"Figure 3: The deployment variant.

We intend to deploy the development variant. Therefore, we need to resolve the variability by providing respective variability inputs. In our case, we use already predefined variability inputs by using a variability preset.

vintner instances resolve --instance motivation --presets dev\n

We can optionally inspect the generated TOSCA-compliant template. This template contains only the nodes required for the development variant. An overview is given in Figure 3.

vintner instances inspect --instance motivation\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/motivation/#deployment","title":"Deployment","text":"

Finally, we deploy the application. Therefore, we need to provide deployment inputs which contain, e.g., credentials to OpenStack. Possible deployment inputs are specified in topology_template.inputs of the TOSCA-compliant template. The deployment will take some minutes.

vintner instances deploy --instance motivation --inputs ${INPUTS_PATH}\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/motivation/#undeployment","title":"Undeployment","text":"

Afterward, we can undeploy the application.

vintner instances undeploy --instance motivation\n

Optionally, we can remove the instance and cleanup the filesystem. Cleaning up the filesystem removes any data including, e.g., all imported templates and created instances.

vintner instances delete --instance pruning\nvintner setup clean --force\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/motivation/#logs","title":"Logs","text":"

This deployment is also executed in our integration pipeline, which is executed once a week. The logs of the corresponding GitHub action can be accessed here. Relevant jobs start with \"Unfurl Motivation\" and \"xOpera Motivation\". Note, a GitHub account is required to access these logs. The raw logs are available without requiring an GitHub account.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/motivation/#zenodo","title":"Zenodo","text":"

The assets of this guide can be also found on Zenodo.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/motivation/#publication","title":"Publication","text":"

This guide is part of our paper published at the Algorithms 2022. Also check our other publications.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/rules/","title":"Technology Rules","text":"","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#deployment-technology-rules-specification-10-release-candidate","title":"Deployment Technology Rules Specification 1.0 Release Candidate","text":"

Quick Tip #1

Elements in graphs can be clicked to open their type definition!

Quick Tip #2

You can query technology rules for your deployment scenario using vintner utils scenarios!

This document specifies the deployment technology rules. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#deployment-technologies","title":"Deployment Technologies","text":"

Technology rules are defined in the context of the following deployment technologies.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#ansible","title":"Ansible","text":"

Ansible is an automation tool primarily used for configuration management, application deployment, and task automation. It allows system administrators and DevOps teams to manage software on servers using SSH, without the need for agents on target nodes. Ansible uses simple, human-readable YAML files called playbooks to define tasks and configurations, enabling consistent management of IT environments across multiple servers. Find out more.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#terraform","title":"Terraform","text":"

Terraform is an infrastructure as code (IaC) tool that allows users to define, provision, and manage cloud infrastructure in a consistent, automated, and reproducible way. Using a declarative configuration language called HashiCorp Configuration Language (HCL), Terraform enables users to define infrastructure components such as virtual machines, networks, and storage in human-readable configuration files. It supports a wide range of cloud providers, including AWS, Azure, Google Cloud, and many others, allowing for seamless multi-cloud management. By applying these configurations, Terraform creates and manages the defined resources through APIs. Find out more.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#kubernetes","title":"Kubernetes","text":"

Kubernetes is a system for automating the deployment, scaling, and management of containerized applications, offering production-grade container orchestration. It provides a platform for running and managing applications in clusters of servers, ensuring high availability, scalability, and efficient resource utilization. Kubernetes allows users to define the desired state of their applications using declarative manifests, which specify the configuration, deployment, and management of containerized workloads. By continuously monitoring and adjusting the cluster to match these desired states, Kubernetes simplifies the application deployment process, supports automated rollouts and rollbacks, and ensures the self-healing of applications. Find out more.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#docker-compose","title":"Docker Compose","text":"

Docker Compose is a tool that enables the definition and running of multi-container applications on a Docker Engine, using a single YAML configuration file. It allows the management of services, networks, and volumes, in a declarative manner. Compose is particularly suited for single-host deployments, providing a consistent environment across various stages of the application lifecycle. However, it is limited to working within the Docker ecosystem. Find out more.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#derivation-rules","title":"Derivation Rules","text":"

We use the following derivation rules to assess deployment qualities.

  1. (Critical) Custom module vs battle-proven module
  2. (Critical) Imperative vs declarative technology
  3. (Critical) Imperative flow of declarative tasks vs pure declarative tasks (e.g., Ansible Playbook Tasks vs Terraform Module)
  4. Generic vs specialized/ native technology, e.g., Ansible vs Docker to start docker container (up to date modules, bug fixes ...)
  5. Depth of technology toolchain
  6. Number of workarounds
  7. Number of tasks/ resources/ artifacts/ manifests to be defined
  8. Length of the template
  9. Usage of deprecated or not recommended features
  10. More specialized node type, e.g., software.application vs service.application.
","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-dockerengine","title":"Component \"docker.engine\"","text":"

The following scenarios deploy a node template of node type docker.engine with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type docker.engine is deployed. The node template is hosted on the node template \"host 1\" of node type local.machine.

component(docker.engine)host 1(local.machine)host

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-2","title":"Scenario #2","text":"

In this scenario, the node template \"component\" of node type docker.engine is deployed. The node template is hosted on the node template \"host 1\" of node type remote.machine.

component(docker.engine)host 1(remote.machine)host

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-gcpservice","title":"Component \"gcp.service\"","text":"

The following scenarios deploy a node template of node type gcp.service with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1_1","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type gcp.service is deployed. The scenario does not require a specific hosting.

component(gcp.service)

Ansible (Quality: 1)

Ansible provides a declarative module

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-ingress","title":"Component \"ingress\"","text":"

The following scenarios deploy a node template of node type ingress with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1_2","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type ingress is deployed. The node template is hosted on the node template \"host 1\" of node type kubernetes.cluster.

component(ingress)host 1(kubernetes.cluster)host

Ansible (Quality: 0.5)

Kubernetes is more specialized.

Kubernetes (Quality: 1)

Kubernetes is the underlying technology.

Terraform (Quality: 0.5)

Kubernetes is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-2_1","title":"Scenario #2","text":"

In this scenario, the node template \"component\" of node type ingress is deployed. The node template is hosted on the node template \"host 1\" of node type local.machine.

component(ingress)host 1(local.machine)host

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-3","title":"Scenario #3","text":"

In this scenario, the node template \"component\" of node type ingress is deployed. The node template is hosted on the node template \"host 1\" of node type remote.machine.

component(ingress)host 1(remote.machine)host

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-mysqldatabase","title":"Component \"mysql.database\"","text":"

The following scenarios deploy a node template of node type mysql.database with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1_3","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type mysql.database is deployed. The node template is hosted on the node template \"host 1\" of node type mysql.dbms, which is hosted on the node template \"host 2\" of node type docker.engine, which is hosted on the node template \"host 3\" of node type local.machine.

component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(local.machine)hosthosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Docker Compose (Quality: 0)

One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-2_2","title":"Scenario #2","text":"

In this scenario, the node template \"component\" of node type mysql.database is deployed. The node template is hosted on the node template \"host 1\" of node type mysql.dbms, which is hosted on the node template \"host 2\" of node type docker.engine, which is hosted on the node template \"host 3\" of node type remote.machine.

component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(remote.machine)hosthosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Docker Compose (Quality: 0)

One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules.

Terraform (Quality: 0.5)

Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-3_1","title":"Scenario #3","text":"

In this scenario, the node template \"component\" of node type mysql.database is deployed. The node template is hosted on the node template \"host 1\" of node type mysql.dbms, which is hosted on the node template \"host 2\" of node type gcp.cloudsql.

component(mysql.database)host 1(mysql.dbms)host 2(gcp.cloudsql)hosthost

Ansible (Quality: 0.5)

Primary use case due to the specialization of Ansible. However, need to install and handle GCP CloudSQL Proxy, while the corresponding Terraform module already provides this.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-4","title":"Scenario #4","text":"

In this scenario, the node template \"component\" of node type mysql.database is deployed. The node template is hosted on the node template \"host 1\" of node type mysql.dbms, which is hosted on the node template \"host 2\" of node type kubernetes.cluster.

component(mysql.database)host 1(mysql.dbms)host 2(kubernetes.cluster)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Kubernetes (Quality: 0)

Kubernetes Job with imperative parts, while declarative other technologies provide declarative modules.

Terraform (Quality: 0)

Ansible is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-5","title":"Scenario #5","text":"

In this scenario, the node template \"component\" of node type mysql.database is deployed. The node template is hosted on the node template \"host 1\" of node type mysql.dbms, which is hosted on the node template \"host 2\" of node type local.machine.

component(mysql.database)host 1(mysql.dbms)host 2(local.machine)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-6","title":"Scenario #6","text":"

In this scenario, the node template \"component\" of node type mysql.database is deployed. The node template is hosted on the node template \"host 1\" of node type mysql.dbms, which is hosted on the node template \"host 2\" of node type remote.machine.

component(mysql.database)host 1(mysql.dbms)host 2(remote.machine)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 0.5)

Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-mysqldbms","title":"Component \"mysql.dbms\"","text":"

The following scenarios deploy a node template of node type mysql.dbms with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1_4","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type mysql.dbms is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type dbms.image. The node template is hosted on the node template \"host 1\" of node type docker.engine, which is hosted on the node template \"host 2\" of node type local.machine.

component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(local.machine)hosthost

Ansible (Quality: 0.5)

Docker Compose is more specialized

Docker Compose (Quality: 1)

Docker is the underlying technology.

Terraform (Quality: 0.5)

Docker Compose is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-2_3","title":"Scenario #2","text":"

In this scenario, the node template \"component\" of node type mysql.dbms is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type dbms.image. The node template is hosted on the node template \"host 1\" of node type docker.engine, which is hosted on the node template \"host 2\" of node type remote.machine.

component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(remote.machine)hosthost

Ansible (Quality: 0.5)

Docker Compose is more specialized

Docker Compose (Quality: 1)

Docker is the underlying technology.

Terraform (Quality: 0.5)

Docker Compose is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-3_2","title":"Scenario #3","text":"

In this scenario, the node template \"component\" of node type mysql.dbms is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type dbms.image. The node template is hosted on the node template \"host 1\" of node type gcp.cloudsql.

component(mysql.dbms)artifact(dbms.image)host 1(gcp.cloudsql)host

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-4_1","title":"Scenario #4","text":"

In this scenario, the node template \"component\" of node type mysql.dbms is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type dbms.image. The node template is hosted on the node template \"host 1\" of node type kubernetes.cluster.

component(mysql.dbms)artifact(dbms.image)host 1(kubernetes.cluster)host

Ansible (Quality: 0.5)

Kubernetes is more specialized.

Kubernetes (Quality: 1)

Kubernetes is the underlying technology.

Terraform (Quality: 0.5)

Kubernetes is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-5_1","title":"Scenario #5","text":"

In this scenario, the node template \"component\" of node type mysql.dbms is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type dbms.image. The node template is hosted on the node template \"host 1\" of node type local.machine.

component(mysql.dbms)artifact(dbms.image)host 1(local.machine)host

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-6_1","title":"Scenario #6","text":"

In this scenario, the node template \"component\" of node type mysql.dbms is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type dbms.image. The node template is hosted on the node template \"host 1\" of node type remote.machine.

component(mysql.dbms)artifact(dbms.image)host 1(remote.machine)host

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-objectstorage","title":"Component \"object.storage\"","text":"

The following scenarios deploy a node template of node type object.storage with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1_5","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type object.storage is deployed. The node template is hosted on the node template \"host 1\" of node type gcp.cloudstorage.

component(object.storage)host 1(gcp.cloudstorage)host

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-2_4","title":"Scenario #2","text":"

In this scenario, the node template \"component\" of node type object.storage is deployed. The node template is hosted on the node template \"host 1\" of node type minio.server, which is hosted on the node template \"host 2\" of node type docker.engine, which is hosted on the node template \"host 3\" of node type local.machine.

component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(local.machine)hosthosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Docker Compose (Quality: 0)

One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-3_3","title":"Scenario #3","text":"

In this scenario, the node template \"component\" of node type object.storage is deployed. The node template is hosted on the node template \"host 1\" of node type minio.server, which is hosted on the node template \"host 2\" of node type docker.engine, which is hosted on the node template \"host 3\" of node type remote.machine.

component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(remote.machine)hosthosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Docker Compose (Quality: 0)

One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules.

Terraform (Quality: 0.5)

Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-4_2","title":"Scenario #4","text":"

In this scenario, the node template \"component\" of node type object.storage is deployed. The node template is hosted on the node template \"host 1\" of node type minio.server, which is hosted on the node template \"host 2\" of node type kubernetes.cluster.

component(object.storage)host 1(minio.server)host 2(kubernetes.cluster)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Kubernetes (Quality: 0)

Kubernetes Job with imperative parts, while declarative other technologies provide declarative modules.

Terraform (Quality: 0)

Ansible is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-redisserver","title":"Component \"redis.server\"","text":"

The following scenarios deploy a node template of node type redis.server with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1_6","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type redis.server is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type cache.image. The node template is hosted on the node template \"host 1\" of node type docker.engine, which is hosted on the node template \"host 2\" of node type local.machine.

component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(local.machine)hosthost

Ansible (Quality: 0.5)

Docker Compose is more specialized.

Docker Compose (Quality: 1)

Docker is the underlying technology.

Terraform (Quality: 0.5)

Docker Compose is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-2_5","title":"Scenario #2","text":"

In this scenario, the node template \"component\" of node type redis.server is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type cache.image. The node template is hosted on the node template \"host 1\" of node type docker.engine, which is hosted on the node template \"host 2\" of node type remote.machine.

component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(remote.machine)hosthost

Ansible (Quality: 0.5)

Docker Compose is more specialized.

Docker Compose (Quality: 1)

Docker is the underlying technology.

Terraform (Quality: 0.5)

Docker Compose is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-3_4","title":"Scenario #3","text":"

In this scenario, the node template \"component\" of node type redis.server is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type cache.image. The node template is hosted on the node template \"host 1\" of node type gcp.memorystore.

component(redis.server)artifact(cache.image)host 1(gcp.memorystore)host

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-4_3","title":"Scenario #4","text":"

In this scenario, the node template \"component\" of node type redis.server is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type cache.image. The node template is hosted on the node template \"host 1\" of node type kubernetes.cluster.

component(redis.server)artifact(cache.image)host 1(kubernetes.cluster)host

Ansible (Quality: 0.5)

Kubernetes is more specialized.

Kubernetes (Quality: 1)

Kubernetes is the underlying technology.

Terraform (Quality: 0.5)

Kubernetes is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-serviceapplication","title":"Component \"service.application\"","text":"

The following scenarios deploy a node template of node type service.application with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1_7","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type service.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type docker.image. The node template is hosted on the node template \"host 1\" of node type docker.engine, which is hosted on the node template \"host 2\" of node type local.machine.

component(service.application)artifact(docker.image)host 1(docker.engine)host 2(local.machine)hosthost

Ansible (Quality: 0.5)

Docker Compose is more specialized.

Docker Compose (Quality: 1)

Docker is the underlying technology.

Terraform (Quality: 0.5)

Docker Compose is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-2_6","title":"Scenario #2","text":"

In this scenario, the node template \"component\" of node type service.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type docker.image. The node template is hosted on the node template \"host 1\" of node type docker.engine, which is hosted on the node template \"host 2\" of node type remote.machine.

component(service.application)artifact(docker.image)host 1(docker.engine)host 2(remote.machine)hosthost

Ansible (Quality: 0.5)

Docker Compose is more specialized.

Docker Compose (Quality: 1)

Docker is the underlying technology.

Terraform (Quality: 0.5)

Docker Compose is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-3_5","title":"Scenario #3","text":"

In this scenario, the node template \"component\" of node type service.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type docker.image. The node template is hosted on the node template \"host 1\" of node type gcp.cloudrun.

component(service.application)artifact(docker.image)host 1(gcp.cloudrun)host

Ansible (Quality: 0)

Custom module with imperative parts, while Terraform provides a declarative module.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-4_4","title":"Scenario #4","text":"

In this scenario, the node template \"component\" of node type service.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type docker.image. The node template is hosted on the node template \"host 1\" of node type kubernetes.cluster.

component(service.application)artifact(docker.image)host 1(kubernetes.cluster)host

Ansible (Quality: 0.5)

Kubernetes is more specialized.

Kubernetes (Quality: 1)

Kubernetes is the underlying technology.

Terraform (Quality: 0.5)

Kubernetes is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-5_2","title":"Scenario #5","text":"

In this scenario, the node template \"component\" of node type service.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type tar.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type local.machine.

component(service.application)artifact(tar.archive)...host 2(local.machine)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible. Special integration for systemd.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-6_2","title":"Scenario #6","text":"

In this scenario, the node template \"component\" of node type service.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type tar.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type remote.machine.

component(service.application)artifact(tar.archive)...host 2(remote.machine)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible. Special integration for systemd.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-7","title":"Scenario #7","text":"

In this scenario, the node template \"component\" of node type service.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type zip.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type local.machine.

component(service.application)artifact(zip.archive)...host 2(local.machine)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible. Special integration for systemd.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-8","title":"Scenario #8","text":"

In this scenario, the node template \"component\" of node type service.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type zip.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type remote.machine.

component(service.application)artifact(zip.archive)...host 2(remote.machine)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible. Special integration for systemd.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-9","title":"Scenario #9","text":"

In this scenario, the node template \"component\" of node type service.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type zip.archive. The node template is hosted on the node template \"host 1\" of node type gcp.appengine.

component(service.application)artifact(zip.archive)host 1(gcp.appengine)host

Ansible (Quality: 0)

Custom module with imperative parts, while Terraform provides a declarative module.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-softwareapplication","title":"Component \"software.application\"","text":"

The following scenarios deploy a node template of node type software.application with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1_8","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type software.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type apt.package. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type local.machine.

component(software.application)artifact(apt.package)...host 2(local.machine)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-2_7","title":"Scenario #2","text":"

In this scenario, the node template \"component\" of node type software.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type apt.package. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type remote.machine.

component(software.application)artifact(apt.package)...host 2(remote.machine)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-3_6","title":"Scenario #3","text":"

In this scenario, the node template \"component\" of node type software.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type tar.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type local.machine.

component(software.application)artifact(tar.archive)...host 2(local.machine)hosthost

Ansible (Quality: 0.5)

While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-4_5","title":"Scenario #4","text":"

In this scenario, the node template \"component\" of node type software.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type tar.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type remote.machine.

component(software.application)artifact(tar.archive)...host 2(remote.machine)hosthost

Ansible (Quality: 0.5)

While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., \"service.application\".

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-5_3","title":"Scenario #5","text":"

In this scenario, the node template \"component\" of node type software.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type zip.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type local.machine.

component(software.application)artifact(zip.archive)...host 2(local.machine)hosthost

Ansible (Quality: 0.5)

While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-6_3","title":"Scenario #6","text":"

In this scenario, the node template \"component\" of node type software.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type zip.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type remote.machine.

component(software.application)artifact(zip.archive)...host 2(remote.machine)hosthost

Ansible (Quality: 0.5)

While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-virtualmachine","title":"Component \"virtual.machine\"","text":"

The following scenarios deploy a node template of node type virtual.machine with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1_9","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type virtual.machine is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type machine.image. The node template is hosted on the node template \"host 1\" of node type openstack.provider.

component(virtual.machine)artifact(machine.image)host 1(openstack.provider)host

Ansible (Quality: 0.5)

Terraform is more specialized.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#appendix-a-rules","title":"Appendix A \"Rules\"","text":"

This appendix contains the deployment technology rules.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-1","title":"Rule #1","text":"Attribute Value Identifier docker.engine::ansible@local.machine Component docker.engine Technology ansible Hosting local.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details \"ansible.builtin.shell\", \"ansible.builtin.group\", and \"ansible.builtin.user\" tasks Graph component(docker.engine)host 1(local.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-2","title":"Rule #2","text":"Attribute Value Identifier docker.engine::terraform@local.machine Component docker.engine Technology terraform Hosting local.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"local-exec\" provider Graph component(docker.engine)host 1(local.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-3","title":"Rule #3","text":"Attribute Value Identifier docker.engine::ansible@remote.machine Component docker.engine Technology ansible Hosting remote.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details \"ansible.builtin.shell\", \"ansible.builtin.group\", and \"ansible.builtin.user\" tasks Graph component(docker.engine)host 1(remote.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-4","title":"Rule #4","text":"Attribute Value Identifier docker.engine::terraform@remote.machine Component docker.engine Technology terraform Hosting remote.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"remote-exec\" provider Graph component(docker.engine)host 1(remote.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-5","title":"Rule #5","text":"Attribute Value Identifier gcp.service::ansible Component gcp.service Technology ansible Quality 1 Reason Ansible provides a declarative module Details \"google.cloud.gcp_serviceusage_service\" task Graph component(gcp.service)","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-6","title":"Rule #6","text":"Attribute Value Identifier gcp.service::terraform Component gcp.service Technology terraform Quality 1 Reason Terraform provides a declarative module. Details \"google_project_service\" resource Graph component(gcp.service)","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-7","title":"Rule #7","text":"Attribute Value Identifier ingress::ansible@kubernetes.cluster Component ingress Technology ansible Hosting kubernetes.cluster Quality 0.5 Reason Kubernetes is more specialized. Details \"kubernetes.core.k8s\" task Graph component(ingress)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-8","title":"Rule #8","text":"Attribute Value Identifier ingress::kubernetes@kubernetes.cluster Component ingress Technology kubernetes Hosting kubernetes.cluster Quality 1 Reason Kubernetes is the underlying technology. Details Kubernetes manifest generated and applied Graph component(ingress)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-9","title":"Rule #9","text":"Attribute Value Identifier ingress::terraform@kubernetes.cluster Component ingress Technology terraform Hosting kubernetes.cluster Quality 0.5 Reason Kubernetes is more specialized. Details \"kubernetes_service_v1\" resource Graph component(ingress)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-10","title":"Rule #10","text":"Attribute Value Identifier ingress::ansible@local.machine Component ingress Technology ansible Hosting local.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details \"ansible.builtin.apt_key\", \"ansible.builtin.apt_repository\", \"ansible.builtin.apt\", \"ansible.builtin.copy\", and \"ansible.builtin.systemd\" tasks Graph component(ingress)host 1(local.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-11","title":"Rule #11","text":"Attribute Value Identifier ingress::terraform@local.machine Component ingress Technology terraform Hosting local.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"local_file\" resource to create the installation script and \"terraform_data\" to execute the script using the \"local-exec\" provisioner Graph component(ingress)host 1(local.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-12","title":"Rule #12","text":"Attribute Value Identifier ingress::ansible@remote.machine Component ingress Technology ansible Hosting remote.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details \"ansible.builtin.apt_key\", \"ansible.builtin.apt_repository\", \"ansible.builtin.apt\", \"ansible.builtin.copy\", and \"ansible.builtin.systemd\" tasks Graph component(ingress)host 1(remote.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-13","title":"Rule #13","text":"Attribute Value Identifier ingress::terraform@remote.machine Component ingress Technology terraform Hosting remote.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"terraform_data\" resource with an \"ssh\" connection to the virtual machine to copy the install script using the \"file\" provisioner on the virtual machine and to execute the script using the \"remote-exec\" provisioner Graph component(ingress)host 1(remote.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-14","title":"Rule #14","text":"Attribute Value Identifier mysql.database::ansible@mysql.dbms->docker.engine->local.machine Component mysql.database Technology ansible Hosting mysql.dbms -> docker.engine -> local.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(local.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-15","title":"Rule #15","text":"Attribute Value Identifier mysql.database::compose@mysql.dbms->docker.engine->local.machine Component mysql.database Technology compose Hosting mysql.dbms -> docker.engine -> local.machine Quality 0 Reason One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(local.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-16","title":"Rule #16","text":"Attribute Value Identifier mysql.database::terraform@mysql.dbms->docker.engine->local.machine Component mysql.database Technology terraform Hosting mysql.dbms -> docker.engine -> local.machine Quality 1 Reason Terraform provides a declarative module. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(local.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-17","title":"Rule #17","text":"Attribute Value Identifier mysql.database::ansible@mysql.dbms->docker.engine->remote.machine Component mysql.database Technology ansible Hosting mysql.dbms -> docker.engine -> remote.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(remote.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-18","title":"Rule #18","text":"Attribute Value Identifier mysql.database::compose@mysql.dbms->docker.engine->remote.machine Component mysql.database Technology compose Hosting mysql.dbms -> docker.engine -> remote.machine Quality 0 Reason One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(remote.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-19","title":"Rule #19","text":"Attribute Value Identifier mysql.database::terraform@mysql.dbms->docker.engine->remote.machine Component mysql.database Technology terraform Hosting mysql.dbms -> docker.engine -> remote.machine Quality 0.5 Reason Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(remote.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-20","title":"Rule #20","text":"Attribute Value Identifier mysql.database::ansible@mysql.dbms->gcp.cloudsql Component mysql.database Technology ansible Hosting mysql.dbms -> gcp.cloudsql Quality 0.5 Reason Primary use case due to the specialization of Ansible. However, need to install and handle GCP CloudSQL Proxy, while the corresponding Terraform module already provides this. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(gcp.cloudsql)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-21","title":"Rule #21","text":"Attribute Value Identifier mysql.database::terraform@mysql.dbms->gcp.cloudsql Component mysql.database Technology terraform Hosting mysql.dbms -> gcp.cloudsql Quality 1 Reason Terraform provides a declarative module. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(gcp.cloudsql)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-22","title":"Rule #22","text":"Attribute Value Identifier mysql.database::ansible@mysql.dbms->kubernetes.cluster Component mysql.database Technology ansible Hosting mysql.dbms -> kubernetes.cluster Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(kubernetes.cluster)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-23","title":"Rule #23","text":"Attribute Value Identifier mysql.database::kubernetes@mysql.dbms->kubernetes.cluster Component mysql.database Technology kubernetes Hosting mysql.dbms -> kubernetes.cluster Quality 0 Reason Kubernetes Job with imperative parts, while declarative other technologies provide declarative modules. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(kubernetes.cluster)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-24","title":"Rule #24","text":"Attribute Value Identifier mysql.database::terraform@mysql.dbms->kubernetes.cluster Component mysql.database Technology terraform Hosting mysql.dbms -> kubernetes.cluster Quality 0 Reason Ansible is more specialized. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(kubernetes.cluster)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-25","title":"Rule #25","text":"Attribute Value Identifier mysql.database::ansible@mysql.dbms->local.machine Component mysql.database Technology ansible Hosting mysql.dbms -> local.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-26","title":"Rule #26","text":"Attribute Value Identifier mysql.database::terraform@mysql.dbms->local.machine Component mysql.database Technology terraform Hosting mysql.dbms -> local.machine Quality 1 Reason Terraform provides a declarative module. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-27","title":"Rule #27","text":"Attribute Value Identifier mysql.database::ansible@mysql.dbms->remote.machine Component mysql.database Technology ansible Hosting mysql.dbms -> remote.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-28","title":"Rule #28","text":"Attribute Value Identifier mysql.database::terraform@mysql.dbms->remote.machine Component mysql.database Technology terraform Hosting mysql.dbms -> remote.machine Quality 0.5 Reason Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-29","title":"Rule #29","text":"Attribute Value Identifier mysql.dbms#dbms.image::ansible@docker.engine->local.machine Component mysql.dbms Artifact dbms.image Technology ansible Hosting docker.engine -> local.machine Quality 0.5 Reason Docker Compose is more specialized Details \"community.docker.docker_container\" task Graph component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-30","title":"Rule #30","text":"Attribute Value Identifier mysql.dbms#dbms.image::compose@docker.engine->local.machine Component mysql.dbms Artifact dbms.image Technology compose Hosting docker.engine -> local.machine Quality 1 Reason Docker is the underlying technology. Details docker-compose manifest generated and applied Graph component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-31","title":"Rule #31","text":"Attribute Value Identifier mysql.dbms#dbms.image::terraform@docker.engine->local.machine Component mysql.dbms Artifact dbms.image Technology terraform Hosting docker.engine -> local.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"docker_container\" and \"docker_image\" resources Graph component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-32","title":"Rule #32","text":"Attribute Value Identifier mysql.dbms#dbms.image::ansible@docker.engine->remote.machine Component mysql.dbms Artifact dbms.image Technology ansible Hosting docker.engine -> remote.machine Quality 0.5 Reason Docker Compose is more specialized Details \"community.docker.docker_container\" task Graph component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-33","title":"Rule #33","text":"Attribute Value Identifier mysql.dbms#dbms.image::compose@docker.engine->remote.machine Component mysql.dbms Artifact dbms.image Technology compose Hosting docker.engine -> remote.machine Quality 1 Reason Docker is the underlying technology. Details docker-compose manifest generated and applied Graph component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-34","title":"Rule #34","text":"Attribute Value Identifier mysql.dbms#dbms.image::terraform@docker.engine->remote.machine Component mysql.dbms Artifact dbms.image Technology terraform Hosting docker.engine -> remote.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"docker_container\" and \"docker_image\" resources Graph component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-35","title":"Rule #35","text":"Attribute Value Identifier mysql.dbms#dbms.image::ansible@gcp.cloudsql Component mysql.dbms Artifact dbms.image Technology ansible Hosting gcp.cloudsql Quality 1 Reason Primary use case due to the specialization of Ansible. Details \"google.cloud.gcp_sql_instance\" and \"google.cloud.gcp_sql_user\" tasks Graph component(mysql.dbms)artifact(dbms.image)host 1(gcp.cloudsql)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-36","title":"Rule #36","text":"Attribute Value Identifier mysql.dbms#dbms.image::terraform@gcp.cloudsql Component mysql.dbms Artifact dbms.image Technology terraform Hosting gcp.cloudsql Quality 1 Reason Terraform provides a declarative module. Details \"google_sql_database_instance\" and \"google_sql_user\" resources Graph component(mysql.dbms)artifact(dbms.image)host 1(gcp.cloudsql)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-37","title":"Rule #37","text":"Attribute Value Identifier mysql.dbms#dbms.image::ansible@kubernetes.cluster Component mysql.dbms Artifact dbms.image Technology ansible Hosting kubernetes.cluster Quality 0.5 Reason Kubernetes is more specialized. Details \"kubernetes.core.k8s\" tasks Graph component(mysql.dbms)artifact(dbms.image)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-38","title":"Rule #38","text":"Attribute Value Identifier mysql.dbms#dbms.image::kubernetes@kubernetes.cluster Component mysql.dbms Artifact dbms.image Technology kubernetes Hosting kubernetes.cluster Quality 1 Reason Kubernetes is the underlying technology. Details Kubernetes manifest generated and applied Graph component(mysql.dbms)artifact(dbms.image)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-39","title":"Rule #39","text":"Attribute Value Identifier mysql.dbms#dbms.image::terraform@kubernetes.cluster Component mysql.dbms Artifact dbms.image Technology terraform Hosting kubernetes.cluster Quality 0.5 Reason Kubernetes is more specialized. Details \"kubernetes_deployment_v1\" and \"kubernetes_service_v1\" resources Graph component(mysql.dbms)artifact(dbms.image)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-40","title":"Rule #40","text":"Attribute Value Identifier mysql.dbms#dbms.image::ansible@local.machine Component mysql.dbms Artifact dbms.image Technology ansible Hosting local.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details \"ansible.builtin.apt\", \"ansible.builtin.systemd\", \"ansible.builtin.copy\", \"ansible.builtin.lineinfile\", and \"community.mysql.mysql_user\" tasks Graph component(mysql.dbms)artifact(dbms.image)host 1(local.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-41","title":"Rule #41","text":"Attribute Value Identifier mysql.dbms#dbms.image::terraform@local.machine Component mysql.dbms Artifact dbms.image Technology terraform Hosting local.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"local_file\" resource to create the installation script and \"terraform_data\" to execute the script using the \"local-exec\" provisioner Graph component(mysql.dbms)artifact(dbms.image)host 1(local.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-42","title":"Rule #42","text":"Attribute Value Identifier mysql.dbms#dbms.image::ansible@remote.machine Component mysql.dbms Artifact dbms.image Technology ansible Hosting remote.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details \"ansible.builtin.apt\", \"ansible.builtin.systemd\", \"ansible.builtin.copy\", \"ansible.builtin.lineinfile\", and \"community.mysql.mysql_user\" tasks Graph component(mysql.dbms)artifact(dbms.image)host 1(remote.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-43","title":"Rule #43","text":"Attribute Value Identifier mysql.dbms#dbms.image::terraform@remote.machine Component mysql.dbms Artifact dbms.image Technology terraform Hosting remote.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"terraform_data\" resource with an \"ssh\" connection to the virtual machine to copy the install script using the \"file\" provisioner on the virtual machine and to execute the script using the \"remote-exec\" provisioner Graph component(mysql.dbms)artifact(dbms.image)host 1(remote.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-44","title":"Rule #44","text":"Attribute Value Identifier object.storage::ansible@gcp.cloudstorage Component object.storage Technology ansible Hosting gcp.cloudstorage Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(object.storage)host 1(gcp.cloudstorage)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-45","title":"Rule #45","text":"Attribute Value Identifier object.storage::terraform@gcp.cloudstorage Component object.storage Technology terraform Hosting gcp.cloudstorage Quality 1 Reason Terraform provides a declarative module. Details Graph component(object.storage)host 1(gcp.cloudstorage)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-46","title":"Rule #46","text":"Attribute Value Identifier object.storage::ansible@minio.server->docker.engine->local.machine Component object.storage Technology ansible Hosting minio.server -> docker.engine -> local.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(local.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-47","title":"Rule #47","text":"Attribute Value Identifier object.storage::compose@minio.server->docker.engine->local.machine Component object.storage Technology compose Hosting minio.server -> docker.engine -> local.machine Quality 0 Reason One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules. Details Graph component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(local.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-48","title":"Rule #48","text":"Attribute Value Identifier object.storage::terraform@minio.server->docker.engine->local.machine Component object.storage Technology terraform Hosting minio.server -> docker.engine -> local.machine Quality 1 Reason Terraform provides a declarative module. Details Graph component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(local.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-49","title":"Rule #49","text":"Attribute Value Identifier object.storage::ansible@minio.server->docker.engine->remote.machine Component object.storage Technology ansible Hosting minio.server -> docker.engine -> remote.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(remote.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-50","title":"Rule #50","text":"Attribute Value Identifier object.storage::compose@minio.server->docker.engine->remote.machine Component object.storage Technology compose Hosting minio.server -> docker.engine -> remote.machine Quality 0 Reason One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules. Details Graph component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(remote.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-51","title":"Rule #51","text":"Attribute Value Identifier object.storage::terraform@minio.server->docker.engine->remote.machine Component object.storage Technology terraform Hosting minio.server -> docker.engine -> remote.machine Quality 0.5 Reason Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized. Details Graph component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(remote.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-52","title":"Rule #52","text":"Attribute Value Identifier object.storage::ansible@minio.server->kubernetes.cluster Component object.storage Technology ansible Hosting minio.server -> kubernetes.cluster Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(object.storage)host 1(minio.server)host 2(kubernetes.cluster)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-53","title":"Rule #53","text":"Attribute Value Identifier object.storage::kubernetes@minio.server->kubernetes.cluster Component object.storage Technology kubernetes Hosting minio.server -> kubernetes.cluster Quality 0 Reason Kubernetes Job with imperative parts, while declarative other technologies provide declarative modules. Details Graph component(object.storage)host 1(minio.server)host 2(kubernetes.cluster)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-54","title":"Rule #54","text":"Attribute Value Identifier object.storage::terraform@minio.server->kubernetes.cluster Component object.storage Technology terraform Hosting minio.server -> kubernetes.cluster Quality 0 Reason Ansible is more specialized. Details Graph component(object.storage)host 1(minio.server)host 2(kubernetes.cluster)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-55","title":"Rule #55","text":"Attribute Value Identifier redis.server#cache.image::ansible@docker.engine->local.machine Component redis.server Artifact cache.image Technology ansible Hosting docker.engine -> local.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"community.docker.docker_container\" task Graph component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-56","title":"Rule #56","text":"Attribute Value Identifier redis.server#cache.image::compose@docker.engine->local.machine Component redis.server Artifact cache.image Technology compose Hosting docker.engine -> local.machine Quality 1 Reason Docker is the underlying technology. Details docker compose manifest generated and applied Graph component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-57","title":"Rule #57","text":"Attribute Value Identifier redis.server#cache.image::terraform@docker.engine->local.machine Component redis.server Artifact cache.image Technology terraform Hosting docker.engine -> local.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"docker_container\" and \"docker_image\" resources Graph component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-58","title":"Rule #58","text":"Attribute Value Identifier redis.server#cache.image::ansible@docker.engine->remote.machine Component redis.server Artifact cache.image Technology ansible Hosting docker.engine -> remote.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"community.docker.docker_container\" task Graph component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-59","title":"Rule #59","text":"Attribute Value Identifier redis.server#cache.image::compose@docker.engine->remote.machine Component redis.server Artifact cache.image Technology compose Hosting docker.engine -> remote.machine Quality 1 Reason Docker is the underlying technology. Details docker compose manifest generated and applied Graph component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-60","title":"Rule #60","text":"Attribute Value Identifier redis.server#cache.image::terraform@docker.engine->remote.machine Component redis.server Artifact cache.image Technology terraform Hosting docker.engine -> remote.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"docker_container\" and \"docker_image\" resources Graph component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-61","title":"Rule #61","text":"Attribute Value Identifier redis.server#cache.image::ansible@gcp.memorystore Component redis.server Artifact cache.image Technology ansible Hosting gcp.memorystore Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(redis.server)artifact(cache.image)host 1(gcp.memorystore)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-62","title":"Rule #62","text":"Attribute Value Identifier redis.server#cache.image::terraform@gcp.memorystore Component redis.server Artifact cache.image Technology terraform Hosting gcp.memorystore Quality 1 Reason Terraform provides a declarative module. Details Graph component(redis.server)artifact(cache.image)host 1(gcp.memorystore)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-63","title":"Rule #63","text":"Attribute Value Identifier redis.server#cache.image::ansible@kubernetes.cluster Component redis.server Artifact cache.image Technology ansible Hosting kubernetes.cluster Quality 0.5 Reason Kubernetes is more specialized. Details Graph component(redis.server)artifact(cache.image)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-64","title":"Rule #64","text":"Attribute Value Identifier redis.server#cache.image::kubernetes@kubernetes.cluster Component redis.server Artifact cache.image Technology kubernetes Hosting kubernetes.cluster Quality 1 Reason Kubernetes is the underlying technology. Details Kubernetes manifest generated and applied Graph component(redis.server)artifact(cache.image)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-65","title":"Rule #65","text":"Attribute Value Identifier redis.server#cache.image::terraform@kubernetes.cluster Component redis.server Artifact cache.image Technology terraform Hosting kubernetes.cluster Quality 0.5 Reason Kubernetes is more specialized. Details Graph component(redis.server)artifact(cache.image)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-66","title":"Rule #66","text":"Attribute Value Identifier service.application#docker.image::ansible@docker.engine->local.machine Component service.application Artifact docker.image Technology ansible Hosting docker.engine -> local.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"community.docker.docker_container\" task Graph component(service.application)artifact(docker.image)host 1(docker.engine)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-67","title":"Rule #67","text":"Attribute Value Identifier service.application#docker.image::compose@docker.engine->local.machine Component service.application Artifact docker.image Technology compose Hosting docker.engine -> local.machine Quality 1 Reason Docker is the underlying technology. Details docker compose manifest generated and applied Graph component(service.application)artifact(docker.image)host 1(docker.engine)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-68","title":"Rule #68","text":"Attribute Value Identifier service.application#docker.image::terraform@docker.engine->local.machine Component service.application Artifact docker.image Technology terraform Hosting docker.engine -> local.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"docker_container\" and \"docker_image\" resources Graph component(service.application)artifact(docker.image)host 1(docker.engine)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-69","title":"Rule #69","text":"Attribute Value Identifier service.application#docker.image::ansible@docker.engine->remote.machine Component service.application Artifact docker.image Technology ansible Hosting docker.engine -> remote.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"community.docker.docker_container\" task Graph component(service.application)artifact(docker.image)host 1(docker.engine)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-70","title":"Rule #70","text":"Attribute Value Identifier service.application#docker.image::compose@docker.engine->remote.machine Component service.application Artifact docker.image Technology compose Hosting docker.engine -> remote.machine Quality 1 Reason Docker is the underlying technology. Details docker compose manifest generated and applied Graph component(service.application)artifact(docker.image)host 1(docker.engine)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-71","title":"Rule #71","text":"Attribute Value Identifier service.application#docker.image::terraform@docker.engine->remote.machine Component service.application Artifact docker.image Technology terraform Hosting docker.engine -> remote.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"docker_container\" and \"docker_image\" resources Graph component(service.application)artifact(docker.image)host 1(docker.engine)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-72","title":"Rule #72","text":"Attribute Value Identifier service.application#docker.image::ansible@gcp.cloudrun Component service.application Artifact docker.image Technology ansible Hosting gcp.cloudrun Quality 0 Reason Custom module with imperative parts, while Terraform provides a declarative module. Details \"ansible.builtin.shell\", \"ansible.builtin.tempfile\", and \"ansible.builtin.copy\" tasks Graph component(service.application)artifact(docker.image)host 1(gcp.cloudrun)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-73","title":"Rule #73","text":"Attribute Value Identifier service.application#docker.image::terraform@gcp.cloudrun Component service.application Artifact docker.image Technology terraform Hosting gcp.cloudrun Quality 1 Reason Terraform provides a declarative module. Details \"google_cloud_run_v2_service\" and \"google_cloud_run_service_iam_binding\" resources Graph component(service.application)artifact(docker.image)host 1(gcp.cloudrun)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-74","title":"Rule #74","text":"Attribute Value Identifier service.application#docker.image::ansible@kubernetes.cluster Component service.application Artifact docker.image Technology ansible Hosting kubernetes.cluster Quality 0.5 Reason Kubernetes is more specialized. Details \"kubernetes.core.k8s\" tasks Graph component(service.application)artifact(docker.image)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-75","title":"Rule #75","text":"Attribute Value Identifier service.application#docker.image::kubernetes@kubernetes.cluster Component service.application Artifact docker.image Technology kubernetes Hosting kubernetes.cluster Quality 1 Reason Kubernetes is the underlying technology. Details Kubernetes manifest generated and applied Graph component(service.application)artifact(docker.image)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-76","title":"Rule #76","text":"Attribute Value Identifier service.application#docker.image::terraform@kubernetes.cluster Component service.application Artifact docker.image Technology terraform Hosting kubernetes.cluster Quality 0.5 Reason Kubernetes is more specialized. Details \"kubernetes_deployment_v1\" and \"kubernetes_service_v1\" resources Graph component(service.application)artifact(docker.image)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-77","title":"Rule #77","text":"Attribute Value Identifier service.application#tar.archive::ansible@*->local.machine Component service.application Artifact tar.archive Technology ansible Hosting * -> local.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Special integration for systemd. Details \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", \"ansible.builtin.shell\", and \"ansible.builtin.systemd\" tasks with \"when\" statements Graph component(service.application)artifact(tar.archive)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-78","title":"Rule #78","text":"Attribute Value Identifier service.application#tar.archive::terraform@*->local.machine Component service.application Artifact tar.archive Technology terraform Hosting * -> local.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts. Graph component(service.application)artifact(tar.archive)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-79","title":"Rule #79","text":"Attribute Value Identifier service.application#tar.archive::ansible@*->remote.machine Component service.application Artifact tar.archive Technology ansible Hosting * -> remote.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Special integration for systemd. Details \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", \"ansible.builtin.shell\", and \"ansible.builtin.systemd\" tasks with \"when\" statements Graph component(service.application)artifact(tar.archive)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-80","title":"Rule #80","text":"Attribute Value Identifier service.application#tar.archive::terraform@*->remote.machine Component service.application Artifact tar.archive Technology terraform Hosting * -> remote.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"file\" provisioner to upload artifacts and scripts and \"remote-exec\" to execute scripts Graph component(service.application)artifact(tar.archive)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-81","title":"Rule #81","text":"Attribute Value Identifier service.application#zip.archive::ansible@*->local.machine Component service.application Artifact zip.archive Technology ansible Hosting * -> local.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Special integration for systemd. Details \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", \"ansible.builtin.shell\", and \"ansible.builtin.systemd\" tasks with \"when\" statements Graph component(service.application)artifact(zip.archive)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-82","title":"Rule #82","text":"Attribute Value Identifier service.application#zip.archive::terraform@*->local.machine Component service.application Artifact zip.archive Technology terraform Hosting * -> local.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts. Graph component(service.application)artifact(zip.archive)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-83","title":"Rule #83","text":"Attribute Value Identifier service.application#zip.archive::ansible@*->remote.machine Component service.application Artifact zip.archive Technology ansible Hosting * -> remote.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Special integration for systemd. Details \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", \"ansible.builtin.shell\", and \"ansible.builtin.systemd\" tasks with \"when\" statements Graph component(service.application)artifact(zip.archive)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-84","title":"Rule #84","text":"Attribute Value Identifier service.application#zip.archive::terraform@*->remote.machine Component service.application Artifact zip.archive Technology terraform Hosting * -> remote.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"file\" provisioner to upload artifacts and scripts and \"remote-exec\" to execute scripts Graph component(service.application)artifact(zip.archive)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-85","title":"Rule #85","text":"Attribute Value Identifier service.application#zip.archive::ansible@gcp.appengine Component service.application Artifact zip.archive Technology ansible Hosting gcp.appengine Quality 0 Reason Custom module with imperative parts, while Terraform provides a declarative module. Details \"ansible.builtin.shell\", \"ansible.builtin.tempfile\", \"ansible.builtin.unarchive\", and \"ansible.builtin.copy\" tasks Graph component(service.application)artifact(zip.archive)host 1(gcp.appengine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-86","title":"Rule #86","text":"Attribute Value Identifier service.application#zip.archive::terraform@gcp.appengine Component service.application Artifact zip.archive Technology terraform Hosting gcp.appengine Quality 1 Reason Terraform provides a declarative module. Details \"google_app_engine_standard_app_version\", \"google_project_iam_member\", \"google_service_account\", \"google_storage_bucket\", and \"google_storage_bucket_object\" resources Graph component(service.application)artifact(zip.archive)host 1(gcp.appengine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-87","title":"Rule #87","text":"Attribute Value Identifier software.application#apt.package::ansible@*->local.machine Component software.application Artifact apt.package Technology ansible Hosting * -> local.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details \"ansible.builtin.shell\", \"ansible.builtin.apt_key\", \"ansible.builtin.apt_repository\", \"ansible.builtin.apt\", and \"ansible.builtin.copy\", tasks with \"when\" statements Graph component(software.application)artifact(apt.package)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-88","title":"Rule #88","text":"Attribute Value Identifier software.application#apt.package::terraform@*->local.machine Component software.application Artifact apt.package Technology terraform Hosting * -> local.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts Graph component(software.application)artifact(apt.package)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-89","title":"Rule #89","text":"Attribute Value Identifier software.application#apt.package::ansible@*->remote.machine Component software.application Artifact apt.package Technology ansible Hosting * -> remote.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details \"ansible.builtin.shell\", \"ansible.builtin.apt_key\", \"ansible.builtin.apt_repository\", \"ansible.builtin.apt\", and \"ansible.builtin.copy\", tasks with \"when\" statements Graph component(software.application)artifact(apt.package)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-90","title":"Rule #90","text":"Attribute Value Identifier software.application#apt.package::terraform@*->remote.machine Component software.application Artifact apt.package Technology terraform Hosting * -> remote.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"file\" provisioner to upload scripts and \"remote-exec\" to execute scripts Graph component(software.application)artifact(apt.package)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-91","title":"Rule #91","text":"Attribute Value Identifier software.application#tar.archive::ansible@*->local.machine Component software.application Artifact tar.archive Technology ansible Hosting * -> local.machine Quality 0.5 Reason While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application. Details \"ansible.builtin.apt\", \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", and \"ansible.builtin.shell\" tasks with \"when\" statements Graph component(software.application)artifact(tar.archive)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-92","title":"Rule #92","text":"Attribute Value Identifier software.application#tar.archive::terraform@*->local.machine Component software.application Artifact tar.archive Technology terraform Hosting * -> local.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts Graph component(software.application)artifact(tar.archive)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-93","title":"Rule #93","text":"Attribute Value Identifier software.application#tar.archive::ansible@*->remote.machine Component software.application Artifact tar.archive Technology ansible Hosting * -> remote.machine Quality 0.5 Reason While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., \"service.application\". Details \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", and \"ansible.builtin.shell\" tasks with \"when\" statements Graph component(software.application)artifact(tar.archive)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-94","title":"Rule #94","text":"Attribute Value Identifier software.application#tar.archive::terraform@*->remote.machine Component software.application Artifact tar.archive Technology terraform Hosting * -> remote.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"file\" provisioner to upload artifacts and scripts and \"remote-exec\" to execute scripts Graph component(software.application)artifact(tar.archive)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-95","title":"Rule #95","text":"Attribute Value Identifier software.application#zip.archive::ansible@*->local.machine Component software.application Artifact zip.archive Technology ansible Hosting * -> local.machine Quality 0.5 Reason While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application. Details \"ansible.builtin.apt\", \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", and \"ansible.builtin.shell\" tasks with \"when\" statements Graph component(software.application)artifact(zip.archive)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-96","title":"Rule #96","text":"Attribute Value Identifier software.application#zip.archive::terraform@*->local.machine Component software.application Artifact zip.archive Technology terraform Hosting * -> local.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts. Graph component(software.application)artifact(zip.archive)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-97","title":"Rule #97","text":"Attribute Value Identifier software.application#zip.archive::ansible@*->remote.machine Component software.application Artifact zip.archive Technology ansible Hosting * -> remote.machine Quality 0.5 Reason While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application. Details \"ansible.builtin.apt\", \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", and \"ansible.builtin.shell\" tasks with \"when\" statements Graph component(software.application)artifact(zip.archive)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-98","title":"Rule #98","text":"Attribute Value Identifier software.application#zip.archive::terraform@*->remote.machine Component software.application Artifact zip.archive Technology terraform Hosting * -> remote.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"file\" provisioner to upload artifacts and scripts and \"remote-exec\" to execute scripts Graph component(software.application)artifact(zip.archive)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-99","title":"Rule #99","text":"Attribute Value Identifier virtual.machine#machine.image::ansible@openstack.provider Component virtual.machine Artifact machine.image Technology ansible Hosting openstack.provider Quality 0.5 Reason Terraform is more specialized. Details \"openstack.cloud.security_group\", \"openstack.cloud.security_group_rule\" and \"openstack.cloud.server\" tasks Graph component(virtual.machine)artifact(machine.image)host 1(openstack.provider)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-100","title":"Rule #100","text":"Attribute Value Identifier virtual.machine#machine.image::terraform@openstack.provider Component virtual.machine Artifact machine.image Technology terraform Hosting openstack.provider Quality 1 Reason Terraform provides a declarative module. Details \"openstack_compute_instance_v2\", \"openstack_networking_secgroup_rule_v2\" and \"openstack_networking_secgroup_v2\" resources Graph component(virtual.machine)artifact(machine.image)host 1(openstack.provider)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#appendix-b-yaml","title":"Appendix B \"YAML\"","text":"

This appendix contains the deployment technology rules as YAML. The rules are also available as download.

- technology: ansible\ncomponent: docker.engine\nhosting:\n- local.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\ndetails: '\"ansible.builtin.shell\", \"ansible.builtin.group\", and \"ansible.builtin.user\" tasks'\n- technology: terraform\ncomponent: docker.engine\nhosting:\n- local.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"local-exec\" provider'\n- technology: ansible\ncomponent: docker.engine\nhosting:\n- remote.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\ndetails: '\"ansible.builtin.shell\", \"ansible.builtin.group\", and \"ansible.builtin.user\" tasks'\n- technology: terraform\ncomponent: docker.engine\nhosting:\n- remote.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"remote-exec\" provider'\n- technology: ansible\ncomponent: gcp.service\nhosting: []\nweight: 1\nreason: Ansible provides a declarative module\ndetails: '\"google.cloud.gcp_serviceusage_service\" task'\n- technology: terraform\ncomponent: gcp.service\nhosting: []\nweight: 1\nreason: Terraform provides a declarative module.\ndetails: '\"google_project_service\" resource'\n- technology: ansible\ncomponent: ingress\nhosting:\n- kubernetes.cluster\nweight: 0.5\nreason: Kubernetes is more specialized.\ndetails: '\"kubernetes.core.k8s\" task'\n- technology: kubernetes\ncomponent: ingress\nhosting:\n- kubernetes.cluster\nweight: 1\nreason: Kubernetes is the underlying technology.\ndetails: Kubernetes manifest generated and applied\n- technology: terraform\ncomponent: ingress\nhosting:\n- kubernetes.cluster\nweight: 0.5\nreason: Kubernetes is more specialized.\ndetails: '\"kubernetes_service_v1\" resource'\n- technology: ansible\ncomponent: ingress\nhosting:\n- local.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\ndetails: '\"ansible.builtin.apt_key\", \"ansible.builtin.apt_repository\", \"ansible.builtin.apt\", \"ansible.builtin.copy\", and \"ansible.builtin.systemd\" tasks'\n- technology: terraform\ncomponent: ingress\nhosting:\n- local.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"local_file\" resource to create the installation script and \"terraform_data\" to execute the script using the \"local-exec\" provisioner'\n- technology: ansible\ncomponent: ingress\nhosting:\n- remote.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\ndetails: '\"ansible.builtin.apt_key\", \"ansible.builtin.apt_repository\", \"ansible.builtin.apt\", \"ansible.builtin.copy\", and \"ansible.builtin.systemd\" tasks'\n- technology: terraform\ncomponent: ingress\nhosting:\n- remote.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"terraform_data\" resource with an \"ssh\" connection to the virtual machine to copy the install script using the \"file\" provisioner on the virtual machine and to execute the script using the \"remote-exec\" provisioner'\n- technology: ansible\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- docker.engine\n- local.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: compose\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- docker.engine\n- local.machine\nweight: 0\nreason: One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules.\n- technology: terraform\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- docker.engine\n- local.machine\nweight: 1\nreason: Terraform provides a declarative module.\n- technology: ansible\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- docker.engine\n- remote.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: compose\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- docker.engine\n- remote.machine\nweight: 0\nreason: One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules.\n- technology: terraform\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- docker.engine\n- remote.machine\nweight: 0.5\nreason: Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.\n- technology: ansible\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- gcp.cloudsql\nweight: 0.5\nreason: Primary use case due to the specialization of Ansible. However, need to install and handle GCP CloudSQL Proxy, while the corresponding Terraform module already provides this.\n- technology: terraform\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- gcp.cloudsql\nweight: 1\nreason: Terraform provides a declarative module.\n- technology: ansible\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- kubernetes.cluster\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: kubernetes\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- kubernetes.cluster\nweight: 0\nreason: Kubernetes Job with imperative parts, while declarative other technologies provide declarative modules.\n- technology: terraform\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- kubernetes.cluster\nweight: 0\nreason: Ansible is more specialized.\n- technology: ansible\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- local.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: terraform\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- local.machine\nweight: 1\nreason: Terraform provides a declarative module.\n- technology: ansible\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- remote.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: terraform\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- remote.machine\nweight: 0.5\nreason: Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.\n- technology: ansible\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- docker.engine\n- local.machine\nweight: 0.5\nreason: Docker Compose is more specialized\ndetails: '\"community.docker.docker_container\" task'\n- technology: compose\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- docker.engine\n- local.machine\nweight: 1\nreason: Docker is the underlying technology.\ndetails: docker-compose manifest generated and applied\n- technology: terraform\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- docker.engine\n- local.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"docker_container\" and \"docker_image\" resources'\n- technology: ansible\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- docker.engine\n- remote.machine\nweight: 0.5\nreason: Docker Compose is more specialized\ndetails: '\"community.docker.docker_container\" task'\n- technology: compose\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- docker.engine\n- remote.machine\nweight: 1\nreason: Docker is the underlying technology.\ndetails: docker-compose manifest generated and applied\n- technology: terraform\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- docker.engine\n- remote.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"docker_container\" and \"docker_image\" resources'\n- technology: ansible\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- gcp.cloudsql\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\ndetails: '\"google.cloud.gcp_sql_instance\" and \"google.cloud.gcp_sql_user\" tasks'\n- technology: terraform\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- gcp.cloudsql\nweight: 1\nreason: Terraform provides a declarative module.\ndetails: '\"google_sql_database_instance\" and \"google_sql_user\" resources'\n- technology: ansible\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- kubernetes.cluster\nweight: 0.5\nreason: Kubernetes is more specialized.\ndetails: '\"kubernetes.core.k8s\" tasks'\n- technology: kubernetes\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- kubernetes.cluster\nweight: 1\nreason: Kubernetes is the underlying technology.\ndetails: Kubernetes manifest generated and applied\n- technology: terraform\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- kubernetes.cluster\nweight: 0.5\nreason: Kubernetes is more specialized.\ndetails: '\"kubernetes_deployment_v1\" and \"kubernetes_service_v1\" resources'\n- technology: ansible\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- local.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\ndetails: '\"ansible.builtin.apt\", \"ansible.builtin.systemd\", \"ansible.builtin.copy\", \"ansible.builtin.lineinfile\", and \"community.mysql.mysql_user\" tasks'\n- technology: terraform\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- local.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"local_file\" resource to create the installation script and \"terraform_data\" to execute the script using the \"local-exec\" provisioner'\n- technology: ansible\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- remote.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\ndetails: '\"ansible.builtin.apt\", \"ansible.builtin.systemd\", \"ansible.builtin.copy\", \"ansible.builtin.lineinfile\", and \"community.mysql.mysql_user\" tasks'\n- technology: terraform\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- remote.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"terraform_data\" resource with an \"ssh\" connection to the virtual machine to copy the install script using the \"file\" provisioner on the virtual machine and to execute the script using the \"remote-exec\" provisioner'\n- technology: ansible\ncomponent: object.storage\nhosting:\n- gcp.cloudstorage\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: terraform\ncomponent: object.storage\nhosting:\n- gcp.cloudstorage\nweight: 1\nreason: Terraform provides a declarative module.\n- technology: ansible\ncomponent: object.storage\nhosting:\n- minio.server\n- docker.engine\n- local.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: compose\ncomponent: object.storage\nhosting:\n- minio.server\n- docker.engine\n- local.machine\nweight: 0\nreason: One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules.\n- technology: terraform\ncomponent: object.storage\nhosting:\n- minio.server\n- docker.engine\n- local.machine\nweight: 1\nreason: Terraform provides a declarative module.\n- technology: ansible\ncomponent: object.storage\nhosting:\n- minio.server\n- docker.engine\n- remote.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: compose\ncomponent: object.storage\nhosting:\n- minio.server\n- docker.engine\n- remote.machine\nweight: 0\nreason: One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules.\n- technology: terraform\ncomponent: object.storage\nhosting:\n- minio.server\n- docker.engine\n- remote.machine\nweight: 0.5\nreason: Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.\n- technology: ansible\ncomponent: object.storage\nhosting:\n- minio.server\n- kubernetes.cluster\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: kubernetes\ncomponent: object.storage\nhosting:\n- minio.server\n- kubernetes.cluster\nweight: 0\nreason: Kubernetes Job with imperative parts, while declarative other technologies provide declarative modules.\n- technology: terraform\ncomponent: object.storage\nhosting:\n- minio.server\n- kubernetes.cluster\nweight: 0\nreason: Ansible is more specialized.\n- technology: ansible\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- docker.engine\n- local.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"community.docker.docker_container\" task'\n- technology: compose\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- docker.engine\n- local.machine\nweight: 1\nreason: Docker is the underlying technology.\ndetails: docker compose manifest generated and applied\n- technology: terraform\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- docker.engine\n- local.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"docker_container\" and \"docker_image\" resources'\n- technology: ansible\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- docker.engine\n- remote.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"community.docker.docker_container\" task'\n- technology: compose\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- docker.engine\n- remote.machine\nweight: 1\nreason: Docker is the underlying technology.\ndetails: docker compose manifest generated and applied\n- technology: terraform\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- docker.engine\n- remote.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"docker_container\" and \"docker_image\" resources'\n- technology: ansible\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- gcp.memorystore\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: terraform\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- gcp.memorystore\nweight: 1\nreason: Terraform provides a declarative module.\n- technology: ansible\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- kubernetes.cluster\nweight: 0.5\nreason: Kubernetes is more specialized.\n- technology: kubernetes\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- kubernetes.cluster\nweight: 1\nreason: Kubernetes is the underlying technology.\ndetails: Kubernetes manifest generated and applied\n- technology: terraform\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- kubernetes.cluster\nweight: 0.5\nreason: Kubernetes is more specialized.\n- technology: ansible\ncomponent: service.application\nartifact: docker.image\nhosting:\n- docker.engine\n- local.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"community.docker.docker_container\" task'\n- technology: compose\ncomponent: service.application\nartifact: docker.image\nhosting:\n- docker.engine\n- local.machine\nweight: 1\nreason: Docker is the underlying technology.\ndetails: docker compose manifest generated and applied\n- technology: terraform\ncomponent: service.application\nartifact: docker.image\nhosting:\n- docker.engine\n- local.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"docker_container\" and \"docker_image\" resources'\n- technology: ansible\ncomponent: service.application\nartifact: docker.image\nhosting:\n- docker.engine\n- remote.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"community.docker.docker_container\" task'\n- technology: compose\ncomponent: service.application\nartifact: docker.image\nhosting:\n- docker.engine\n- remote.machine\nweight: 1\nreason: Docker is the underlying technology.\ndetails: docker compose manifest generated and applied\n- technology: terraform\ncomponent: service.application\nartifact: docker.image\nhosting:\n- docker.engine\n- remote.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"docker_container\" and \"docker_image\" resources'\n- technology: ansible\ncomponent: service.application\nartifact: docker.image\nhosting:\n- gcp.cloudrun\nweight: 0\nreason: Custom module with imperative parts, while Terraform provides a declarative module.\ndetails: '\"ansible.builtin.shell\", \"ansible.builtin.tempfile\", and \"ansible.builtin.copy\" tasks '\n- technology: terraform\ncomponent: service.application\nartifact: docker.image\nhosting:\n- gcp.cloudrun\nweight: 1\nreason: Terraform provides a declarative module.\ndetails: '\"google_cloud_run_v2_service\" and \"google_cloud_run_service_iam_binding\" resources'\n- technology: ansible\ncomponent: service.application\nartifact: docker.image\nhosting:\n- kubernetes.cluster\nweight: 0.5\nreason: Kubernetes is more specialized.\ndetails: '\"kubernetes.core.k8s\" tasks'\n- technology: kubernetes\ncomponent: service.application\nartifact: docker.image\nhosting:\n- kubernetes.cluster\nweight: 1\nreason: Kubernetes is the underlying technology.\ndetails: Kubernetes manifest generated and applied\n- technology: terraform\ncomponent: service.application\nartifact: docker.image\nhosting:\n- kubernetes.cluster\nweight: 0.5\nreason: Kubernetes is more specialized.\ndetails: '\"kubernetes_deployment_v1\" and \"kubernetes_service_v1\" resources'\n- technology: ansible\ncomponent: service.application\nartifact: tar.archive\nhosting:\n- '*'\n- local.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible. Special integration for systemd.\ndetails: '\"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", \"ansible.builtin.shell\", and \"ansible.builtin.systemd\" tasks with \"when\" statements'\n- technology: terraform\ncomponent: service.application\nartifact: tar.archive\nhosting:\n- '*'\n- local.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts.'\n- technology: ansible\ncomponent: service.application\nartifact: tar.archive\nhosting:\n- '*'\n- remote.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible. Special integration for systemd.\ndetails: '\"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", \"ansible.builtin.shell\", and \"ansible.builtin.systemd\" tasks with \"when\" statements'\n- technology: terraform\ncomponent: service.application\nartifact: tar.archive\nhosting:\n- '*'\n- remote.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"file\" provisioner to upload artifacts and scripts and \"remote-exec\" to execute scripts'\n- technology: ansible\ncomponent: service.application\nartifact: zip.archive\nhosting:\n- '*'\n- local.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible. Special integration for systemd.\ndetails: '\"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", \"ansible.builtin.shell\", and \"ansible.builtin.systemd\" tasks with \"when\" statements'\n- technology: terraform\ncomponent: service.application\nartifact: zip.archive\nhosting:\n- '*'\n- local.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts.'\n- technology: ansible\ncomponent: service.application\nartifact: zip.archive\nhosting:\n- '*'\n- remote.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible. Special integration for systemd.\ndetails: '\"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", \"ansible.builtin.shell\", and \"ansible.builtin.systemd\" tasks with \"when\" statements'\n- technology: terraform\ncomponent: service.application\nartifact: zip.archive\nhosting:\n- '*'\n- remote.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"file\" provisioner to upload artifacts and scripts and \"remote-exec\" to execute scripts'\n- technology: ansible\ncomponent: service.application\nartifact: zip.archive\nhosting:\n- gcp.appengine\nweight: 0\nreason: Custom module with imperative parts, while Terraform provides a declarative module.\ndetails: '\"ansible.builtin.shell\", \"ansible.builtin.tempfile\", \"ansible.builtin.unarchive\", and \"ansible.builtin.copy\" tasks'\n- technology: terraform\ncomponent: service.application\nartifact: zip.archive\nhosting:\n- gcp.appengine\nweight: 1\nreason: Terraform provides a declarative module.\ndetails: '\"google_app_engine_standard_app_version\", \"google_project_iam_member\", \"google_service_account\", \"google_storage_bucket\", and \"google_storage_bucket_object\" resources'\n- technology: ansible\ncomponent: software.application\nartifact: apt.package\nhosting:\n- '*'\n- local.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\ndetails: '\"ansible.builtin.shell\", \"ansible.builtin.apt_key\", \"ansible.builtin.apt_repository\", \"ansible.builtin.apt\", and \"ansible.builtin.copy\", tasks with \"when\" statements'\n- technology: terraform\ncomponent: software.application\nartifact: apt.package\nhosting:\n- '*'\n- local.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts'\n- technology: ansible\ncomponent: software.application\nartifact: apt.package\nhosting:\n- '*'\n- remote.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\ndetails: '\"ansible.builtin.shell\", \"ansible.builtin.apt_key\", \"ansible.builtin.apt_repository\", \"ansible.builtin.apt\", and \"ansible.builtin.copy\", tasks with \"when\" statements'\n- technology: terraform\ncomponent: software.application\nartifact: apt.package\nhosting:\n- '*'\n- remote.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"file\" provisioner to upload scripts and \"remote-exec\" to execute scripts'\n- technology: ansible\ncomponent: software.application\nartifact: tar.archive\nhosting:\n- '*'\n- local.machine\nweight: 0.5\nreason: While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application.\ndetails: '\"ansible.builtin.apt\", \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", and \"ansible.builtin.shell\" tasks with \"when\" statements'\n- technology: terraform\ncomponent: software.application\nartifact: tar.archive\nhosting:\n- '*'\n- local.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts'\n- technology: ansible\ncomponent: software.application\nartifact: tar.archive\nhosting:\n- '*'\n- remote.machine\nweight: 0.5\nreason: While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., \"service.application\".\ndetails: '\"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", and \"ansible.builtin.shell\" tasks with \"when\" statements'\n- technology: terraform\ncomponent: software.application\nartifact: tar.archive\nhosting:\n- '*'\n- remote.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"file\" provisioner to upload artifacts and scripts and \"remote-exec\" to execute scripts'\n- technology: ansible\ncomponent: software.application\nartifact: zip.archive\nhosting:\n- '*'\n- local.machine\nweight: 0.5\nreason: While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application.\ndetails: '\"ansible.builtin.apt\", \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", and \"ansible.builtin.shell\" tasks with \"when\" statements'\n- technology: terraform\ncomponent: software.application\nartifact: zip.archive\nhosting:\n- '*'\n- local.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts.'\n- technology: ansible\ncomponent: software.application\nartifact: zip.archive\nhosting:\n- '*'\n- remote.machine\nweight: 0.5\nreason: While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application.\ndetails: '\"ansible.builtin.apt\", \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", and \"ansible.builtin.shell\" tasks with \"when\" statements'\n- technology: terraform\ncomponent: software.application\nartifact: zip.archive\nhosting:\n- '*'\n- remote.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"file\" provisioner to upload artifacts and scripts and \"remote-exec\" to execute scripts'\n- technology: ansible\ncomponent: virtual.machine\nartifact: machine.image\nhosting:\n- openstack.provider\nweight: 0.5\nreason: Terraform is more specialized.\ndetails: '\"openstack.cloud.security_group\", \"openstack.cloud.security_group_rule\" and \"openstack.cloud.server\" tasks'\n- technology: terraform\ncomponent: virtual.machine\nartifact: machine.image\nhosting:\n- openstack.provider\nweight: 1\nreason: Terraform provides a declarative module.\ndetails: '\"openstack_compute_instance_v2\", \"openstack_networking_secgroup_rule_v2\" and \"openstack_networking_secgroup_v2\" resources'\n
","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#reference-implementation","title":"Reference Implementation","text":"

We provide a reference implementation for this specification as part of OpenTOSCA Vintner. OpenTOSCA Vintner is a TOSCA preprocessing and management layer. The project is open-source, licensed under Apache-2.0, and publicly available at GitHub.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/specification/","title":"Specification","text":"","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#variability4tosca-specification-10-release-candidate","title":"Variability4TOSCA Specification 1.0 Release Candidate","text":"

This document specifies Variability4TOSCA which extends TOSCA Simple Profile in YAML Version 1.3 with conditional elements to model deployment variability. This includes conditional node templates, relationship templates, properties, artifacts, groups, policies, types, inputs, and imports. In the following, we discuss the differences and the processes to resolve the variability. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#terminology","title":"Terminology","text":"

We quickly introduce some terminologies.

  • A condition holds if the condition evaluates to true.
  • An element is present if all assigned conditions hold.
  • An element is absent if not all assigned conditions hold.
  • A variability resolver is a TOSCA processor that resolves the variability of a variable service template, thus, derives a variability-resolved service template
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#service-template","title":"Service Template","text":"

A service template must have the TOSCA definitions version tosca_variability_1_0. Such a service template is also called variable service template.

Keyname Mandatory Type Description tosca_definitions_version true String The required TOSCA definitions version. Must be tosca_variability_1_0.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#topology-template","title":"Topology Template","text":"

A topology template additionally contains a variability definition. Such a topology template is also called variable topology template.

Keyname Mandatory Type Description variability true VariabilityDefinition A required object for variability inputs, variability presets, and variability expressions.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#variability-definition","title":"Variability Definition","text":"

A variability definition defines variability inputs, variability presets, variability expressions, and variability options.

Keyname Mandatory Type Description inputs false Map(String, VariabilityInput) An optional map of input parameters used inside variability expressions. presets false Map(String, VariabilityPreset) An optional map of variability preset definitions. expressions false Map(String, VariabilityExpression) An optional map of variability expressions. constraints false List(LogicExpression) An optional list of constraints respected when resolving variability. options false Map(String, Boolean) An optional map of variability options. type_specific_conditions false String | List(TypeSpecificDefaultCondition) An optional definition of type-specific default conditions. If string, then treated as relative file to import (default: \"./type-specific-conditions.yaml\") technology_rules false String | List(TechnologyRule) An optional definition of technology assignment rules. If string, then treated as relative file to import (default: [\"./rules.yaml\", \"./lib/rules.yaml\"]). plugins false PluginDefinition An optional definition of plugins.

The following non-normative and incomplete example contains a variability definition which declares the variability input mode and two variability presets dev and prod are defined which either assigns mode the value dev or prod. Furthermore, two variability conditions is_dev and is_prod which evaluate if mode equals dev or prod, respectively.

variability:\ninputs:\nmode:\ntype: string\npresets:\ndev:\nname: Development\ndescription: Deploy the application on a private cloud\ninputs:\nmode: dev\nprod:\nname: Production\ndescription: Deploy the application on a public cloud\ninputs:\nmode: prod\nexpressions:\nis_dev: { equal: [ { variability_input: mode }, dev ] }\nis_prod: { equal: [ { variability_input: mode }, prod ] }\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#variability-input","title":"Variability Input","text":"

A variability input is an input parameter which additionally has the following keywords.

Keyname Mandatory Type Description default_expression false ValueExpression A value expression as default. implies false String | List(String) Implies/ requires another variability input. excludes false String | List(String) Excludes another variability input. alternatives false List(String) Requires exactly one of the referenced variability input. choices false List(String) Requires none, one, or multiple of referenced variability input.

For example, the following variability input has a value expression as default value assigned.

inputs:\nmode:\ntype: string\ndefault_expression: <ValueExpression>\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#variability-options","title":"Variability Options","text":"

There are the following variability options. More specific options override wider set options. For example, the following options the mode strict is configured. This mode disables all default conditions and pruning. However, pruning of nodes is explicitly set by node_pruning, thus, nodes are pruned regardless of the set mode.

options: mode: manual\nnode_pruning: true\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#general-options","title":"General Options","text":"

The following options are general options.

Keyname Mandatory Type Default Description mode false manual | consistent-strict | consistent-loose | default | semantic-strict | semantic-loose manual Configure pruning mode.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#default-condition-options","title":"Default Condition Options","text":"

The following options are used to configure the default conditions of elements.

Keyname Mandatory Type Default Description default_condition false Boolean false Enable all default conditions (consistency and semantic). input_default_condition false Boolean false Enable default condition for inputs (consistency and semantic). input_default_consistency_condition false Boolean false Enable default consistency condition for inputs. input_default_semantic_condition false Boolean false Enable default semantic condition for inputs. node_default_condition false Boolean false Enable default condition for nodes (consistency and semantic). node_default_condition_mode false List(source | incoming | incomingnaive | host | artifact | artifactnaive, -) incoming-artifact Configure the default condition for nodes. node_default_consistency_condition false Boolean false Enable default consistency condition for nodes. node_default_semantic_condition false Boolean false Enable default semantic condition for nodes. output_default_condition false Boolean false Enable default condition for outputs (consistency and semantic). output_default_consistency_condition false Boolean false Enable default consistency condition for outputs. output_default_semantic_condition false Boolean false Enable default semantic condition for outputs. relation_default_condition false Boolean false Enable default condition for relations (consistency and semantic). relation_default_condition_mode false List(source | target, -) source-target Configure the default condition for relations. relation_default_consistency_condition false Boolean false Enable default semantic condition for relations. relation_default_semantic_condition false Boolean false Enable default consistency condition for relations. relation_default_implied false Boolean false Enable default implication for relations. Does not apply for hosting relations. policy_default_condition false Boolean false Enable default condition for policies (consistency and semantic). policy_default_consistency_condition false Boolean false Enable default consistency condition for policies. policy_default_semantic_condition false Boolean false Enable default semantic condition for policies. group_default_condition false Boolean false Enable default condition for groups (consistency and semantic). group_default_consistency_condition false Boolean false Enable default consistency condition for groups. group_default_semantic_condition false Boolean false Enable default semantic condition for groups. artifact_default_condition false Boolean false Enable default condition for artifacts (consistency and semantic). artifact_default_condition_mode false List(container | technology, -) container Configure the default condition for artifacts. artifact_default_consistency_condition false Boolean false Enable default consistency condition for artifacts. artifact_default_semantic_condition false Boolean false Enable default semantic condition for artifacts. property_default_condition false Boolean false Enable default condition for properties (consistency and semantic). property_default_consistency_condition false Boolean false Enable default consistency condition for properties. property_default_semantic_condition false Boolean false Enable default semantic condition for properties. type_default_condition false Boolean false Enable default condition for types (consistency and semantic). type_default_consistency_condition false Boolean false Enable default consistency condition for types. type_default_semantic_condition false Boolean false Enable default semantic condition for types. technology_default_condition false Boolean false Enable default condition for (deployment) technologies (consistency and semantic). technology_default_condition_mode false List(container | other, -) container-other Configure the default condition for (deployment) technologies. technology_default_consistency_condition false Boolean false Enable default consistency condition for technologies. technology_default_semantic_condition false Boolean false Enable default semantic condition for technologies.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#pruning-options","title":"Pruning Options","text":"

The following options are used to configure the pruning of elements.

Keyname Mandatory Type Default Description pruning false Boolean false Enable pruning of all elements (consistency and semantic). input_pruning false Boolean false Enable pruning of inputs (consistency and semantic). input_consistency_pruning false Boolean false Enable consistency pruning of inputs. input_semantic_pruning false Boolean false Enable semantic pruning of inputs. node_pruning false Boolean false Enable pruning of nodes (consistency and semantic). node_consistency_pruning false Boolean false Enable consistency pruning of nodes. node_semantic_pruning false Boolean false Enable semantic pruning of nodes. output_pruning false Boolean false Enable pruning of output (consistency and semantic). output_consistency_pruning false Boolean false Enable consistency pruning of output. output_semantic_pruning false Boolean false Enable semantic pruning of output. relation_pruning false Boolean false Enable pruning of relations (consistency and semantic). relation_consistency_pruning false Boolean false Enable consistency pruning of relations. relation_semantic_pruning false Boolean false Enable semantic pruning of relations. policy_pruning false Boolean false Enable pruning of policies (consistency and semantic). policy_consistency_pruning false Boolean false Enable consistency pruning of policies. policy_semantic_pruning false Boolean false Enable semantic pruning of policies. group_pruning false Boolean false Enable pruning of groups (consistency and semantic). group_consistency_pruning false Boolean false Enable consistency pruning of groups. group_semantic_pruning false Boolean false Enable semantic pruning of groups. artifact_pruning false Boolean false Enable pruning of artifacts (consistency and semantic). artifact_consistency_pruning false Boolean false Enable consistency pruning of artifacts. artifact_semantic_pruning false Boolean false Enable semantic pruning of artifacts. property_pruning false Boolean false Enable pruning of properties (consistency and semantic). property_consistency_pruning false Boolean false Enable consistency pruning of properties. property_semantic_pruning false Boolean false Enable semantic pruning of properties. type_pruning false Boolean false Enable pruning of types (consistency and semantic). type_consistency_pruning false Boolean false Enable consistency pruning of types. type_semantic_pruning false Boolean false Enable semantic pruning of types. technology_pruning false Boolean false Enable pruning of (deployment) technologies (consistency and semantic). technology_consistency_pruning false Boolean false Enable consistency pruning of technologies. technology_semantic_pruning false Boolean false Enable semantic pruning of technologies.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#checks-options","title":"Checks Options","text":"

The following options are used to configure checks.

Keyname Mandatory Type Default Description checks false Boolean true Enable all checks. consistency_checks false Boolean true Enable all consistency checks. semantic_checks false Boolean true Enable all semantic checks. relation_source_check false Boolean true Enable the consistency check regarding present relation sources. relation_target_check false Boolean true Enable the consistency check regarding present relation targets. ambiguous_hosting_check false Boolean true Enable the consistency check regarding at maximum one present hosting relation. missing_artifact_container_check false Boolean true Enable the consistency check regarding present container of artifacts. ambiguous_artifact_check false Boolean true Enable the consistency check regarding ambiguous present artifacts. missing_property_container_check false Boolean true Enable the consistency check regarding present container of properties. ambiguous_property_check false Boolean true Enable the consistency check regarding ambiguous present properties. missing_type_container_check false Boolean true Enable the consistency check regarding present containers of types. ambiguous_type_check false Boolean ture Enable the consistency check regarding exactly one present type per container. expected_hosting_check false Boolean true Enable the semantic check regarding an expected present hosting relation. expected_incoming_relation_check false Boolean true Enable the semantic check regarding an expected incoming relation. expected_artifact_check false Boolean true Enable the semantic check regarding an expected artifact. expected_technology_check false Boolean true Enable the consistency check regarding present technologies. missing_technology_container_check false Boolean true Enable the consistency check regarding present container of technologies. ambiguous_technology_check false Boolean true Enable the consistency check regarding ambiguous present technologies. ambiguous_relation_check false Boolean true Enable the consistency check regarding ambiguous present relations. ambiguous_input_check false Boolean true Enable the consistency check regarding ambiguous present inputs. ambiguous_output_check false Boolean true Enable the consistency check regarding ambiguous present outputs. unconsumed_input_check false Boolean true Enable the semantic check regarding not consumed inputs. unproduced_output_check false Boolean true Enable the consistency check regarding not produced outputs.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#solver-options","title":"Solver Options","text":"

The following options are used to configure the solver.

Keyname Mandatory Type Default Description optimization_topology false Boolean | min | max false Configure optimization considering topology. optimization_topology_unique false Boolean true Enable check for unique results considering topology. optimization_topology_mode false count | weight weight Configure optimization mode considering topology. optimization_technologies false Boolean | min | max false Enable optimization considering technologies. optimization_technologies_unique false Boolean false Enable check for unique results considering technologies. optimization_technologies_mode false count | weight | weight-count count Configure optimization mode considering technologies.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#normalization-options","title":"Normalization Options","text":"

The following options are used to configure the normalizer.

Keyname Mandatory Type Default Description technology_required false Boolean false Enable if a technology is required by default for a node.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#enricher-options","title":"Enricher Options","text":"

The following options are used to configure the enricher.

Keyname Mandatory Type Default Description enrich_input_condition false Boolean true Enable if a condition should be enriched to an element considering a variability input having the element id as name. enrich_technologies false Boolean false Enable if technologies are enriched. enrich_implementations false Boolean false Enable if implementations are enriched.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#constraints-options","title":"Constraints Options","text":"

This is an experimental feature.

The following options are used to configure constraints.

Keyname Mandatory Type Default Description constraints false Boolean false Enable all constraints. relation_source_constraint false Boolean false Enable the constraint regarding present relation sources. relation_target_constraint false Boolean false Enable the constraint regarding present relation targets. artifact_container_constraint false Boolean false Enable the constraint regarding present container of artifacts. property_container_constraint false Boolean false Enable the constraint regarding present container of properties. type_container_constraint false Boolean false Enable the constraint regarding present containers of types. hosting_stack_constraint false Boolean false Enable the constraint regarding present hosting stack. technology_constraint false Boolean false Enable the constraint regarding technologies. unique_property_constraint false Boolean false Enable the constraint regarding unique property names. unique_artifact_constraint false Boolean false Enable the constraint regarding unique artifact names. unique_input_constraint false Boolean false Enable the constraint regarding unique deployment input names. unique_output_constraint false Boolean false Enable the constraint regarding unique deployment output names. required_artifact_constraint false Boolean false Enable the constraint regarding required artifact. required_incoming_relation_constraint false Boolean false Enable the constraint regarding required incoming relation.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#pruning-modes","title":"Pruning Modes","text":"

There are several predefined pruning modes which provide different useful combinations of default conditions and the pruning of elements that can be directly used.

  • manual: no default or pruning conditions are enabled at all
  • consistent-strict: all default consistency conditions are enabled
  • consitent-loose: consistency pruning is enabled
  • default: all default conditions are enabled (consistency and semantic)
  • semantic-strict: consistency pruning is enabled and semantic defaults
  • semantic-loose: pruning is enabled everywhere (consistency and semantic)

Note, pruning modes do not consider input and output pruning in tosca_variability_1_0_rc_2 but in tosca_variability_1_0_rc_3.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#rc-v2","title":"RC v2","text":"

tosca_variability_1_0_rc_2 has the following default values.

mode: semantic-loose\nnode_default_condition_mode: incomingnaive-artifact-host\noptimization_topology: min\noptimization_topology_unique: true\noptimization_technologies: max\noptimization_technologies_mode: weight-count\ntechnology_constraint: true\nhosting_stack_constraint: true\nrelation_default_implied: true\ntechnology_required: false\nunconsumed_input_check: false\nunproduced_output_check: false\nenrich_technologies: true\nenrich_implementations: true\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#rc-v3","title":"RC v3","text":"

tosca_variability_1_0_rc_3 has the following default values. Also, pruning modes consider input and output pruning.

mode: semantic-loose\nnode_default_condition_mode: incomingnaive-artifact-host\noptimization_topology: min\noptimization_topology_unique: true\noptimization_technologies: max\noptimization_technologies_mode: weight-count\noptimization_technologies_unique: false\ntechnology_constraint: true\nhosting_stack_constraint: true\nunique_property_constraint: true\nunique_artifact_constraint: true\nunique_input_constraint: true\nunique_output_constraint: true\nrequired_artifact_constraint: true\nrelation_default_implied: true\ntechnology_required: true\nchecks: false\nenrich_technologies: true\nenrich_implementations: true\nartifact_default_condition_mode: container-managed\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#default-conditions","title":"Default Conditions","text":"

There are element-generic default conditions and type-specific default conditions. Element-generic default conditions are generic default conditions defined per element. However, type-specific default conditions are defined per type, e.g., node type, and, thus, override element-generic default conditions.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#element-generic-default-conditions","title":"Element-Generic Default Conditions","text":"

The following element-generic default conditions can be assigned to elements.

Element Consistency Semantic Default Conditions Node with Incoming Relations (incoming) false true Check if any incoming relation is present. Node with Artifacts (artifact) false true Check if any artifact is present. Property true false Check if the container, e.g., node template or policy, of the property is present. Input false true Check if the input is consumed. Output true false Check if the output is produced. Relation true false Check if the source and target of the relation is present. Policy false true Check if the policy has any targets which are present. Group false true Check if the group has any members which are present. Artifact (container) true false Check if the node template of the artifact is present. Technology (container) true false Check if the node template of the technology is present. Technology (other) true false Check if no other technology of the node template is present. Root true true The default condition of element always holds.

Thereby, we define a consistency condition a condition which targets the consistency of the metamodel, thus, ensuring that the metamodel can be correctly parsed, e.g., a property must have a container. In contrast, a semantic condition targets semantic aspect of elements or the type system, e.g., a node without incoming relations is not used and can be removed.

Depending on the context, other default conditions are more applicable. The following default conditions can be chosen instead of the ones introduced above.

Element Consistency Semantic Default Conditions Node with Incoming Relations (incomingnaive) false true Check if any incoming relation is present using has_incoming_relation_naive. Node with Incoming Relations (source) false true Check if any source of any incoming relation is present. Node with Outgoing Relations (outgoing) false true Check if any outgoing relation is present. Node with Outgoing Relations (outgoingnaive) false true Check if any outgoing relation is present using has_outgoing_relation_naive. Node with Host (host) false true Check if any host is present. Node with Artifact (artifactnaive) false true Check if any artifact is present using has_artifact_naive. Relation (source) true false Check if the source of the relation is present. Relation (target) true false Check if the target of the relation is present. Artifact (managed) false true Check if the artifact is managed by any technology.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#type-specific-default-conditions","title":"Type-Specific Default Conditions","text":"

Conditional types conflict with this feature!

Type-specific default conditions can be defined to override element-generic default conditions for specific type. A type-specific default condition is defined as follows and is supported for nodes, relations, properties, artifact, groups, and policies.

Keyname Mandatory Type Default Description conditions true VariabilityCondition | List(VariabilityCondition) A variability condition. If a list is given, then the conditions are combined using the and operation. consistency false Boolean false Configures the condition to be a consistency condition. semantic false Boolean true Configures the condition to be a semantic condition.

For example, the node type scenario.monitor defines a type-specific semantic default condition checking for the presence of its host.

type_specific_conditions:\nnode_types:\nscenario.monitor:\nconditions: {host_presence: SELF}\nsemantic: true\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#technology-rules","title":"Technology Rules","text":"

Conditional types conflict with this feature!

Technology rules can be defined to automatically select a deployment technology for a component. A technology rule is defined as follows.

Keyname Mandatory Type Description technology true String The name of the deployment technology. component true String The type of the component to which the technology can be assigned. hosting false List(String) The type of the host of the component which the technology requires. If list, then refers to the hosting stack. conditions false VariabilityCondition | List(VariabilityCondition) The conditions under which a technology can be assigned to a component. weight false Number The weight which is minimized (default is 1). assign false String Configure the node type that is assigned (default: ${current_type}.${technology_name}.${host_type_prefix}).

For example, the node type application can be deployed using the deployment technology terraform if the host is of type terraform_host.

technology_rules:\nterraform:\n- component: application\nhosting: terraform_host\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#variability-preset","title":"Variability Preset","text":"

A variability preset predefines values for variability inputs that might be used when resolving variability.

Keyname Mandatory Type Description name false String An optional name of the variability preset. description false String An optional description for the variability preset. inputs true Map(String, InputParameterAssignment) A required map of input parameter assignments.

For example, the following variability preset dev set the values of the two variability inputs mode and another_input but not of another_another_input.

variability:\ninputs:\nmode:\ntype: string\nanother_input: type: string\nanother_another_input:\ntype: string\npresets:\ndev:\nname: Development\ndescription: Deploy the application on a private cloud\ninputs:\nmode: dev\nanother_input: another_value\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#variability-expression","title":"Variability Expression","text":"

A variability expression is an expression which consists of operators and functions which are listed below. For example, the following expression returns the total amount of costs. This result might be used inside a variability condition to ensure that the deployment costs are within a specific budget.

topology_template:\nvariability: expressions:\nmy_expression: {add: [{variability_input: costs_offering_a}, {variability_input: costs_offering_b}]}\n

There are different kinds of variability expressions, as displayed in Figure 1. Value expressions return any kind of value and logic expressions return Booleans.

Figure 1: Different variability expressions types","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#variability-condition","title":"Variability Condition","text":"

A variability condition is a logic expression targeting the presence of an element, as displayed in Figure 1. Allowed operators and functions are listed below. For example, the following variability condition is_prod evaluates to true if the variability input mode equals prod.

topology_template: variability:\ninputs: mode: type: string\nexpressions:\nis_prod: {equal: [{variability_input: mode}, prod]}\nnode_template:\nmy_prod_node:\ntype: my.prod.node\nconditions: {logic_expression: is_prod}\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#node-template","title":"Node Template","text":"

A node template is a conditional element, thus, variability conditions and other options can be assigned. These conditions must hold otherwise the respective node template is not present. A node template can also hold conditional types, artifact, and properties.

Keyname Mandatory Type Description type true String | List(Map(String, TypeAssignment)) The type or a list of conditional type assignments. conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. artifacts false Map(String, ArtifactTemplate) | List(Map(String, ArtifactTemplate){single}) An optional map of artifact or a list of artifact maps. If a list is given, then each artifact map must contain only one artifact. properties false Map(String, PropertyAssignment) | List(Map(String, PropertyAssignment){single}) An optional map of property assignments or a list of property assignments maps. If a list is given, then each property assignment map must contain only one property. default_condition false Boolean Enable the default condition for this element. This overrides the variability options of the variable topology template. default_consistency_condition false Boolean Enable the default consistency condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_semantic_condition false Boolean Enable the default semantic condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_condition_mode false source | relation | host | source-host | relation-host Configure the default condition for this element. persistent false Boolean Configure if node is persistent, e.g., always consumed by an end user from the browser. This will prevent unexpected pruning by setting the pruning option to false. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. weight false Boolean | Non-Negative Number Configure the weight of this element used during optimization (default is 1). implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target. technology false String | List(Map(String, TechnologyTemplate){single}) An optional conditional assignment of deployment technologies.

For example, the following node template has a variability condition assigned.

prod_database:\ntype: my.prod.db\nconditions: {logic_expression: is_prod}\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#technology-template","title":"Technology Template","text":"

A technology template is a conditional elements, thus, variability conditions and other options can be assigned. These conditions must hold otherwise the respective technology template is not present.

Keyname Mandatory Type Description conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. default_alternative false Boolean Declare the technology as default. This overwrites assigned conditions. There must be only one default assignment. default_condition false Boolean Enable the default condition for this element. This overrides the variability options of the variable topology template. default_condition_mode false container | other | container-other Configure the default condition for this element. default_consistency_condition false Boolean Enable the default consistency condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_semantic_condition false Boolean Enable the default semantic condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. weight false Boolean | Non-Negative Number Configure the weight of this element used during optimization (default is 1). assign false String Configure the node type that is assigned (default: ${current_type}.${technology_name}.${host_type_prefix}).","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#type-assignment","title":"Type Assignment","text":"

A type is a conditional element, thus, variability conditions and further options can be assigned to a type assignment. These conditions must hold otherwise the respective relationship is not present.

Keyname Mandatory Type Description conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. default_alternative false Boolean Declare the type as default. This overwrites assigned conditions. There must be only one default assignment. default_condition false Boolean Enable the default condition for this element. This overrides the variability options of the variable topology template. default_consistency_condition false Boolean Enable the default consistency condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_semantic_condition false Boolean Enable the default semantic condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target.

For example, the following node template database has a conditional type switching between a development and production database.

database:\ntype:\n- my.dev.db:\nconditions: <VariabilityCondition>\n- my.prod.db:\nconditions: <VariabilityCondition>\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#requirement-assignment","title":"Requirement Assignment","text":"

A requirement assignment is a conditional element, thus, variability conditions and other options can be assigned. These conditions must hold otherwise the respective relationship is not present.

Keyname Mandatory Type Description conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. default_alternative false Boolean Declare the requirement assignment as default. This overwrites assigned conditions. There must be only one default assignment. default_condition false Boolean Enable the default condition for this element. This overrides the variability options of the variable topology template. default_consistency_condition false Boolean Enable the default consistency condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_semantic_condition false Boolean Enable the default semantic condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_condition_mode false source-target | source | target Configure the default condition for this element. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target. implied false Boolean | SOURCE | TARGET | CONTAINER Enables that the manual conditions are used to imply the element when the source/ target (depending on the configuration) is present. This overrides the variability options of the variable topology template.

For example, the following requirement assignment host has a variability condition assigned.

requirements:\n- host:\nnode: dev_runtime\nconditions: {logic_expression: is_dev}\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#relationship-templates","title":"Relationship Templates","text":"

A relationship template can contain conditional properties. Note, the presence of a relationship template is bound to the presence of the requirement assignment in which it is used. A relationship template can also hold conditional properties.

Keyname Mandatory Type Description type true String | List(Map(String, TypeAssignment)) The type or a list of conditional type assignments. properties false Map(String, PropertyAssignment) | List(Map(String, PropertyAssignment){single}) An optional map of property assignments or a list of property assignments maps. If a list is given, then each property assignment map must contain only one property.

For example, the following relationship templates contains conditional properties.

relationship_templates:\nmy_relationship:\ntype: my.relationship\nproperties:\n-   property_one:\nvalue: value_one\nconditions: <VariabilityCondition>\n-   property_two:\nvalue: value_two\nconditions: <VariabilityCondition>\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#property-assignment","title":"Property Assignment","text":"

A property is a conditional element, thus, variability conditions and other options can be assigned. These conditions must hold otherwise the respective relationship is not present. However, this only applies if the property assignment is wrapped as the following object and if it is used in a list.

Keyname Mandatory Type Description value false (Original) PropertyAssignment The value of the property. expression false ValueExpression A value expressions which is evaluated and used as value. conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. default_alternative false Boolean Declare the value as default. This overwrites assigned conditions. There must be only one default assignment. default_condition false Boolean Enable the default condition for this element. This overrides the variability options of the variable topology template. default_consistency_condition false Boolean Enable the default consistency condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_semantic_condition false Boolean Enable the default semantic condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target.

These keywords are used to detect if a property assignment is wrapped. Thus, if any of these keywords must be used as value for property, then this property must be wrapped. For example, the property key_one has the value {value: the_value} and, thus, must be wrapped.

properties:\n- key_one:\nvalue: {value: the_value}\n- conditional_property:\nvalue: conditional_value\nconditions: <VariabilityCondition>\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#group-template","title":"Group Template","text":"

A group is conditional element, thus, variability conditions and other options can be assigned. Depending on the group type the conditions are either assigned to the group itself or to the group members. A group can also hold conditional types and properties.

In general, the conditions are assigned to the group itself. These conditions must hold otherwise the respective group is not present. We refer to such a group also as conditional group.

However, if the group is derived from variability.groups.ConditionalMembers then the conditions are assigned to the group members. These conditions must hold otherwise the respective group members are not present in the variability-resolved service template. Furthermore, group elements can be node templates and requirement assignments. We refer to such a group also as variability group. A variability group is always absent and, thus, always removed when resolving variability.

Keyname Mandatory Type Description type true String | List(Map(String, TypeAssignment)) The type or a list of conditional type assignments. members false List(String | Tuple(String, String) | Tuple(String, Number)) An optional list of node templates names or requirement assignment names/ index of a node template. conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. properties false Map(String, PropertyAssignment) | List(Map(String, PropertyAssignment){single}) An optional map of property assignments or a list of property assignments maps. If a list is given, then each property assignment map must contain only one property. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target.

For example, the following group example_group is a conditional group which is only present if assigned conditions hold.

conditional_group:\ntype: tosca.groups.Root\nmembers: [prod_database, [application, prod_connects_to]]\nconditions: {logic_expression: is_prod}\n

However, the following group example_group assigns its assigned conditions to its members, i.e., the node template prod_database and the requirement assignment prod_connects_to of the node template application. In contrast to the previous example this group is not derived from variability.groups.ConditionalMembers. Thus, the presence of the node template prod_database depends on condition is_prod.

variability_group:\ntype: variability.groups.ConditionalMembers\nmembers: [prod_database, [application, prod_connects_to]]\nconditions: {logic_expression: is_prod}\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#policy-template","title":"Policy Template","text":"

A policy template is a conditional element, thus, variability conditions and other options can be assigned. These conditions must hold otherwise the respective policy is not present. A policy can also hold conditional types and properties.

Keyname Mandatory Type Description type true String | List(Map(String, TypeAssignment)) The type or a list of conditional type assignments. conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. properties false Map(String, PropertyAssignment) | List(Map(String, PropertyAssignment){single}) An optional map of property assignments or a list of property assignments maps. If a list is given, then each property assignment map must contain only one property. default_condition false Boolean Enable the default condition for this element. This overrides the variability options of the variable topology template. default_consistency_condition false Boolean Enable the default consistency condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_semantic_condition false Boolean Enable the default semantic condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target.

For example, the following policy template anticollocation has the variability condition is_prod assigned. Depending on the presence of this policy, the node templates wordpress and mysql must not be hosted on the same server, e.g., during production. For more information about this example, take a look in the TOSCA Simple Profile in YAML Version 1.3.

node_templates:\nwordpress:\ntype: tosca.nodes.WebServer\nrequirements:\n- host:\nnode_filter:\ncapabilities:\n- os:\nproperties:\n- architecture: x86_64\n- type: linux\nmysql:\ntype: tosca.nodes.DBMS.MySQL\nrequirements:\n- host:\nnode: tosca.nodes.Compute\nnode_filter:\ncapabilities:\n- os:\nproperties:\n- architecture: x86_64\n- type: linux\npolicies:\n- anticollocation:\ntype: tosca.policies.AntiCollocation\ntargets: [wordpress_server, mysql]\nconditions: {logic_expression: is_prod}\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#artifact-template","title":"Artifact Template","text":"

A (deployment) artifact is a conditional element, thus, variability conditions and other options can be assigned. These conditions must hold otherwise the respective artifact is not present. An artifact can also hold conditional properties.

Keyname Mandatory Type Description type true String | List(Map(String, TypeAssignment)) The type or a list of conditional type assignments. conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. default_alternative false Boolean Declare the artifact as default. This overwrites assigned conditions. There must be only one default artifact. properties false Map(String, PropertyAssignment) | List(Map(String, PropertyAssignment){single}) An optional map of property assignments or a list of property assignments maps. If a list is given, then each property assignment map must contain only one property. default_condition false Boolean Enable the default condition for this element. This overrides the variability options of the variable topology template. default_condition_mode false List(container | technology, -) Configure the default condition for this element. default_consistency_condition false Boolean Enable the default consistency condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_semantic_condition false Boolean Enable the default semantic condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target.

For example, the following node template my_node has two artifacts artifact_a and artifact_b assigned which are both conditional.

my_node:\ntype: my.node\nartifacts:\n- artifact_a:\nconditions: <VariabilityCondition>\n- artifact_b:\nconditions: <VariabilityCondition>\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#topology-template-input","title":"Topology Template Input","text":"

A topology template input is a conditional element, thus, variability conditions and other options can be assigned. These conditions must hold otherwise the respective input is not present.

Keyname Mandatory Type Description conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target. default_alternative false Boolean Declare the input as default. This overwrites assigned conditions. There must be only one default assignment. default_condition false Boolean Enable the default condition for this element. This overrides the variability options of the variable topology template. default_consistency_condition false Boolean Enable the default consistency condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_semantic_condition false Boolean Enable the default semantic condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_condition_mode false source | relation | host | source-host | relation-host Configure the default condition for this element. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template.

For example, the topology template input has a variability condition assigned.

inputs:\nssh_key_file:\ntype: string\nconditions: <VariabilityCondition>\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#topology-template-output","title":"Topology Template Output","text":"

A topology template output is a conditional element, thus, variability conditions and other options can be assigned. These conditions must hold otherwise the respective output is not present.

Keyname Mandatory Type Description conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target. default_alternative false Boolean Declare the output as default. This overwrites assigned conditions. There must be only one default assignment. default_condition false Boolean Enable the default condition for this element. This overrides the variability options of the variable topology template. default_consistency_condition false Boolean Enable the default consistency condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_semantic_condition false Boolean Enable the default semantic condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_condition_mode false source | relation | host | source-host | relation-host Configure the default condition for this element. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template.

For example, the topology template output has a variability condition assigned.

outputs:\nvm_address:\ntype: string\nconditions: <VariabilityCondition>\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#import-definition","title":"Import Definition","text":"

An import definition is a conditional element, thus, variability conditions and other options can be assigned. These conditions must hold otherwise the respective import is not present.

Keyname Mandatory Type Description conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target.

For example, the following import has a variability condition assigned.

import:\n- file: some_file\nconditions: <VariabilityCondition>\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#normative-group-types","title":"Normative Group Types","text":"

There are two normative group types variability.groups.Root and variability.groups.ConditionalMembers. The first group type is the root group every other variability-related group, such as variability.groups.ConditionalMembers should derive from.

variability.groups.Root:\nderived_from: tosca.groups.Root\n

The second group type should be used for variability groups.

variability.groups.ConditionalMembers:\nderived_from: variability.groups.Root\nconditions: VariabilityCondition | List(VariabilityCondition)    
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#normative-interface-types","title":"Normative Interface Types","text":"

The following normative interfaces define a management interface for nodes and relationships. Currently, no management operations are defined. The definition is intended to be extended in other specifications, e.g., for building deployment artifacts after resolving variability.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#variability-management-interface-for-nodes","title":"Variability Management Interface for Nodes","text":"

The following interface manages the variability-related operations of nodes.

tosca.interfaces.node.management.Variability:\nderived_from: tosca.interfaces.Root\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#variability-management-interface-for-relationships","title":"Variability Management Interface for Relationships","text":"

The following interface manages the variability-related operations of relationships.

tosca.interfaces.relationship.management.Variability:\nderived_from: tosca.interfaces.Root\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#intrinsic-functions","title":"Intrinsic Functions","text":"

The following intrinsic functions can be used inside a variability expression.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#logical-operators","title":"Logical Operators","text":"

The following logical operators can be used inside a logic expression.

Keyname Input Output Description and List(BooleanExpression) Boolean Evaluates if all values are true. or List(BooleanExpression) Boolean Evaluates if at least one value is true. not BooleanExpression Boolean Negates the given value. xor List(BooleanExpression) Boolean Evaluates if an odd number of arguments is true. exo List(BooleanExpression) Boolean Evaluates if exactly one value is true. implies Tuple(BooleanExpression, BooleanExpression) Boolean Evaluates if first value implies the second value. amo List(BooleanExpression) Boolean Evaluates if at most one value is true.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#arithmetic-operators","title":"Arithmetic Operators","text":"

The following arithmetic operators can be used inside a variability expression.

Keyname Input Output Description add List(NumericExpression) Numeric Sums up given values. sub List(NumericExpression) Numeric Subtracts values from the first one. mul List(NumericExpression) Numeric Multiplies given values. div List(NumericExpression) Numeric Divides values from the first one. mod Tuple(NumericExpression, NumericExpression) Numeric Divides values and returns the remainder.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#presence-operators","title":"Presence Operators","text":"

The following presence operators can be used inside a logic expression.

Keyname Input Output Description variability_input String Any Returns the value of a variability input. logic_expression String Boolean Returns the value of the Logic Expression. value_expression String Any Returns the value of the Value Expression. node_presence Node: String | SELF | CONTAINER | SOURCE | TARGET Boolean Returns if node is present. host_presence Node: String | SELF | CONTAINER | SOURCE | TARGET Boolean Returns if any host of the node is present. Note, an error will be thrown later when consistency is checked if there are multiple hosting relations present. has_source Node: String | SELF | CONTAINER | SOURCE | TARGET Boolean Returns if any source of any incoming relation of the node template is present. has_incoming_relation Node: String | SELF | CONTAINER | SOURCE | TARGET Boolean Returns if the node template is target of at least one present incoming relationship. has_incoming_relation_naive Node: String | SELF | CONTAINER | SOURCE | TARGET Boolean Returns if the node template is target of at least one present incoming relationship in a naive way that will result in a circle considering the default condition of relations. has_outgoing_relation Node: String | SELF | CONTAINER | SOURCE | TARGET Boolean Returns if the node template is source of at least one present outgoing relationship. has_outgoing_relation_naive Node: String | SELF | CONTAINER | SOURCE | TARGET Boolean Returns if the node template is source of at least one present outgoing relationship in a naive way that will result in a circle considering the default condition of relations. has_artifact Node: String | SELF | CONTAINER | SOURCE | TARGET Boolean Returns if any artifact of the node template is present. has_artifact_naive Node: String | SELF | CONTAINER | SOURCE | TARGET Boolean Returns if any artifact of the node template is present in a naive way that will result in a circle considering the default condition of artifacts. relation_presence Tuple(Node: String | SELF | CONTAINER, Relation: String | Number) Boolean Returns if relation is present. artifact_presence Tuple(Node: String | SELF | CONTAINER, Artifact: String | Number) Boolean Returns if artifact is present. is_managed SELF | Tuple(Node: String | SELF | CONTAINER, Artifact: String | Number) Boolean Returns if artifact is managed by a deployment technology. policy_presence Policy: String | Number Boolean Returns if policy is present. group_presence Group: String Boolean Returns if group is present. input_presence Input: String | Number Boolean Returns if input is present. is_consumed Input: String | Number Boolean Returns if input is consumed by a property. output_presence Output: String | Number Boolean Returns if output is present. is_produced Output: String | Number Boolean Returns if output is produced by a property. source_presence SELF | CONTAINER Boolean Returns if source node of relation is present. Can only be used inside a relation. Otherwise use node_presence. target_presence SELF | CONTAINER Boolean Returns if target node of relation is present. Can only be used inside a relation. Otherwise use node_presence. has_present_target Policy: String | Number | SELF | CONTAINER Boolean Returns if any target of the given policy is present. has_present_member Group: String | SELF | CONTAINER Boolean Returns if any member of the given group is present. node_type_presence Tuple(Node: String | SELF | CONTAINER | SOURCE | TARGET, Type: String | Number) Boolean Returns if type of node is present. relation_type_presence Triple(Node: String | SELF | CONTAINER, Relation: String | Number, Type: String | Number) Boolean Returns if type of relation is present. group_type_presence Tuple(Group: String | SELF | CONTAINER, Type: String | Number) Boolean Returns if type of group is present. policy_type_presence Tuple(Group: String | SELF | CONTAINER, Type: String | Number) Boolean Returns if type of policy is present. artifact_type_presence Tuple(Node: String | SELF | CONTAINER | SOURCE | TARGET, Type: String | Number) Boolean Returns if type of policy is present. node_property_presence Tuple(Node: String | SELF | CONTAINER | SOURCE | TARGET, Property: String | Number) Boolean Returns if property of node is present. relation_property_presence Tuple(Node: String | SELF | CONTAINER, Relation: String | Number, Property: String | Number) Boolean Returns if property of relation is present. group_property_presence Tuple(Group: String | SELF | CONTAINER, Property: String | Number) Boolean Returns if property of group is present. policy_property_presence Tuple(Policy: String | Number | SELF | CONTAINER |, Property: String | Number) Boolean Returns if property of policy is present. artifact_property_presence Tuple(Node: String | SELF | CONTAINER | SOURCE | TARGET, Artifact: String | Number, Property: String | Number) Boolean Returns if property of artifact is present. container_presence SELF | CONTAINER Boolean Returns if container is present. Can only be used inside a property or artifact. import_presence Import: Number Boolean Returns if import is present. technology_presence Tuple(Node: String, Technology: String | Number) Boolean Returns if technology of node is present.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#string-operators","title":"String Operators","text":"

The following string operators can be used inside a variability expression.

Keyname Input Output Description concat List(ValueExpression) String Concatenates the given values. join Tuple(List(ValueExpression), String) String Joins the given values using the provided delimiter. token Tuple(ValueExpression, String, Number) String Splits a given value by the provided delimiter and returns the element specified by the provided index.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#constraint-operators","title":"Constraint Operators","text":"

The following constraint operators can be used inside a variability expression.

Keyname Input Output Description equal List(ValueExpression) Boolean Evaluates if the given values are equal. greater Tuple(NumericExpression, NumericExpression) Boolean Evaluates if the first value is greater than the second value. greater_or_equal Tuple(NumericExpression, NumericExpression) Boolean Evaluates if the first value is greater or equal to the second value. less Tuple(NumericExpression, NumericExpression) Boolean Evaluates if the first value is less than the second value. less_or_equal Tuple(NumericExpression, NumericExpression) Boolean Evaluates if the first value is less or equal to the second value. in_range Tuple(NumericExpression, Tuple(NumericExpression, NumericExpression)) Boolean Evaluates if the value is in a given range. valid_values Tuple(ValueExpression, List(ValueExpression)) Boolean Evaluates if the value is element of the list. length Tuple(ValueExpression, NumericExpression) Boolean Evaluates if the value has a given length. min_length Tuple(ValueExpression, NumericExpression) Boolean Evaluates if the value has a minimum length. max_length Tuple(ValueExpression, NumericExpression) Boolean Evaluates if the value has a maximum length.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#analytical-operators","title":"Analytical Operators","text":"

The following analytical operators can be used inside a variability expression.

Keyname Input Output Description sum List(Number) Number Returns the sum of the given values. count List(Number) Number Returns the count of the given values. min List(Number) Number Returns the min of the given values. max List(Number) Number Returns the max of the given values. mean List(Number) Number Returns the mean of the given values. median List(Number) Number Returns the median of the given values. variance List(Number) Number Returns the variance of the given values. standard_deviation List(Number) Number Returns the standard deviation of the given values. linear_regression List(List(Tuple(Number, Number)), Number) Number Returns the prediction using linear regression. polynomial_regression List(List(Tuple(Number, Number)), Number, Number) Number Returns the prediction using polynomial regression. logarithmic_regression List(List(Tuple(Number, Number)), Number) Number Returns the prediction using logarithmic regression. exponential_regression List(List(Tuple(Number, Number)), Number) Number Returns the prediction using exponential regression.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#date-operators","title":"Date Operators","text":"

The following date operators can be used inside a variability expression.

Keyname Input Output Description weekday Empty List String Returns the current weekday. same Tuple(String | Number, String | Number) Boolean Returns if first date is the same date as the second. before Tuple(String | Number, String | Number) Boolean Returns if first date is before the second date. before_or_same Tuple(String | Number, String | Number) Boolean Returns if first date is before or same as the second date. after Tuple(String | Number, String | Number) Boolean Returns if first date is after the second date. after_or_same Tuple(String | Number, String | Number) Boolean Returns if first date is after or same as the second date. within Tuple(String | Number, Tuple(String | Number, String | Number)) Boolean Returns if given date is within the given dates.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#plugin-definition","title":"Plugin Definition","text":"

The following plugins can be defined.

Keyname Mandatory Type Description technology false List(String) An optional list of technology rule plugins. Strings are treated as relative imports. Plugins are also loaded from \"./plugins/technology\".","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#technology-plugin","title":"Technology Plugin","text":"

A technology plugin must export the following interface.

export type TechnologyPluginBuilder = {\nbuild(graph: Graph): TechnologyPlugin\n}\n
export type TechnologyPlugin = {\nassign: (node: Node) => {[technology: string]: TechnologyTemplate}[]\nimplement: (name: string, type: NodeType) => NodeTypeMap\n}\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#processing","title":"Processing","text":"

This section is outdated.

We describe on a high-level the steps to derive a variability-resolved service template from a variable service template.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#resolve-variability","title":"Resolve Variability","text":"

To resolve the variability in a variable service template, conduct the following steps:

  1. Ensure that TOSCA definitions version is tosca_variability_1_0.
  2. Retrieve variability inputs assignments.
  3. Check the presence of all elements.
  4. Remove all elements, e.g., node templates or artifacts, which are not present.
  5. Remove all group members which are not present from group template.
  6. Remove all policy targets which are not present from policy template.
  7. Remove all variability groups.
  8. Remove all non-standard elements, e.g., variability definition, variability groups, or conditions at node templates.
  9. Transform all lists introduced in this document, such as property lists, to maps as defined in TOSCA.
  10. Set the TOSCA definitions version to tosca_simple_yaml_1_3.
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#retrieve-variability-inputs-assignments","title":"Retrieve Variability Inputs Assignments","text":"

Variability inputs can be assigned either directly or indirectly using (possibly multiple) variability presets. Therefore, conduct the following steps:

  1. Merge all variability presets following the order in which they have been collected.
  2. Merge directly assigned variability inputs.

Thereby, inputs which are merged at a later step, override existing inputs. Thus, directly assigned variability inputs have the highest priority. For example, given the following variability definition.

variability:\ninputs:\nmode:\ntype: string\nanother_input: type: string\nanother_another_input:\ntype: string\npresets:\ndev:\nname: Development\ndescription: Deploy the application on a private cloud\ninputs:\nmode: dev\nanother_input: dev\nanother_another_input: dev\nprod:\nname: Production\ndescription: Deploy the application on a public cloud\ninputs:\nmode: prod\nanother_input: prod\n

When the presets dev and prod are applied and the variability input mode is directly assigned to override, then the following variability inputs are retrieved.

mode: override\nanother_input: prod\nanother_another_input: dev\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#check-element-presence","title":"Check Element Presence","text":"

To check if an element is present, check that all assigned conditions hold:

  1. Collect all conditions which are assigned to the element via conditions.
  2. Collect all conditions which are assigned to variability groups via conditions which the element is member of.
  3. (Optional) Assign default conditions if no conditions have been collected yet.
  4. (Optional) Assign pruning conditions.
  5. Evaluate assigned conditions.

The element is present if all conditions hold.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#conduct-checks","title":"Conduct Checks","text":"

To conduct the consistency and semantic checks, conduct the following steps:

  1. Ensure that each relation source of a present relation is present.
  2. Ensure that each relation target of a present relation is present.
  3. Ensure that every present node has at maximum one present hosting relation.
  4. Ensure that the node of each present artifact is present.
  5. Ensure that present artifacts have unique names within their node.
  6. Ensure that the node of each present property is present.
  7. Ensure that present properties have unique names within their node.
  8. Ensure that the container of each present type is present.
  9. Ensure that each present type container has exactly one present type.
  10. Ensure that every present node has a present hosting relation if the node had at least one conditional relation in the variable
  11. Ensure that every present node has a present incoming relation if the node had at least one incoming relation in the variable service template.
  12. Ensure that every present node has a present deployment artifact if the node had at least one deployment artifact in the variable service template.

Since the derived variability-resolved service template might be further processed, e.g. by topology completion, some or all of these checks might be omitted.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#pruning-elements","title":"Pruning Elements","text":"

To further support modeling, elements can be pruned by additionally evaluating the respective default condition before evaluating assigned conditions. For example, when evaluating if a property of a node template is present, then evaluate first if respective node template is present and then assigned conditions. Such pruning propagates through the whole topology. For example, the properties of a relationship template used in a requirement assignment of a node template which is not present are also not present.

There are element-generic default conditions and type-specific default conditions. Element-generic default conditions are generic default conditions defined per element. However, type-specific default conditions are defined per type, e.g., node type, and, thus, override element-generic default conditions.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#optimization","title":"Optimization","text":"

The variability-resolved service template can be optimized regarding the weight of node templates. The default weight of a node template is 1. Per default, the variability-resolved service template is optimized regarding the minimal weight/ number of node templates. The primary intention is to minimize the deployment complexity, but optimization could be also used, e.g., to minimize overall costs. The weight of a node template can be configured in its definition. Moreover, technology selection can be optimized.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#element-system","title":"Element System","text":"

When introducing conditional elements, we follow typically the approach of using a list whose entries are maps that contain a single element. Thus, elements can just be defined as usual but in a list (instead of a map) and can even share the same names. This has some implication on managing elements which we are discussing in the following.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#element-collections","title":"Element Collections","text":"

As an overview, the following table shows the collections that are used in TOSCA and the ones which are used in Variability4TOSCA.

Element TOSCA Variability4TOSCA Inputs Map Map, List Outputs Map Map, List Nodes Map Map, List Relations List List Properties Map Map, List Policies List List Groups Map Map, List Artifacts Map Map, List","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#element-uniqueness","title":"Element Uniqueness","text":"

As an overview, the following table shows the uniqueness of elements in TOSCA and in Variability4TOSCA in terms of identifiers, such as the key in a map. This is directly related to the used collections.

Element TOSCA Variability4TOSCA Inputs Outputs Nodes Relations Properties Policies Groups Artifacts","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#element-identifier-system","title":"Element Identifier System","text":"

Each element has an identifier that is unique per (variable) service template. This identifier system is required since some conditional elements, such as artifacts, can have non-unique names. The identifier of an element is constructed as follows.

<Element Type>.<Element Name>[@<Element Index>][.<Element Container ID>]\n

Available element types are node, relation, property, group, policy, artifact, input, output, technology, type, and import.

For example, consider the given variable service template.

node_templates:\nmy_node:\ntype: my.node\nproperties:\n- my_property:\nvalue: first\nconditions: <VariabilityCondition>\n- my_property:\nvalue: second\nconditions: <VariabilityCondition>\nartifacts:\n- my_artifact:\nfile: path/to/my_artifact_first\nconditions: <VariabilityCondition>\n- my_artifact:\nfile: path/to/my_artifact_second\nconditions: <VariabilityCondition>\n

Next, the following identifiers, among others, exist.

  • node.my_node for the node template my_node.
  • property.my_property@0.node.my_node for the first property my_property of the node template my_node.
  • artifact.my_artifact@1.node.my_node for the second artifact my_artifact of the node template my_node.
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#element-display-system","title":"Element Display System","text":"

Each element has a display representation that is unique per (variable) service template. This display system is required since some conditional elements, such as artifacts, can have non-unique names. The display representation of an element is constructed as follows.

<Element Type> \"<Element Name>[@<Element Index>]\"[ of <Element Container Display>]\n

Available element types are Node, Relation, Property, Group, Policy, Artifact, Input, Output, Technology, Type, and Import.

For example, consider the given variable service template.

node_templates:\nmy_node:\ntype: my.node\nproperties:\n- my_property:\nvalue: first\nconditions: <VariabilityCondition>\n- my_property:\nvalue: second\nconditions: <VariabilityCondition>\nartifacts:\n- my_artifact:\nfile: path/to/my_artifact_first\nconditions: <VariabilityCondition>\n- my_artifact:\nfile: path/to/my_artifact_second\nconditions: <VariabilityCondition>\n

Next, the following display representations, among others, exist.

  • Node \"my_node\" for the node template my_node.
  • Property \"my_property@0\" of Node \"my_node\" for the first property my_property of the node template my_node.
  • Artifact \"my_artifact@1\" of Node \"my_node\" for the second artifact my_artifact of the node template my_node.
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#reference-implementation","title":"Reference Implementation","text":"

We provide a reference implementation for this specification as part of OpenTOSCA Vintner. OpenTOSCA Vintner is a TOSCA preprocessing and management layer. The project is open-source, licensed under Apache-2.0, and publicly available at GitHub.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/tests/introduction/","title":"Introduction","text":"","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/tests/introduction/#variability4tosca-conformance-test-suite-10-release-candidate","title":"Variability4TOSCA Conformance Test Suite 1.0 Release Candidate","text":"

This document specifies the conformance test suite for the Variability4TOSCA specification which can be used to evaluate Variability4TOSCA implementations. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/tests/introduction/#conformance-tests","title":"Conformance Tests","text":"

Each test is described on a separate page. The description includes typically a variable service template, variability inputs, expected errors, expected variability-resolved service template and so on along with an explanation about the expected processing.

ID Test 1 Operator \"count\" 2 Operator \"exponential_regression\" 3 Operator \"variance\" 4 Operator \"logarithmic_regression\" 5 Operator \"max\" 6 Operator \"mean\" 7 Operator \"median\" 8 Operator \"min\" 9 Operator \"polynomial_regression\" 10 Operator \"standard_deviation\" 11 Operator \"sum\" 12 Operator \"variance\" 13 Operator \"add\" 14 Operator \"div\" 15 Operator \"mod\" (Even) 16 Operator \"add\" (Odd) 17 Operator \"mul\" 18 Operator \"sub\" 19 artifacts-artifact-presence-number-absent 20 artifacts-artifact-presence-number-present 21 artifacts-artifact-presence-string-absent 22 artifacts-artifact-presence-string-present 23 artifacts-conditional 24 artifacts-container-presence-absent 25 artifacts-container-presence-present 26 artifacts-default-alternative 27 artifacts-default-alternative-false 28 artifacts-default-condition 29 artifacts-dont-throw-ambiguous-artifact 30 Artifact Pruning 31 artifacts-pruning-managed-manual 32 artifacts-pruning-managed-rules 33 artifacts-pruning-managed-rules-host 34 artifacts-pruning-managed-rules-multiple-different 35 artifacts-pruning-managed-rules-none 36 artifacts-pruning-manged-rules-multiple-same 37 artifacts-required-artifact-constraint-sat 38 artifacts-required-artifact-constraint-sat-pruning 39 artifacts-required-artifact-constraint-unsat 40 artifacts-throw-ambiguous-artifact 41 artifacts-throw-ambiguous-default 42 artifacts-throw-missing-artifact-container 43 artifacts-unique-artifact-constraint-sat-none 44 artifacts-unique-artifact-constraint-sat-one 45 artifacts-unique-artifact-constraint-sat-other 46 artifacts-unique-artifact-constraint-unsat 47 Operator \"and\" Evaluates to \"True\" (Empty) 48 Operator \"and\" Evaluates to \"false\" 49 Operator \"and\" Evaluates to \"false\" (Nested) 50 Operator \"and\" Evaluates to \"true\" 51 Operator \"and\" Evaluates to \"true\" (Nested) 52 Operator \"exo\": all false -> false 53 Operator \"exo\": One ture -> true 54 Operator \"exo\": all true -> false 55 Operator \"implies\": false false -> true 56 Operator \"implies\": false true -> true 57 Operator \"implies\": true false -> false 58 Operator \"implies\": true true -> true 59 Operator \"not\" Evaluates to \"false\" 60 Operator \"not\" Evaluates to \"true\" 61 Operator \"or\" Evaluates to \"False\" (Empty) 62 Operator \"or\" Evaluates to \"False\" 63 Operator \"or\" Evaluates to \"true\" 64 Operator \"or\" Evaluates to \"true\" (All \"true\") 65 circles-alpha 66 circles-bravo 67 circles-charlie 68 circles-delta 69 circles-echo 70 circles-golf 71 circles-hotel 72 circles-india 73 consistency-throw-hosting-relation-missing 74 consistency-throw-hosting-relation-missing-constraint 75 consistency-throw-multiple-hosting-relations 76 consistency-throw-multiple-hosting-relations-constraint 77 consistency-throw-relation-source-missing 78 consistency-throw-relation-target-missing 79 Operator \"equal\" Evaluates to \"false\" 80 Operator \"equal\" Evaluates to \"true\" 81 Operator \"greater_or_equal\" Evaluates to \"true\" (Greater) 82 Operator \"greater_or_equal\" Evaluates to \"true\" (Equal) 83 Operator \"greater_or_equal\" Evaluates to \"false\" (Less) 84 Operator \"greater\" Evaluates to \"false\" (Equal) 85 Operator \"greater\" Evaluates to \"true\" (Greater) 86 Operator \"greater\" Evaluates to \"false\" (Less) 87 Operator \"in_range\" Evaluates to \"false\" 88 Operator \"in_range\" Evaluates to \"true\" 89 Operator \"length\" Evaluates to \"false\" 90 Operator \"length\" Evaluates to \"true\" 91 Operator \"less_or_equal\" Evaluates to \"true\" (Equal) 92 Operator \"less_or_equal\" Evaluates to \"false\" (Greater) 93 Operator \"less_or_equal\" Evaluates to \"true\" (Less) 94 Operator \"less\" Evaluates to \"false\" (Equal) 95 Operator \"less\" Evaluates to \"false\" (Greater) 96 Operator \"less\" Evaluates to \"true\" (Less) 97 Operator \"max_length\" Evaluates to \"true\" (Equal) 98 Operator \"max_length\" Evaluates to \"false\" (Greater) 99 Operator \"max_length\" Evaluates to \"true\" (Less) 100 Operator \"min_length\" Evaluates to \"true\" (Equal) 101 Operator \"min_length\" Evaluates to \"true\" (Greater) 102 Operator \"min_length\" Evaluates to \"false\" (Less) 103 Operator \"valid_values\" Evaluates to \"false\" 104 Operator \"valid_values\" Evaluates to \"true\" 105 date-operators-after-false 106 date-operators-after-or-same-false 107 date-operators-after-or-same-true 108 date-operators-after-true 109 date-operators-before-false 110 date-operators-before-or-same-false 111 date-operators-before-or-same-true 112 date-operators-before-true 113 date-operators-same-false 114 date-operators-same-true 115 date-operators-within-false 116 date-operators-within-true 117 Conditional Group 118 groups-default-condition 119 groups-default-condition-nothing 120 groups-group-presence-absent 121 groups-group-presence-present 122 groups-prune 123 hosting-aware-pruning-constraints-elastic 124 hosting-aware-pruning-constraints-static 125 hosting-aware-pruning-fig-10-broken 126 hosting-aware-pruning-fig-10-fixed 127 hosting-aware-pruning-host-elastic 128 hosting-aware-pruning-host-static 129 hosting-aware-pruning-motivation-elastic 130 hosting-aware-pruning-motivation-static 131 hosting-aware-pruning-provider-elastic 132 hosting-aware-pruning-provider-static 133 hosting-aware-pruning-transitive-ambiguous 134 hosting-aware-pruning-transitive-both 135 hosting-aware-pruning-transitive-preserved 136 hosting-aware-pruning-transitive-unexpected 137 implications-constraints 138 implications-implied-left 139 implications-implied-right 140 implications-implies-left 141 implications-implies-right 142 implications-incoming-left 143 implications-incoming-right 144 implications-motivating-scenario-cloud 145 implications-motivating-scenario-static 146 implications-requires 147 implications-unexpected 148 implications-naive-constraints 149 implications-naive-implied-left 150 implications-naive-implied-right 151 implications-naive-implies-left 152 implications-naive-implies-right 153 implications-naive-incoming-left 154 implications-naive-incoming-right 155 implications-naive-motivating-scenario-cloud 156 implications-naive-motivating-scenario-static 157 implications-naive-naive 158 implications-naive-naive-another 159 implications-naive-naive-another-no-optimization 160 implications-naive-naive-another-not 161 implications-naive-naive-not 162 implications-naive-requires 163 implications-naive-unexpected 164 implied-default-fixed-left 165 implied-default-fixed-right 166 implied-default-manual-left 167 implied-default-manual-right 168 implied-host-broken 169 implied-host-fixed-left 170 implied-host-fixed-right 171 implied-host-manual-left 172 implied-host-manual-right 173 import-conditional 174 import-empty 175 import-get-import-absent 176 import-get-import-present 177 inputs-conditional 178 inputs-conditional-list 179 inputs-default-alternative 180 inputs-input-presence-absent 181 inputs-input-presence-present 182 inputs-pruning-consumed 183 inputs-pruning-consumed-still 184 inputs-pruning-no-consumer 185 inputs-pruning-not-consumed-anymore 186 inputs-pruning-not-consumed-anymore-v3 187 inputs-unique-input-constraint-sat 188 inputs-unique-input-constraint-sat-other 189 inputs-unique-input-constraint-sat-pruning-consumed 190 inputs-unique-input-constraint-sat-pruning-consumed-default 191 inputs-unique-input-constraint-unsat 192 nodes-conditional 193 nodes-conditional-type 194 nodes-conditional-type-default 195 nodes-default-false-false 196 nodes-default-false-true 197 nodes-default-host-absent 198 nodes-default-host-present 199 nodes-default-true-false 200 nodes-default-true-true 201 nodes-host-presence-absent 202 nodes-host-presence-false-false 203 nodes-host-presence-present 204 nodes-host-presence-true-false 205 nodes-host-presence-true-true 206 nodes-host-presence-true-true-constraint 207 nodes-node-presence-absent 208 nodes-node-presence-present 209 nodes-required-incoming-relation-constraint-sat 210 nodes-required-incoming-relation-constraint-unsat 211 nodes-type-specific 212 Benchmark 213 Operator \"concat\" 214 Get Variability Expression 215 Operator \"concat\" 216 other-logic-expression-false 217 other-logic-expression-true 218 other-logic-value-expression 219 other-nothing 220 other-preset 221 other-presets 222 other-throw-CONTAINER 223 other-throw-SELF 224 other-throw-not-unique 225 Operator \"concat\" 226 Get Variability Expression 227 Get Variability Input 228 other-version 229 other-weight 230 outputs-conditional 231 outputs-conditional-list 232 outputs-default 233 outputs-input-presence-absent 234 outputs-input-presence-present 235 outputs-pruning-not-produced-anymore-unfurl-1 236 outputs-pruning-not-produced-anymore-unfurl-2 237 outputs-pruning-not-produced-anymore-xopera 238 outputs-pruning-not-produced-anymore-xopera-v3 239 outputs-pruning-produced-unfurl 240 outputs-pruning-produced-unfurl-attribute 241 outputs-pruning-produced-unfurl-attribute-not 242 outputs-unique-output-constraint-sat 243 outputs-unique-output-constraint-sat-default 244 outputs-unique-output-constraint-sat-other 245 outputs-unique-output-constraint-sat-pruning-not-produced-anymore-xopera 246 outputs-unique-output-constraint-sat-pruning-produced-xopera 247 outputs-unique-output-constraint-unsat 248 persistent-persistent 249 persistent-persistent-false 250 persistent-persistent-throw 251 persistent-persistent-undefined 252 policies-conditional 253 policies-default-condition 254 policies-default-condition-nothing 255 Policy Targets Absent Members 256 Policy Targets Absent Nodes 257 Policy Has No Targets 258 Policy Targets Present Member 259 Policy Targets One Present Node 260 Policy Targets Present Nodes 261 policies-policy-presence-absent 262 policies-policy-presence-present 263 Policy Pruning 264 properties-artifact-container-presence-absent 265 properties-artifact-container-presence-present 266 properties-conditional 267 properties-default-alternative 268 properties-default-alternative-false 269 properties-default-condition 270 properties-expression 271 properties-list 272 properties-list-another 273 properties-map 274 properties-map-another 275 properties-node-container-presence-absent 276 properties-node-container-presence-present 277 properties-node-node-presence-CONTAINER-absent 278 properties-node-node-presence-CONTAINER-present 279 properties-node-property-presence-number-absent 280 properties-node-property-presence-number-present 281 properties-node-property-presence-string-absent 282 properties-node-property-presence-string-present 283 properties-properties 284 properties-relation-container-presence-absent 285 properties-relation-container-presence-present 286 properties-throw-ambiguous-property 287 properties-throw-missing-property-container 288 properties-throw-multiple-default 289 properties-unique-property-constraint-sat 290 properties-unique-property-constraint-unsat 291 pruning-alpha-default 292 pruning-alpha-default-naive 293 pruning-alpha-pruning 294 pruning-artifact-default-alpha 295 pruning-artifact-default-bravo 296 pruning-artifact-default-charlie 297 pruning-artifact-default-delta 298 pruning-artifact-default-naive 299 pruning-bravo-default 300 pruning-bravo-pruning 301 pruning-charlie-default 302 pruning-charlie-pruning 303 pruning-delta-default 304 pruning-delta-pruning 305 pruning-echo-default 306 pruning-echo-pruning 307 pruning-foxtrott-default 308 pruning-foxtrott-pruning 309 pruning-hotel-default 310 pruning-hotel-pruning 311 pruning-incoming-artifact-pruning-alpha 312 pruning-incoming-artifact-pruning-bravo 313 pruning-incoming-artifact-pruning-charlie 314 pruning-incoming-artifact-pruning-delta 315 pruning-incoming-artifact-pruning-echo 316 pruning-incoming-artifact-pruning-foxtrott 317 pruning-incoming-artifact-pruning-golf 318 pruning-incoming-artifact-pruning-hotel 319 pruning-incoming-artifact-pruning-naive-alpha 320 pruning-incoming-artifact-pruning-naive-bravo 321 pruning-india-default 322 pruning-india-pruning 323 pruning-juliett-default 324 pruning-juliett-pruning 325 pruning-kilo-default 326 pruning-kilo-pruning 327 pruning-lima-default 328 pruning-lima-pruning 329 pruning-mike-default 330 pruning-mike-pruning 331 pruning-outgoing-relation-absent 332 pruning-outgoing-relation-present 333 pruning-outgoing-target-absent 334 pruning-outgoing-target-present 335 pruning-outgoingnaive-target-present 336 pruning-pruning 337 pruning-pruning-false-false 338 pruning-pruning-false-true 339 pruning-pruning-true-false 340 pruning-pruning-true-true 341 Relation Pruning 342 relationships-conditional 343 relationships-throw-multiple 344 relationships-throw-undefined 345 relationships-throw-unused 346 relationships-type-specific 347 requirement-assignment-conditional 348 requirement-assignment-default-alternative 349 requirement-assignment-default-alternative-false 350 requirement-assignment-default-condition 351 requirement-assignment-default-condition-throw-source 352 requirement-assignment-default-condition-throw-target 353 requirement-assignment-one-hosting-relation 354 requirement-assignment-relation-presence-index-absent 355 requirement-assignment-relation-presence-name-absent 356 requirement-assignment-source-presence-absent 357 requirement-assignment-source-presence-present 358 requirement-assignment-target-presence-absent 359 requirement-assignment-target-presence-present 360 requirement-assignment-throw-multiple-defaults 361 Scenario \"Alpha\" 362 scenario-worker-agent-false 363 scenario-worker-agent-true 364 scenario-worker-worker-false 365 scenario-worker-worker-true 366 technologies-ambiguous 367 technologies-ambiguous-disabled 368 technologies-conditional 369 technologies-constraint 370 technologies-constraint-disabled 371 technologies-default-multiple 372 technologies-default-true 373 technologies-expected 374 technologies-expected-disabled 375 technologies-lowercase 376 technologies-missing 377 technologies-missing-disabled 378 technologies-optimization 379 technologies-optimization-double 380 technologies-optimization-order 381 technologies-optimization-unsat 382 technologies-optimization-weight 383 technologies-pruning 384 technologies-pruning-disabled 385 technologies-rules 386 technologies-rules-v3 387 technologies-throw-required 388 technologies-unique 389 technologies-unique-disabled 390 variability-inputs-implies 391 variability-inputs-no-constraints","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/tests/introduction/#reference-implementation","title":"Reference Implementation","text":"

We provide a reference implementation for this specification as part of OpenTOSCA Vintner. OpenTOSCA Vintner is a TOSCA preprocessing and management layer. The project is open-source, licensed under Apache-2.0, and publicly available at GitHub.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/tests/introduction/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/tests/introduction/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/tests/introduction/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/tests/test-analytical-operators-count/","title":"Operator \"count\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-count/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\ncount:\n- 1\n- 2\n- 3\n- 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-count/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-exponential_regression/","title":"Operator \"exponential_regression\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-exponential_regression/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nexponential_regression:\n- - - 0\n- 1\n- - 1\n- 2.72\n- - 2\n- 7.39\n- - 3\n- 20.09\n- 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-exponential_regression/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 54.6\n
"},{"location":"variability4tosca/tests/test-analytical-operators-linear_regression/","title":"Operator \"variance\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-linear_regression/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nlinear_regression:\n- - - 0\n- 0\n- - 1\n- 2\n- - 2\n- 4\n- 100\n
"},{"location":"variability4tosca/tests/test-analytical-operators-linear_regression/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 200\n
"},{"location":"variability4tosca/tests/test-analytical-operators-logarithmic_regression/","title":"Operator \"logarithmic_regression\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-logarithmic_regression/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nlogarithmic_regression:\n- - - 0.01\n- -4.61\n- - 0.5\n- -0.7\n- - 1\n- 0\n- - 2\n- 0.69\n- - 3\n- 1\n- 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-logarithmic_regression/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 1.34\n
"},{"location":"variability4tosca/tests/test-analytical-operators-max/","title":"Operator \"max\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-max/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmax:\n- 1\n- 2\n- 3\n- 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-max/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-mean/","title":"Operator \"mean\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-mean/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmean:\n- 1\n- 2\n- 3\n- 4\n- 10\n
"},{"location":"variability4tosca/tests/test-analytical-operators-mean/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-median/","title":"Operator \"median\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-median/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmedian:\n- 1\n- 2\n- 3\n- 4\n- 10\n
"},{"location":"variability4tosca/tests/test-analytical-operators-median/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 3\n
"},{"location":"variability4tosca/tests/test-analytical-operators-min/","title":"Operator \"min\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-min/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmin:\n- 1\n- 2\n- 3\n- 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-min/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 1\n
"},{"location":"variability4tosca/tests/test-analytical-operators-polynomial_regression/","title":"Operator \"polynomial_regression\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-polynomial_regression/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\npolynomial_regression:\n- - - 0\n- 0\n- - 1\n- 1\n- - 2\n- 4\n- 2\n- 5\n
"},{"location":"variability4tosca/tests/test-analytical-operators-polynomial_regression/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 25\n
"},{"location":"variability4tosca/tests/test-analytical-operators-standard_deviation/","title":"Operator \"standard_deviation\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-standard_deviation/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nstandard_deviation:\n- 1\n- 2\n- 3\n- 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-standard_deviation/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 1.12\n
"},{"location":"variability4tosca/tests/test-analytical-operators-sum/","title":"Operator \"sum\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-sum/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nsum:\n- 1\n- 2\n- 3\n- 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-sum/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 10\n
"},{"location":"variability4tosca/tests/test-analytical-operators-variance/","title":"Operator \"variance\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-variance/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nvariance:\n- 1\n- 2\n- 3\n- 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-variance/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 1.25\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-add/","title":"Operator \"add\"","text":""},{"location":"variability4tosca/tests/test-arithmetic-operators-add/#description","title":"Description","text":"

Assigns the value of the expression to the property \"value\" of the node \"container\".

"},{"location":"variability4tosca/tests/test-arithmetic-operators-add/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nadd:\n- 10\n- 1\n- 1\n- 1\n- 1\n- 1\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-add/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 15\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-div/","title":"Operator \"div\"","text":""},{"location":"variability4tosca/tests/test-arithmetic-operators-div/#description","title":"Description","text":"

Assigns the value of the expression to the property \"value\" of the node \"container\".

"},{"location":"variability4tosca/tests/test-arithmetic-operators-div/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\ndiv:\n- 10\n- 1\n- 2\n- 5\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-div/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 1\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-mod-even/","title":"Operator \"mod\" (Even)","text":""},{"location":"variability4tosca/tests/test-arithmetic-operators-mod-even/#description","title":"Description","text":"

Assigns the value of the expression to the property \"value\" of the node \"container\".

"},{"location":"variability4tosca/tests/test-arithmetic-operators-mod-even/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmod:\n- 10\n- 2\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-mod-even/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 0\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-mod-odd/","title":"Operator \"add\" (Odd)","text":""},{"location":"variability4tosca/tests/test-arithmetic-operators-mod-odd/#description","title":"Description","text":"

Assigns the value of the expression to the property \"value\" of the node \"container\".

"},{"location":"variability4tosca/tests/test-arithmetic-operators-mod-odd/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmod:\n- 11\n- 2\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-mod-odd/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 1\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-mul/","title":"Operator \"mul\"","text":""},{"location":"variability4tosca/tests/test-arithmetic-operators-mul/#description","title":"Description","text":"

Assigns the value of the expression to the property \"value\" of the node \"container\".

"},{"location":"variability4tosca/tests/test-arithmetic-operators-mul/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmul:\n- 10\n- 1\n- 3\n- 4\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-mul/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 120\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-sub/","title":"Operator \"sub\"","text":""},{"location":"variability4tosca/tests/test-arithmetic-operators-sub/#description","title":"Description","text":"

Assigns the value of the expression to the property \"value\" of the node \"container\".

"},{"location":"variability4tosca/tests/test-arithmetic-operators-sub/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nsub:\n- 10\n- 1\n- 1\n- 1\n- 1\n- 1\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-sub/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 5\n
"},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-number-absent/","title":"artifacts-artifact-presence-number-absent","text":""},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-number-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nartifact_presence:\n- container\n- 0\nartifacts:\nartifact_one:\nconditions: false\nfile: path\n
"},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-number-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-number-present/","title":"artifacts-artifact-presence-number-present","text":""},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-number-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nartifact_presence:\n- container\n- 0\nartifacts:\nartifact_one:\nconditions: true\nfile: path\n
"},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-number-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nartifacts:\nartifact_one:\ntype: tosca.artifacts.File\nfile: path\n
"},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-string-absent/","title":"artifacts-artifact-presence-string-absent","text":""},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-string-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nartifact_presence:\n- container\n- artifact_one\nartifacts:\nartifact_one:\nconditions: false\nfile: path\n
"},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-string-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-string-present/","title":"artifacts-artifact-presence-string-present","text":""},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-string-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nartifact_presence:\n- container\n- artifact_one\nartifacts:\nartifact_one:\nconditions: true\nfile: path\n
"},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-string-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nartifacts:\nartifact_one:\ntype: tosca.artifacts.File\nfile: path\n
"},{"location":"variability4tosca/tests/test-artifacts-conditional/","title":"artifacts-conditional","text":""},{"location":"variability4tosca/tests/test-artifacts-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_artifact_check: false\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one_one:\ntype: artifact_a\nconditions: true\n- artifact_one_one:\ntype: artifact_b\nconditions: false\nnode_two:\ntype: node\nartifacts:\nartifact_two_one:\ntype: artifact\nconditions: true\nnode_three:\ntype: node\nartifacts:\nartifact_three_one:\ntype: artifact\nnode_four:\ntype: node\nartifacts:\nartifact_three_one:\ntype: artifact\nconditions: false\n
"},{"location":"variability4tosca/tests/test-artifacts-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nartifacts:\nartifact_one_one:\ntype: artifact_a\nnode_two:\ntype: node\nartifacts:\nartifact_two_one:\ntype: artifact\nnode_three:\ntype: node\nartifacts:\nartifact_three_one:\ntype: artifact\nnode_four:\ntype: node\n
"},{"location":"variability4tosca/tests/test-artifacts-container-presence-absent/","title":"artifacts-container-presence-absent","text":""},{"location":"variability4tosca/tests/test-artifacts-container-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions: false\nartifacts:\nartifact_one:\nconditions:\ncontainer_presence: SELF\nfile: path\n
"},{"location":"variability4tosca/tests/test-artifacts-container-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-artifacts-container-presence-present/","title":"artifacts-container-presence-present","text":""},{"location":"variability4tosca/tests/test-artifacts-container-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nartifacts:\nartifact_one:\nconditions:\ncontainer_presence: SELF\nfile: path\n
"},{"location":"variability4tosca/tests/test-artifacts-container-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nartifacts:\nartifact_one:\ntype: tosca.artifacts.File\nfile: path\n
"},{"location":"variability4tosca/tests/test-artifacts-default-alternative-false/","title":"artifacts-default-alternative-false","text":""},{"location":"variability4tosca/tests/test-artifacts-default-alternative-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nexpected_artifact_check: false\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one_one:\ntype: artifact_a\ndefault_alternative: false\n- artifact_one_one:\ntype: artifact_b\nconditions: false\nnode_two:\ntype: node\nartifacts:\nartifact_two_one:\ntype: artifact\nconditions: true\nnode_three:\ntype: node\nartifacts:\nartifact_three_one:\ntype: artifact\nnode_four:\ntype: node\nartifacts:\nartifact_three_one:\ntype: artifact\nconditions: false\n
"},{"location":"variability4tosca/tests/test-artifacts-default-alternative-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nnode_two:\ntype: node\nartifacts:\nartifact_two_one:\ntype: artifact\nnode_three:\ntype: node\nartifacts:\nartifact_three_one:\ntype: artifact\nnode_four:\ntype: node\n
"},{"location":"variability4tosca/tests/test-artifacts-default-alternative/","title":"artifacts-default-alternative","text":""},{"location":"variability4tosca/tests/test-artifacts-default-alternative/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nexpected_artifact_check: false\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one_one:\ntype: artifact_a\ndefault_alternative: true\n- artifact_one_one:\ntype: artifact_b\nconditions: false\nnode_two:\ntype: node\nartifacts:\nartifact_two_one:\ntype: artifact\nconditions: true\nnode_three:\ntype: node\nartifacts:\nartifact_three_one:\ntype: artifact\nnode_four:\ntype: node\nartifacts:\nartifact_three_one:\ntype: artifact\nconditions: false\n
"},{"location":"variability4tosca/tests/test-artifacts-default-alternative/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nartifacts:\nartifact_one_one:\ntype: artifact_a\nnode_two:\ntype: node\nartifacts:\nartifact_two_one:\ntype: artifact\nnode_three:\ntype: node\nartifacts:\nartifact_three_one:\ntype: artifact\nnode_four:\ntype: node\n
"},{"location":"variability4tosca/tests/test-artifacts-default-condition/","title":"artifacts-default-condition","text":""},{"location":"variability4tosca/tests/test-artifacts-default-condition/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nartifact_default_condition: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node\nconditions: false\nartifacts:\nartifact_two_one:\ntype: artifact\nnode_two:\ntype: node\n
"},{"location":"variability4tosca/tests/test-artifacts-default-condition/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_two:\ntype: node\n
"},{"location":"variability4tosca/tests/test-artifacts-dont-throw-ambiguous-artifact/","title":"artifacts-dont-throw-ambiguous-artifact","text":""},{"location":"variability4tosca/tests/test-artifacts-dont-throw-ambiguous-artifact/#description","title":"Description","text":"

Artifacts are not ambiguous since unique check is based on name scoped by node.

"},{"location":"variability4tosca/tests/test-artifacts-dont-throw-ambiguous-artifact/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nartifacts:\nartifact_one:\ntype: artifact_a\nnode_two:\ntype: node\nartifacts:\n- artifact_one:\ntype: artifact_a\n
"},{"location":"variability4tosca/tests/test-artifacts-dont-throw-ambiguous-artifact/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nartifacts:\nartifact_one:\ntype: artifact_a\nnode_two:\ntype: node\nartifacts:\nartifact_one:\ntype: artifact_a\n
"},{"location":"variability4tosca/tests/test-artifacts-prune/","title":"Artifact Pruning","text":""},{"location":"variability4tosca/tests/test-artifacts-prune/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nartifact_pruning: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node\nconditions: false\nartifacts:\nartifact_two_one:\ntype: artifact\nconditions: true\nnode_two:\ntype: node\n
"},{"location":"variability4tosca/tests/test-artifacts-prune/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_two:\ntype: node\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-manual/","title":"artifacts-pruning-managed-manual","text":""},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-manual/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\ntopology_template:\nvariability:\ntechnology_rules:\n- component: application\ntechnology: ansible\nartifact: first.artifact.type\nweight: 1\n- component: application\ntechnology: ansible\nartifact: second.artifact.type\nweight: 1\nnode_templates:\napplication:\ntype: application\npersistent: true\ntechnology:\n- ansible:\nartifact: second.artifact.type\nartifacts:\n- first_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\nconditions: false\n- second_artifact_type:\ntype: second.artifact.type\nfile: second_artifact_file\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-manual/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\ntopology_template:\nnode_templates:\napplication:\ntype: application~application#second.artifact.type::ansible\nartifacts:\nsecond_artifact_type:\ntype: second.artifact.type\nfile: second_artifact_file\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-host/","title":"artifacts-pruning-managed-rules-host","text":""},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-host/#description","title":"Description","text":"

Pruning via rules also works if no host is present. In this case, the technology and the artifact form a circle, while the application provides the presence impulse since its persistent.

"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-host/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nhost:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ntopology_template:\nvariability:\ntechnology_rules:\n- component: application\ntechnology: ansible\nartifact: first.artifact.type\nhosting:\n- host\nweight: 1\n- component: application\ntechnology: terraform\nartifact: second.artifact.type\nhosting:\n- host\nweight: 0\nnode_templates:\napplication:\ntype: application\npersistent: true\nartifacts:\n- first_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\n- second_artifact_type:\ntype: second.artifact.type\nfile: second_artifact_file\nrequirements:\n- host: host\nhost:\ntype: host\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-host/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nhost:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ntopology_template:\nnode_templates:\napplication:\ntype: application~application#first.artifact.type::ansible@host\nrequirements:\n- host: host\nartifacts:\nfirst_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\nhost:\ntype: host\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-multiple-different/","title":"artifacts-pruning-managed-rules-multiple-different","text":""},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-multiple-different/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nhost:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ntopology_template:\nvariability:\ntechnology_rules:\n- component: application\ntechnology: ansible\nartifact: first.artifact.type\nhosting:\n- host\nweight: 1\n- component: application\ntechnology: terraform\nartifact: first.artifact.type\nhosting:\n- host\nweight: 0\nnode_templates:\napplication:\ntype: application\npersistent: true\nartifacts:\n- first_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\n- second_artifact_type:\ntype: second.artifact.type\nfile: second_artifact_file\nrequirements:\n- host: host\nhost:\ntype: host\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-multiple-different/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nhost:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ntopology_template:\nnode_templates:\napplication:\ntype: application~application#first.artifact.type::ansible@host\nrequirements:\n- host: host\nartifacts:\nfirst_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\nhost:\ntype: host\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-none/","title":"artifacts-pruning-managed-rules-none","text":""},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-none/#description","title":"Description","text":"

No rule support artifact \"second_artifact_type\". Hence it is removed since empty \"or\" is assigned which evaluates to false

"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-none/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\ntopology_template:\nvariability:\ntechnology_rules:\n- component: application\ntechnology: ansible\nartifact: first.artifact.type\nnode_templates:\napplication:\ntype: application\npersistent: true\nartifacts:\n- first_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\n- second_artifact_type:\ntype: second.artifact.type\nfile: second_artifact_file\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-none/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\ntopology_template:\nnode_templates:\napplication:\ntype: application~application#first.artifact.type::ansible\nartifacts:\nfirst_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules/","title":"artifacts-pruning-managed-rules","text":""},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\ntopology_template:\nvariability:\ntechnology_rules:\n- component: application\ntechnology: ansible\nartifact: first.artifact.type\nweight: 1\n- component: application\ntechnology: terraform\nartifact: second.artifact.type\nweight: 0\nnode_templates:\napplication:\ntype: application\npersistent: true\nartifacts:\n- first_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\n- second_artifact_type:\ntype: second.artifact.type\nfile: second_artifact_file\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\ntopology_template:\nnode_templates:\napplication:\ntype: application~application#first.artifact.type::ansible\nartifacts:\nfirst_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-manged-rules-multiple-same/","title":"artifacts-pruning-manged-rules-multiple-same","text":""},{"location":"variability4tosca/tests/test-artifacts-pruning-manged-rules-multiple-same/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nhost:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ntopology_template:\nvariability:\ntechnology_rules:\n- component: application\ntechnology: ansible\nartifact: first.artifact.type\nhosting:\n- host\nweight: 1\n- component: application\ntechnology: ansible\nartifact: first.artifact.type\nhosting:\n- host\nweight: 0\nnode_templates:\napplication:\ntype: application\npersistent: true\nartifacts:\n- first_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\n- second_artifact_type:\ntype: second.artifact.type\nfile: second_artifact_file\nrequirements:\n- host: host\nhost:\ntype: host\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-manged-rules-multiple-same/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nhost:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ntopology_template:\nnode_templates:\napplication:\ntype: application~application#first.artifact.type::ansible@host\nrequirements:\n- host: host\nartifacts:\nfirst_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\nhost:\ntype: host\n
"},{"location":"variability4tosca/tests/test-artifacts-required-artifact-constraint-sat-pruning/","title":"artifacts-required-artifact-constraint-sat-pruning","text":""},{"location":"variability4tosca/tests/test-artifacts-required-artifact-constraint-sat-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nartifact_pruning: true\ntype_default_condition: true\nrequired_artifact_constraint: true\nnode_templates:\nnode_one:\ntype: node\nconditions: false\nartifacts:\n- artifact_one:\ntype: artifact_a\n- artifact_one:\ntype: artifact_b\nconditions: true\n
"},{"location":"variability4tosca/tests/test-artifacts-required-artifact-constraint-sat-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-artifacts-required-artifact-constraint-sat/","title":"artifacts-required-artifact-constraint-sat","text":""},{"location":"variability4tosca/tests/test-artifacts-required-artifact-constraint-sat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nrequired_artifact_constraint: true\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one:\ntype: artifact_a\n- artifact_one:\ntype: artifact_b\nconditions: false\n
"},{"location":"variability4tosca/tests/test-artifacts-required-artifact-constraint-sat/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nartifacts:\nartifact_one:\ntype: artifact_a\n
"},{"location":"variability4tosca/tests/test-artifacts-required-artifact-constraint-unsat/","title":"artifacts-required-artifact-constraint-unsat","text":""},{"location":"variability4tosca/tests/test-artifacts-required-artifact-constraint-unsat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nrequired_artifact_constraint: true\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one:\ntype: artifact_a\nconditions: false\n- artifact_one:\ntype: artifact_b\nconditions: false\n
"},{"location":"variability4tosca/tests/test-artifacts-required-artifact-constraint-unsat/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-artifacts-throw-ambiguous-artifact/","title":"artifacts-throw-ambiguous-artifact","text":""},{"location":"variability4tosca/tests/test-artifacts-throw-ambiguous-artifact/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one:\ntype: artifact_a\n- artifact_one:\ntype: artifact_b\n
"},{"location":"variability4tosca/tests/test-artifacts-throw-ambiguous-artifact/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Artifact \"artifact_one@1\" of node \"node_one\" is ambiguous\n
"},{"location":"variability4tosca/tests/test-artifacts-throw-ambiguous-default/","title":"artifacts-throw-ambiguous-default","text":""},{"location":"variability4tosca/tests/test-artifacts-throw-ambiguous-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one_one:\ntype: artifact_a\ndefault_alternative: true\n- artifact_one_one:\ntype: artifact_b\ndefault_alternative: true\n
"},{"location":"variability4tosca/tests/test-artifacts-throw-ambiguous-default/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Artifact \"artifact_one_one@0\" of node \"node_one\" has multiple defaults\n
"},{"location":"variability4tosca/tests/test-artifacts-throw-missing-artifact-container/","title":"artifacts-throw-missing-artifact-container","text":""},{"location":"variability4tosca/tests/test-artifacts-throw-missing-artifact-container/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nconditions: false\nartifacts:\nartifact_one:\ntype: artifact_a\n
"},{"location":"variability4tosca/tests/test-artifacts-throw-missing-artifact-container/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Container of artifact \"artifact_one@0\" of node \"node_one\" does not exist\n
"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-none/","title":"artifacts-unique-artifact-constraint-sat-none","text":""},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-none/#description","title":"Description","text":"

Unique artifact constraints is SAT since no artifact is present.

"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-none/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nunique_artifact_constraint: true\nchecks: false\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one:\ntype: artifact_a\nconditions: false\n- artifact_one:\ntype: artifact_b\nconditions: false\n
"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-none/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\n
"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-one/","title":"artifacts-unique-artifact-constraint-sat-one","text":""},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-one/#description","title":"Description","text":"

Unique artifact constraints is SAT since one artifact is present.

"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-one/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nunique_artifact_constraint: true\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one:\ntype: artifact_a\n- artifact_one:\ntype: artifact_b\nconditions: false\n
"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-one/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nartifacts:\nartifact_one:\ntype: artifact_a\n
"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-other/","title":"artifacts-unique-artifact-constraint-sat-other","text":""},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-other/#description","title":"Description","text":"

Unique artifact constraints is SAT since the other one artifact is present.

"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-other/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nunique_artifact_constraint: true\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one:\ntype: artifact_a\nconditions: false\n- artifact_one:\ntype: artifact_b\n
"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-other/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nartifacts:\nartifact_one:\ntype: artifact_b\n
"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-unsat/","title":"artifacts-unique-artifact-constraint-unsat","text":""},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-unsat/#description","title":"Description","text":"

Unique artifact constraints is UNSAT since two artifacts with same name of same container are present.

"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-unsat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nunique_artifact_constraint: true\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one:\ntype: artifact_a\n- artifact_one:\ntype: artifact_b\n
"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-unsat/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-empty/","title":"Operator \"and\" Evaluates to \"True\" (Empty)","text":""},{"location":"variability4tosca/tests/test-boolean-operators-and-empty/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-and-empty/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nand: []\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-empty/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-false/","title":"Operator \"and\" Evaluates to \"false\"","text":""},{"location":"variability4tosca/tests/test-boolean-operators-and-false/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the expression evaluates to \"false\".

"},{"location":"variability4tosca/tests/test-boolean-operators-and-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nand:\n- true\n- false\n- true\n- true\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-nested-false/","title":"Operator \"and\" Evaluates to \"false\" (Nested)","text":""},{"location":"variability4tosca/tests/test-boolean-operators-and-nested-false/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the expression evaluates to \"false\".

"},{"location":"variability4tosca/tests/test-boolean-operators-and-nested-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nand:\n- and:\n- true\n- false\n- true\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-nested-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-nested-true/","title":"Operator \"and\" Evaluates to \"true\"","text":""},{"location":"variability4tosca/tests/test-boolean-operators-and-nested-true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-and-nested-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nand:\n- true\n- true\n- true\n- true\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-nested-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-true/","title":"Operator \"and\" Evaluates to \"true\" (Nested)","text":""},{"location":"variability4tosca/tests/test-boolean-operators-and-true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-and-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nand:\n- and:\n- true\n- true\n- true\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-boolean-operators-exo-false-all/","title":"Operator \"exo\": all false -> false","text":""},{"location":"variability4tosca/tests/test-boolean-operators-exo-false-all/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the expression evaluates to \"false\".

"},{"location":"variability4tosca/tests/test-boolean-operators-exo-false-all/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nexo:\n- false\n- false\n- false\n- false\n
"},{"location":"variability4tosca/tests/test-boolean-operators-exo-false-all/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-boolean-operators-exo-true-all/","title":"Operator \"exo\": all true -> false","text":""},{"location":"variability4tosca/tests/test-boolean-operators-exo-true-all/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the expression evaluates to \"false\".

"},{"location":"variability4tosca/tests/test-boolean-operators-exo-true-all/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nexo:\n- true\n- true\n- true\n- true\n
"},{"location":"variability4tosca/tests/test-boolean-operators-exo-true-all/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-boolean-operators-exo-true/","title":"Operator \"exo\": One ture -> true","text":""},{"location":"variability4tosca/tests/test-boolean-operators-exo-true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-exo-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nexo:\n- true\n- false\n- false\n- false\n
"},{"location":"variability4tosca/tests/test-boolean-operators-exo-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-boolean-operators-implies-false-false-true/","title":"Operator \"implies\": false false -> true","text":""},{"location":"variability4tosca/tests/test-boolean-operators-implies-false-false-true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-implies-false-false-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nimplies:\n- false\n- false\n
"},{"location":"variability4tosca/tests/test-boolean-operators-implies-false-false-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-boolean-operators-implies-false-true-true/","title":"Operator \"implies\": false true -> true","text":""},{"location":"variability4tosca/tests/test-boolean-operators-implies-false-true-true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-implies-false-true-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nimplies:\n- false\n- true\n
"},{"location":"variability4tosca/tests/test-boolean-operators-implies-false-true-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-boolean-operators-implies-true-false-false/","title":"Operator \"implies\": true false -> false","text":""},{"location":"variability4tosca/tests/test-boolean-operators-implies-true-false-false/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the expression evaluates to \"false\".

"},{"location":"variability4tosca/tests/test-boolean-operators-implies-true-false-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nimplies:\n- true\n- false\n
"},{"location":"variability4tosca/tests/test-boolean-operators-implies-true-false-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-boolean-operators-implies-true-true-true/","title":"Operator \"implies\": true true -> true","text":""},{"location":"variability4tosca/tests/test-boolean-operators-implies-true-true-true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-implies-true-true-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nimplies:\n- true\n- true\n
"},{"location":"variability4tosca/tests/test-boolean-operators-implies-true-true-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-boolean-operators-not-false/","title":"Operator \"not\" Evaluates to \"false\"","text":""},{"location":"variability4tosca/tests/test-boolean-operators-not-false/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the expression evaluates to \"false\".

"},{"location":"variability4tosca/tests/test-boolean-operators-not-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nnot: true\n
"},{"location":"variability4tosca/tests/test-boolean-operators-not-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-boolean-operators-not-true/","title":"Operator \"not\" Evaluates to \"true\"","text":""},{"location":"variability4tosca/tests/test-boolean-operators-not-true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-not-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nnot: false\n
"},{"location":"variability4tosca/tests/test-boolean-operators-not-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-boolean-operators-or-empty/","title":"Operator \"or\" Evaluates to \"False\" (Empty)","text":""},{"location":"variability4tosca/tests/test-boolean-operators-or-empty/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the expression evaluates to \"false\".

"},{"location":"variability4tosca/tests/test-boolean-operators-or-empty/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nor: []\n
"},{"location":"variability4tosca/tests/test-boolean-operators-or-empty/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-boolean-operators-or-false/","title":"Operator \"or\" Evaluates to \"False\"","text":""},{"location":"variability4tosca/tests/test-boolean-operators-or-false/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the expression evaluates to \"false\".

"},{"location":"variability4tosca/tests/test-boolean-operators-or-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nor:\n- false\n- false\n- false\n- false\n
"},{"location":"variability4tosca/tests/test-boolean-operators-or-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-boolean-operators-or-true-all/","title":"Operator \"or\" Evaluates to \"true\" (All \"true\")","text":""},{"location":"variability4tosca/tests/test-boolean-operators-or-true-all/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-or-true-all/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nor:\n- true\n- true\n- true\n- true\n
"},{"location":"variability4tosca/tests/test-boolean-operators-or-true-all/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-boolean-operators-or-true/","title":"Operator \"or\" Evaluates to \"true\"","text":""},{"location":"variability4tosca/tests/test-boolean-operators-or-true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-or-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nor:\n- false\n- true\n- false\n- false\n
"},{"location":"variability4tosca/tests/test-boolean-operators-or-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-circles-alpha/","title":"circles-alpha","text":""},{"location":"variability4tosca/tests/test-circles-alpha/#description","title":"Description","text":"
  • node and relation defaults are enabled

  • node_one checks if relation_one is present

  • relation_one checks if node_one and node_two are present (first circle)
  • node_two checks if node_one is present (second circle)

  • if node_one is absent, then also node_two and relation_one are absent

  • since the solution is optimized towards minimal numbers of nodes, the expected template is empty
"},{"location":"variability4tosca/tests/test-circles-alpha/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nrelation_default_condition: true\ntype_default_condition: true\noptimization_topology: true\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nconditions:\nnode_presence: node_one\nrequirements:\n- relation_one: node_one\n
"},{"location":"variability4tosca/tests/test-circles-alpha/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-circles-bravo/","title":"circles-bravo","text":""},{"location":"variability4tosca/tests/test-circles-bravo/#description","title":"Description","text":"
  • node and relation defaults are enabled

  • node_one checks if relation_one is present

  • relation_one checks if node_one and node_two are present (first circle)
  • node_two checks if node_one is present (second circle)

  • node_one is present since true is assigned as condition

  • thus, node_two is present
  • thus, relation_one is present
"},{"location":"variability4tosca/tests/test-circles-bravo/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nrelation_default_condition: true\ntype_default_condition: true\noptimization_topology: true\nnode_templates:\nnode_one:\ntype: node_one\nconditions: true\nnode_two:\ntype: node_two\nconditions:\nnode_presence: node_one\nrequirements:\n- relation_one: node_one\n
"},{"location":"variability4tosca/tests/test-circles-bravo/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nrequirements:\n- relation_one: node_one\n
"},{"location":"variability4tosca/tests/test-circles-charlie/","title":"circles-charlie","text":""},{"location":"variability4tosca/tests/test-circles-charlie/#description","title":"Description","text":"

(node_one <=> node_two && node_two <=> !node_one) is contradiction

"},{"location":"variability4tosca/tests/test-circles-charlie/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nrelation_default_condition: true\ntype_default_condition: true\noptimization_topology: true\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nconditions:\nnot:\nnode_presence: node_one\nrequirements:\n- relation_one: node_one\n
"},{"location":"variability4tosca/tests/test-circles-charlie/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-circles-delta/","title":"circles-delta","text":""},{"location":"variability4tosca/tests/test-circles-delta/#description","title":"Description","text":"
  • node and relation defaults are enabled

  • node_one is present

  • relation_one checks if node_one and node_two are present (first circle)
  • node_two checks if node_one is NOT present (second circle)

  • since node_one is present, node_two is absent

  • thus, also relation_one is absent
"},{"location":"variability4tosca/tests/test-circles-delta/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nrelation_default_condition: true\ntype_default_condition: true\nexpected_incoming_relation_check: false\noptimization_topology: true\nnode_templates:\nnode_one:\ntype: node_one\nconditions: true\nnode_two:\ntype: node_two\nconditions:\nnot:\nnode_presence: node_one\nrequirements:\n- relation_one: node_one\n
"},{"location":"variability4tosca/tests/test-circles-delta/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\n
"},{"location":"variability4tosca/tests/test-circles-echo/","title":"circles-echo","text":""},{"location":"variability4tosca/tests/test-circles-echo/#description","title":"Description","text":"
  • node and relation pruning is enabled

  • node_one checks if relation_one is present

  • relation_one checks if node_one and node_two are present (first circle)
  • node_two checks if node_one is present (second circle)

  • if node_one is absent, then also node_two and relation_one are absent

  • since the solution is optimized towards minimal numbers of nodes, the expected template is empty

  • note, this is the same behaviour as if only node and relation defaults would have been enabled

"},{"location":"variability4tosca/tests/test-circles-echo/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_pruning: true\nrelation_pruning: true\ntype_default_condition: true\noptimization_topology: true\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nconditions:\nnode_presence: node_one\nrequirements:\n- relation_one: node_one\n
"},{"location":"variability4tosca/tests/test-circles-echo/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-circles-golf/","title":"circles-golf","text":""},{"location":"variability4tosca/tests/test-circles-golf/#description","title":"Description","text":"
  • node and relation pruning is enabled

  • node_one checks if relation_two_one or relation_three_one is present

  • relation_two_one checks if node_one and node_two are present (first circle)
  • node_two checks if node_one is present (second circle)
  • relation_three_one checks if node_one and node_three is present (third circle)
  • node_three is absent

  • expected template is empty wrt optimization

"},{"location":"variability4tosca/tests/test-circles-golf/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_pruning: true\nrelation_pruning: true\ntype_default_condition: true\noptimization_topology: true\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nconditions:\nnode_presence: node_one\nrequirements:\n- relation_two_one: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three_one: node_one\n
"},{"location":"variability4tosca/tests/test-circles-golf/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-circles-hotel/","title":"circles-hotel","text":""},{"location":"variability4tosca/tests/test-circles-hotel/#description","title":"Description","text":"
  • node and relation pruning is enabled

  • only node_three is present since pruning does not hold since node_three has no incoming relation in the first place

"},{"location":"variability4tosca/tests/test-circles-hotel/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_pruning: true\nrelation_pruning: true\ntype_default_condition: true\noptimization_topology: true\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nconditions:\nnode_presence: node_one\nrequirements:\n- relation_two_one: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three_one: node_one\n
"},{"location":"variability4tosca/tests/test-circles-hotel/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-circles-india/","title":"circles-india","text":""},{"location":"variability4tosca/tests/test-circles-india/#description","title":"Description","text":"
  • node pruning is enabled
  • relation defaults (NOT pruning) is enabled

  • since node_three is present, relation_three_one is present (condition is not overridden by pruning since relation pruning is not enabled)

  • since relation_three_one is present, node_one is present
  • since node_one is present, node_two is present, thus, relation_two_one is present
"},{"location":"variability4tosca/tests/test-circles-india/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_pruning: true\nrelation_default_condition: true\ntype_default_condition: true\noptimization_topology: true\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nconditions:\nnode_presence: node_one\nrequirements:\n- relation_two_one: node_one\nnode_three:\ntype: node_three\nrequirements:\n- relation_three_one:\nnode: node_one\nconditions:\nsource_presence: SELF\n
"},{"location":"variability4tosca/tests/test-circles-india/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nrequirements:\n- relation_two_one: node_one\nnode_three:\ntype: node_three\nrequirements:\n- relation_three_one: node_one\n
"},{"location":"variability4tosca/tests/test-consistency-throw-hosting-relation-missing-constraint/","title":"consistency-throw-hosting-relation-missing-constraint","text":""},{"location":"variability4tosca/tests/test-consistency-throw-hosting-relation-missing-constraint/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nhosting_stack_constraint: true\nnode_templates:\none:\ntype: one\nrequirements:\n- host:\nnode: two\nconditions: false\ntwo:\ntype: two\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-consistency-throw-hosting-relation-missing-constraint/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-consistency-throw-hosting-relation-missing/","title":"consistency-throw-hosting-relation-missing","text":""},{"location":"variability4tosca/tests/test-consistency-throw-hosting-relation-missing/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nconstraints: false\nnode_templates:\none:\ntype: one\nrequirements:\n- host:\nnode: two\nconditions: false\ntwo:\ntype: two\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-consistency-throw-hosting-relation-missing/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"one\" expected to have a hosting relation\n
"},{"location":"variability4tosca/tests/test-consistency-throw-multiple-hosting-relations-constraint/","title":"consistency-throw-multiple-hosting-relations-constraint","text":""},{"location":"variability4tosca/tests/test-consistency-throw-multiple-hosting-relations-constraint/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nconstraints: false\noptimization_topology: false\nhosting_stack_constraint: true\nnode_templates:\none:\ntype: one\nrequirements:\n- host:\nnode: two\n- host:\nnode: three\ntwo:\ntype: two\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-consistency-throw-multiple-hosting-relations-constraint/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-consistency-throw-multiple-hosting-relations/","title":"consistency-throw-multiple-hosting-relations","text":""},{"location":"variability4tosca/tests/test-consistency-throw-multiple-hosting-relations/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nconstraints: false\noptimization_topology: false\nnode_templates:\none:\ntype: one\nrequirements:\n- host:\nnode: two\n- host:\nnode: three\ntwo:\ntype: two\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-consistency-throw-multiple-hosting-relations/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"one\" has more than one hosting relations\n
"},{"location":"variability4tosca/tests/test-consistency-throw-relation-source-missing/","title":"consistency-throw-relation-source-missing","text":""},{"location":"variability4tosca/tests/test-consistency-throw-relation-source-missing/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\none:\ntype: one\nrequirements:\n- two: two\ntwo:\ntype: two\nconditions: false\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-consistency-throw-relation-source-missing/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Relation target \"two\" of relation \"two@0\" of node \"one\" does not exist\n
"},{"location":"variability4tosca/tests/test-consistency-throw-relation-target-missing/","title":"consistency-throw-relation-target-missing","text":""},{"location":"variability4tosca/tests/test-consistency-throw-relation-target-missing/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\none:\ntype: one\nconditions: false\nrequirements:\n- two:\nnode: two\ntwo:\ntype: two\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-consistency-throw-relation-target-missing/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Relation source \"one\" of relation \"two@0\" of node \"one\" does not exist\n
"},{"location":"variability4tosca/tests/test-constraint-operators-equal-false/","title":"Operator \"equal\" Evaluates to \"false\"","text":""},{"location":"variability4tosca/tests/test-constraint-operators-equal-false/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since not all parameters are equal.

"},{"location":"variability4tosca/tests/test-constraint-operators-equal-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nequal:\n- 1\n- 1\n- 2\n
"},{"location":"variability4tosca/tests/test-constraint-operators-equal-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-equal-true/","title":"Operator \"equal\" Evaluates to \"true\"","text":""},{"location":"variability4tosca/tests/test-constraint-operators-equal-true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since all parameters are equal.

"},{"location":"variability4tosca/tests/test-constraint-operators-equal-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nequal:\n- 1\n- 1\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-equal-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-equal/","title":"Operator \"greater_or_equal\" Evaluates to \"true\" (Greater)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-equal/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the first parameter is greater than the second parameter.

"},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-equal/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\ngreater_or_equal:\n- 2\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-equal/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-greater/","title":"Operator \"greater_or_equal\" Evaluates to \"true\" (Equal)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-greater/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the both parameters are equal.

"},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-greater/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\ngreater_or_equal:\n- 1\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-greater/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-less/","title":"Operator \"greater_or_equal\" Evaluates to \"false\" (Less)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-less/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the first parameter is less than the second parameter.

"},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-less/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\ngreater_or_equal:\n- 0\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-less/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-equal/","title":"Operator \"greater\" Evaluates to \"false\" (Equal)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-equal/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the parameter are equal.

"},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-equal/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\ngreater:\n- 1\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-equal/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-greater/","title":"Operator \"greater\" Evaluates to \"true\" (Greater)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-greater/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the second parameter is greater than the first parameter.

"},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-greater/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\ngreater:\n- 2\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-greater/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-less/","title":"Operator \"greater\" Evaluates to \"false\" (Less)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-less/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the first parameter is less than the second parameter.

"},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-less/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\ngreater:\n- 0\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-less/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-in_range_false/","title":"Operator \"in_range\" Evaluates to \"false\"","text":""},{"location":"variability4tosca/tests/test-constraint-operators-in_range_false/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the parameter is not in range.

"},{"location":"variability4tosca/tests/test-constraint-operators-in_range_false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nin_range:\n- 2\n- - 0\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-in_range_false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-in_range_true/","title":"Operator \"in_range\" Evaluates to \"true\"","text":""},{"location":"variability4tosca/tests/test-constraint-operators-in_range_true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the parameter is in range.

"},{"location":"variability4tosca/tests/test-constraint-operators-in_range_true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nin_range:\n- 1\n- - 0\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-in_range_true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-length_false/","title":"Operator \"length\" Evaluates to \"false\"","text":""},{"location":"variability4tosca/tests/test-constraint-operators-length_false/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the parameter has not expected length.

"},{"location":"variability4tosca/tests/test-constraint-operators-length_false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nlength:\n- hallo\n- 4\n
"},{"location":"variability4tosca/tests/test-constraint-operators-length_false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-length_true/","title":"Operator \"length\" Evaluates to \"true\"","text":""},{"location":"variability4tosca/tests/test-constraint-operators-length_true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the parameter has expected length.

"},{"location":"variability4tosca/tests/test-constraint-operators-length_true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nlength:\n- hallo\n- 5\n
"},{"location":"variability4tosca/tests/test-constraint-operators-length_true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_equal/","title":"Operator \"less_or_equal\" Evaluates to \"true\" (Equal)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_equal/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since both parameters are equal.

"},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_equal/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nless_or_equal:\n- 1\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_equal/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_greater/","title":"Operator \"less_or_equal\" Evaluates to \"false\" (Greater)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_greater/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the first parameter is greater than the second.

"},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_greater/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nless_or_equal:\n- 2\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_greater/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_less/","title":"Operator \"less_or_equal\" Evaluates to \"true\" (Less)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_less/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the first parameter is less than the second.

"},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_less/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nless_or_equal:\n- 0\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_less/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_than_equal/","title":"Operator \"less\" Evaluates to \"false\" (Equal)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-less_than_equal/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since both parameters are equal.

"},{"location":"variability4tosca/tests/test-constraint-operators-less_than_equal/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nless:\n- 1\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_than_equal/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_than_greater/","title":"Operator \"less\" Evaluates to \"false\" (Greater)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-less_than_greater/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the first parameter is greater than the second parameter.

"},{"location":"variability4tosca/tests/test-constraint-operators-less_than_greater/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nless:\n- 2\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_than_greater/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_than_less/","title":"Operator \"less\" Evaluates to \"true\" (Less)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-less_than_less/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the first parameter is less than the second.

"},{"location":"variability4tosca/tests/test-constraint-operators-less_than_less/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nless:\n- 0\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_than_less/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-max_length_equal/","title":"Operator \"max_length\" Evaluates to \"true\" (Equal)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-max_length_equal/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the parameter \"hallo\" has exactly 5 characters.

"},{"location":"variability4tosca/tests/test-constraint-operators-max_length_equal/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmax_length:\n- hallo\n- 5\n
"},{"location":"variability4tosca/tests/test-constraint-operators-max_length_equal/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-max_length_greater/","title":"Operator \"max_length\" Evaluates to \"false\" (Greater)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-max_length_greater/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the parameter \"hallo\" has more than 4 characters.

"},{"location":"variability4tosca/tests/test-constraint-operators-max_length_greater/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmax_length:\n- hallo\n- 4\n
"},{"location":"variability4tosca/tests/test-constraint-operators-max_length_greater/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-max_length_less/","title":"Operator \"max_length\" Evaluates to \"true\" (Less)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-max_length_less/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the parameter \"hallo\" has less than 6 characters.

"},{"location":"variability4tosca/tests/test-constraint-operators-max_length_less/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmax_length:\n- hallo\n- 6\n
"},{"location":"variability4tosca/tests/test-constraint-operators-max_length_less/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-min_length_equal/","title":"Operator \"min_length\" Evaluates to \"true\" (Equal)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-min_length_equal/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the parameter \"hallo\" has exactly 5 characters.

"},{"location":"variability4tosca/tests/test-constraint-operators-min_length_equal/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmin_length:\n- hallo\n- 5\n
"},{"location":"variability4tosca/tests/test-constraint-operators-min_length_equal/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-min_length_greater/","title":"Operator \"min_length\" Evaluates to \"true\" (Greater)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-min_length_greater/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the parameter \"hallo\" has more than 4 characters.

"},{"location":"variability4tosca/tests/test-constraint-operators-min_length_greater/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmin_length:\n- hallo\n- 4\n
"},{"location":"variability4tosca/tests/test-constraint-operators-min_length_greater/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-min_length_less/","title":"Operator \"min_length\" Evaluates to \"false\" (Less)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-min_length_less/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the parameter \"hallo\" has less than 4 characters.

"},{"location":"variability4tosca/tests/test-constraint-operators-min_length_less/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmin_length:\n- hallo\n- 6\n
"},{"location":"variability4tosca/tests/test-constraint-operators-min_length_less/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-valid_values_false/","title":"Operator \"valid_values\" Evaluates to \"false\"","text":""},{"location":"variability4tosca/tests/test-constraint-operators-valid_values_false/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the parameter is not a valid value.

"},{"location":"variability4tosca/tests/test-constraint-operators-valid_values_false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nvalid_values:\n- 2\n- - 0\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-valid_values_false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-valid_values_true/","title":"Operator \"valid_values\" Evaluates to \"true\"","text":""},{"location":"variability4tosca/tests/test-constraint-operators-valid_values_true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the parameter is a valid value.

"},{"location":"variability4tosca/tests/test-constraint-operators-valid_values_true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nvalid_values:\n- 1\n- - 0\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-valid_values_true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-date-operators-after-false/","title":"date-operators-after-false","text":""},{"location":"variability4tosca/tests/test-date-operators-after-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nafter:\n- 2023-01-01T00:00:00.000Z\n- 2023-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-after-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-date-operators-after-or-same-false/","title":"date-operators-after-or-same-false","text":""},{"location":"variability4tosca/tests/test-date-operators-after-or-same-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nafter_or_same:\n- 2023-01-01T00:00:00.000Z\n- 2023-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-after-or-same-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-date-operators-after-or-same-true/","title":"date-operators-after-or-same-true","text":""},{"location":"variability4tosca/tests/test-date-operators-after-or-same-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nafter_or_same:\n- 2023-01-01T00:00:00.000Z\n- 2022-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-after-or-same-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-date-operators-after-true/","title":"date-operators-after-true","text":""},{"location":"variability4tosca/tests/test-date-operators-after-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nafter:\n- 2023-01-01T00:00:00.000Z\n- 2022-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-after-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-date-operators-before-false/","title":"date-operators-before-false","text":""},{"location":"variability4tosca/tests/test-date-operators-before-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nbefore:\n- 2023-01-01T00:00:00.000Z\n- 2022-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-before-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-date-operators-before-or-same-false/","title":"date-operators-before-or-same-false","text":""},{"location":"variability4tosca/tests/test-date-operators-before-or-same-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nbefore_or_same:\n- 2023-01-01T00:00:00.000Z\n- 2022-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-before-or-same-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-date-operators-before-or-same-true/","title":"date-operators-before-or-same-true","text":""},{"location":"variability4tosca/tests/test-date-operators-before-or-same-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nbefore_or_same:\n- 2023-01-01T00:00:00.000Z\n- 2023-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-before-or-same-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-date-operators-before-true/","title":"date-operators-before-true","text":""},{"location":"variability4tosca/tests/test-date-operators-before-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nbefore:\n- 2023-01-01T00:00:00.000Z\n- 2023-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-before-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-date-operators-same-false/","title":"date-operators-same-false","text":""},{"location":"variability4tosca/tests/test-date-operators-same-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nsame:\n- 2023-01-01T00:00:00.000Z\n- 2023-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-same-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-date-operators-same-true/","title":"date-operators-same-true","text":""},{"location":"variability4tosca/tests/test-date-operators-same-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nsame:\n- 2023-01-01T00:00:00.000Z\n- 2023-01-01T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-same-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-date-operators-within-false/","title":"date-operators-within-false","text":""},{"location":"variability4tosca/tests/test-date-operators-within-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nwithin:\n- 2023-01-04T00:00:00.000Z\n- - 2023-01-01T00:00:00.000Z\n- 2023-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-within-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-date-operators-within-true/","title":"date-operators-within-true","text":""},{"location":"variability4tosca/tests/test-date-operators-within-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nwithin:\n- 2023-01-02T00:00:00.000Z\n- - 2023-01-01T00:00:00.000Z\n- 2023-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-within-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-groups-conditional/","title":"Conditional Group","text":""},{"location":"variability4tosca/tests/test-groups-conditional/#description","title":"Description","text":"
  • Removes node \"magic\" and relations \"magic.0\" und \"application.magic\" from topology (and from group members of group \"group_one\") since \"group_one\" is a variability group and its conditions are \"false\".
  • Removes group \"group_one\" since it is a variability group.
  • Removes node \"magic\" from group \"group_two\" since the node is not present.
  • Removes group \"group_three\" since its conditions are \"false\". Members are not removed since the group is a conditional group and not a variability group.
"},{"location":"variability4tosca/tests/test-groups-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\ngroups:\ngroup_one:\ntype: variability.groups.ConditionalMembers\nmembers:\n- magic\n- - magic\n- 0\n- - application\n- magic\nconditions: false\ngroup_two:\ntype: tosca.groups.Root\nmembers:\n- container\n- magic\ngroup_three:\ntype: tosca.groups.Root\nmembers:\n- vm\nconditions: false\nnode_templates:\napplication:\ntype: docker.container.application\nrequirements:\n- host: container\n- magic: magic\n- more: another_application\ncontainer:\ntype: docker.container\nrequirements:\n- host: engine\nengine:\ntype: docker.engine\nrequirements:\n- host: vm\nanother_application:\ntype: another.application\nrequirements:\n- host: another_runtime\nanother_runtime:\ntype: another.runtime\nrequirements:\n- host: vm\nvm:\ntype: openstack.vm\nmagic:\ntype: magic\nrequirements:\n- magic: application\n
"},{"location":"variability4tosca/tests/test-groups-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ngroups:\ngroup_two:\ntype: tosca.groups.Root\nmembers:\n- container\nnode_templates:\napplication:\ntype: docker.container.application\nrequirements:\n- host: container\n- more: another_application\ncontainer:\ntype: docker.container\nrequirements:\n- host: engine\nengine:\ntype: docker.engine\nrequirements:\n- host: vm\nanother_application:\ntype: another.application\nrequirements:\n- host: another_runtime\nanother_runtime:\ntype: another.runtime\nrequirements:\n- host: vm\nvm:\ntype: openstack.vm\n
"},{"location":"variability4tosca/tests/test-groups-default-condition-nothing/","title":"groups-default-condition-nothing","text":""},{"location":"variability4tosca/tests/test-groups-default-condition-nothing/#description","title":"Description","text":"

Group \"group_three\" is not removed since its conditions are \"true\".

"},{"location":"variability4tosca/tests/test-groups-default-condition-nothing/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\ngroups:\ngroup_one:\ntype: variability.groups.ConditionalMembers\nmembers:\n- magic\n- - magic\n- 0\n- - application\n- magic\nconditions: false\ngroup_two:\ntype: tosca.groups.Root\nmembers:\n- container\n- magic\ngroup_three:\ntype: tosca.groups.Root\nmembers:\n- magic\nconditions: true\nnode_templates:\napplication:\ntype: docker.container.application\nrequirements:\n- host: container\n- magic: magic\n- more: another_application\ncontainer:\ntype: docker.container\nrequirements:\n- host: engine\nengine:\ntype: docker.engine\nrequirements:\n- host: vm\nanother_application:\ntype: another.application\nrequirements:\n- host: another_runtime\nanother_runtime:\ntype: another.runtime\nrequirements:\n- host: vm\nvm:\ntype: openstack.vm\nmagic:\ntype: magic\nrequirements:\n- magic: application\n
"},{"location":"variability4tosca/tests/test-groups-default-condition-nothing/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ngroups:\ngroup_two:\ntype: tosca.groups.Root\nmembers:\n- container\ngroup_three:\ntype: tosca.groups.Root\nmembers: []\nnode_templates:\napplication:\ntype: docker.container.application\nrequirements:\n- host: container\n- more: another_application\ncontainer:\ntype: docker.container\nrequirements:\n- host: engine\nengine:\ntype: docker.engine\nrequirements:\n- host: vm\nanother_application:\ntype: another.application\nrequirements:\n- host: another_runtime\nanother_runtime:\ntype: another.runtime\nrequirements:\n- host: vm\nvm:\ntype: openstack.vm\n
"},{"location":"variability4tosca/tests/test-groups-default-condition/","title":"groups-default-condition","text":""},{"location":"variability4tosca/tests/test-groups-default-condition/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ngroup_default_condition: true\ntype_default_condition: true\nexpected_incoming_relation_check: false\ngroups:\ngroup_one:\ntype: variability.groups.ConditionalMembers\nmembers:\n- magic\n- - magic\n- 0\n- - application\n- magic\nconditions: false\ngroup_two:\ntype: tosca.groups.Root\nmembers:\n- container\n- magic\ngroup_three:\ntype: tosca.groups.Root\nmembers:\n- magic\nnode_templates:\napplication:\ntype: docker.container.application\nrequirements:\n- host: container\n- magic: magic\n- more: another_application\ncontainer:\ntype: docker.container\nrequirements:\n- host: engine\nengine:\ntype: docker.engine\nrequirements:\n- host: vm\nanother_application:\ntype: another.application\nrequirements:\n- host: another_runtime\nanother_runtime:\ntype: another.runtime\nrequirements:\n- host: vm\nvm:\ntype: openstack.vm\nmagic:\ntype: magic\nrequirements:\n- magic: application\n
"},{"location":"variability4tosca/tests/test-groups-default-condition/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ngroups:\ngroup_two:\ntype: tosca.groups.Root\nmembers:\n- container\nnode_templates:\napplication:\ntype: docker.container.application\nrequirements:\n- host: container\n- more: another_application\ncontainer:\ntype: docker.container\nrequirements:\n- host: engine\nengine:\ntype: docker.engine\nrequirements:\n- host: vm\nanother_application:\ntype: another.application\nrequirements:\n- host: another_runtime\nanother_runtime:\ntype: another.runtime\nrequirements:\n- host: vm\nvm:\ntype: openstack.vm\n
"},{"location":"variability4tosca/tests/test-groups-group-presence-absent/","title":"groups-group-presence-absent","text":""},{"location":"variability4tosca/tests/test-groups-group-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\ngroup_presence: group_one\ngroups:\ngroup_one:\ntype: group_one\nconditions: false\nmembers: []\n
"},{"location":"variability4tosca/tests/test-groups-group-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-groups-group-presence-present/","title":"groups-group-presence-present","text":""},{"location":"variability4tosca/tests/test-groups-group-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\ngroup_presence: group_one\ngroups:\ngroup_one:\ntype: group_one\nconditions: true\nmembers: []\n
"},{"location":"variability4tosca/tests/test-groups-group-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\ngroups:\ngroup_one:\ntype: group_one\nmembers: []\n
"},{"location":"variability4tosca/tests/test-groups-prune/","title":"groups-prune","text":""},{"location":"variability4tosca/tests/test-groups-prune/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ngroup_pruning: true\ntype_default_condition: true\nexpected_incoming_relation_check: false\ngroups:\ngroup_one:\ntype: variability.groups.ConditionalMembers\nmembers:\n- magic\n- - magic\n- 0\n- - application\n- magic\nconditions: false\ngroup_two:\ntype: tosca.groups.Root\nmembers:\n- container\n- magic\ngroup_three:\ntype: tosca.groups.Root\nmembers:\n- magic\nconditions: true\nnode_templates:\napplication:\ntype: docker.container.application\nrequirements:\n- host: container\n- magic: magic\n- more: another_application\ncontainer:\ntype: docker.container\nrequirements:\n- host: engine\nengine:\ntype: docker.engine\nrequirements:\n- host: vm\nanother_application:\ntype: another.application\nrequirements:\n- host: another_runtime\nanother_runtime:\ntype: another.runtime\nrequirements:\n- host: vm\nvm:\ntype: openstack.vm\nmagic:\ntype: magic\nrequirements:\n- magic: application\n
"},{"location":"variability4tosca/tests/test-groups-prune/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ngroups:\ngroup_two:\ntype: tosca.groups.Root\nmembers:\n- container\nnode_templates:\napplication:\ntype: docker.container.application\nrequirements:\n- host: container\n- more: another_application\ncontainer:\ntype: docker.container\nrequirements:\n- host: engine\nengine:\ntype: docker.engine\nrequirements:\n- host: vm\nanother_application:\ntype: another.application\nrequirements:\n- host: another_runtime\nanother_runtime:\ntype: another.runtime\nrequirements:\n- host: vm\nvm:\ntype: openstack.vm\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-constraints-elastic/","title":"hosting-aware-pruning-constraints-elastic","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-constraints-elastic/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: false\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_compute\n- host:\nnode: gcp_runtime\n- database:\nnode: os_database\nconditions:\nlogic_expression: is_static\nimplied: true\n- database:\nnode: gcp_database\nconditions:\nlogic_expression: is_elastic\nimplied: true\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-constraints-elastic/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: gcp_runtime\n- database: gcp_database\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-constraints-static/","title":"hosting-aware-pruning-constraints-static","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-constraints-static/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: false\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_compute\n- host:\nnode: gcp_runtime\n- database:\nnode: os_database\nconditions:\nlogic_expression: is_static\nimplied: true\n- database:\nnode: gcp_database\nconditions:\nlogic_expression: is_elastic\nimplied: true\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-constraints-static/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: os_compute\n- database: os_database\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-fig-10-broken/","title":"hosting-aware-pruning-fig-10-broken","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-fig-10-broken/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-artifact-host\noptimization_topology: min\noptimization_topology_unique: false\nhosting_stack_constraint: true\nnode_templates:\napp:\ntype: app\npersistent: true\nrequirements:\n- host: elastic\n- host: static\n- database:\nnode: database\nimplied: true\ndatabase:\ntype: database\nstatic:\ntype: static\nelastic:\ntype: elastic\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-fig-10-broken/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-fig-10-fixed/","title":"hosting-aware-pruning-fig-10-fixed","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-fig-10-fixed/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive-artifact-host\noptimization_topology: min\noptimization_topology_unique: false\nhosting_stack_constraint: true\nnode_templates:\napp:\ntype: app\npersistent: true\nrequirements:\n- host: elastic\n- host: static\n- database:\nnode: database\nimplied: true\ndatabase:\ntype: database\nstatic:\ntype: static\nelastic:\ntype: elastic\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-fig-10-fixed/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napp:\ntype: app\nrequirements:\n- host: elastic\n- database: database\ndatabase:\ntype: database\nelastic:\ntype: elastic\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-host-elastic/","title":"hosting-aware-pruning-host-elastic","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-host-elastic/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: false\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_compute\n- host:\nnode: gcp_runtime\n- database:\nnode: os_database\n- database:\nnode: gcp_database\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nconditions:\nlogic_expression: is_static\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\ngcp_runtime:\ntype: gcp.runtime\nconditions:\nlogic_expression: is_elastic\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nconditions:\nlogic_expression: is_elastic\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-host-elastic/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

The result is ambiguous considering nodes (without optimization)\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-host-static/","title":"hosting-aware-pruning-host-static","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-host-static/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: false\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_compute\n- host:\nnode: gcp_runtime\n- database:\nnode: os_database\n- database:\nnode: gcp_database\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nconditions:\nlogic_expression: is_static\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\ngcp_runtime:\ntype: gcp.runtime\nconditions:\nlogic_expression: is_elastic\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nconditions:\nlogic_expression: is_elastic\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-host-static/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: os_compute\n- database: os_database\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-motivation-elastic/","title":"hosting-aware-pruning-motivation-elastic","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-motivation-elastic/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming\nhosting_stack_constraint: false\noptimization_topology: false\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_compute\nconditions:\nlogic_expression: is_static\n- host:\nnode: gcp_runtime\nconditions:\nlogic_expression: is_elastic\n- database:\nnode: os_database\nconditions:\nlogic_expression: is_static\n- database:\nnode: gcp_database\nconditions:\nlogic_expression: is_elastic\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nconditions:\nlogic_expression: is_static\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-motivation-elastic/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: gcp_runtime\n- database: gcp_database\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-motivation-static/","title":"hosting-aware-pruning-motivation-static","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-motivation-static/#description","title":"Description","text":"
  • 2 conditions at shop hosting relations
  • required to trigger incoming pruning
  • alternative is to model 2 conditions at the direct hosts

  • 2 conditions at shop database connections

  • required, since database must be pruned
  • alternative is to model 2 conditions at the databases directly

  • 1 condition at monitor

  • required, since incoming pruning of monitor host is not triggered

  • 5 conditions in total

  • hosting_stack_constraint has no effect

  • optimization has no effect
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-motivation-static/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming\nhosting_stack_constraint: false\noptimization_topology: false\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_compute\nconditions:\nlogic_expression: is_static\n- host:\nnode: gcp_runtime\nconditions:\nlogic_expression: is_elastic\n- database:\nnode: os_database\nconditions:\nlogic_expression: is_static\n- database:\nnode: gcp_database\nconditions:\nlogic_expression: is_elastic\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nconditions:\nlogic_expression: is_static\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-motivation-static/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: os_compute\n- database: os_database\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-provider-elastic/","title":"hosting-aware-pruning-provider-elastic","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-provider-elastic/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: false\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_compute\n- host:\nnode: gcp_runtime\n- database:\nnode: os_database\n- database:\nnode: gcp_database\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\nconditions:\nlogic_expression: is_static\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\nconditions:\nlogic_expression: is_elastic\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-provider-elastic/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

The result is ambiguous considering nodes (without optimization)\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-provider-static/","title":"hosting-aware-pruning-provider-static","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-provider-static/#description","title":"Description","text":"

-

"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-provider-static/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: false\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_compute\n- host:\nnode: gcp_runtime\n- database:\nnode: os_database\n- database:\nnode: gcp_database\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\nconditions:\nlogic_expression: is_static\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\nconditions:\nlogic_expression: is_elastic\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-provider-static/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: os_compute\n- database: os_database\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-ambiguous/","title":"hosting-aware-pruning-transitive-ambiguous","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-ambiguous/#description","title":"Description","text":"
  • ambiguous since circle at agent
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-ambiguous/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: false\noptimization_topology: false\noptimization_topology_unique: true\nnode_templates:\nagent:\ntype: agent\nrequirements:\n- host: vm\nworker:\ntype: worker\npersistent: true\nrequirements:\n- host:\nnode: vm\nvm:\ntype: vm\nrequirements:\n- host: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-ambiguous/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

The result is ambiguous considering nodes (without optimization)\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-both/","title":"hosting-aware-pruning-transitive-both","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-both/#description","title":"Description","text":"
  • hypervisor is preserved in contrast to \"transitive-unexpected\"
  • and not ambiguous as in \"transitive-ambiguous\"
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-both/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nagent:\ntype: agent\nrequirements:\n- host: vm\nworker:\ntype: worker\npersistent: true\nrequirements:\n- host:\nnode: vm\nvm:\ntype: vm\nrequirements:\n- host: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-both/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nagent:\ntype: agent\nrequirements:\n- host: vm\nworker:\ntype: worker\nrequirements:\n- host: vm\nvm:\ntype: vm\nrequirements:\n- host: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-preserved/","title":"hosting-aware-pruning-transitive-preserved","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-preserved/#description","title":"Description","text":"
  • hypervisor is preserved in contrast to \"transitive-unexpected\"
  • and not ambiguous as in \"transitive-ambiguous\"
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-preserved/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology_unique: true\nnode_templates:\nagent:\ntype: agent\nrequirements:\n- host: vm\nworker:\ntype: worker\npersistent: true\nrequirements:\n- host:\nnode: vm\nvm:\ntype: vm\nrequirements:\n- host: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-preserved/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nagent:\ntype: agent\nrequirements:\n- host: vm\nworker:\ntype: worker\nrequirements:\n- host: vm\nvm:\ntype: vm\nrequirements:\n- host: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-unexpected/","title":"hosting-aware-pruning-transitive-unexpected","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-unexpected/#description","title":"Description","text":"
  • circle at hypervisor
  • circle at agent

  • pruned due to optimization

"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-unexpected/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: false\noptimization_topology: true\noptimization_topology_unique: true\nexpected_hosting_check: false\nnode_templates:\nagent:\ntype: agent\nrequirements:\n- host: vm\nworker:\ntype: worker\npersistent: true\nrequirements:\n- host:\nnode: vm\nvm:\ntype: vm\nrequirements:\n- host: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-unexpected/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\n
"},{"location":"variability4tosca/tests/test-implications-constraints/","title":"implications-constraints","text":""},{"location":"variability4tosca/tests/test-implications-constraints/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nhosting_stack_constraint: true\noptimization_topology: false\noptimization_topology_unique: true\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\nconstraints:\n- implies:\n- logic_expression: is_static\n- relation_presence:\n- worker\n- dev_host\n- implies:\n- logic_expression: is_elastic\n- relation_presence:\n- worker\n- prod_host\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- dev_database:\nnode: dev_database\n- dev_host:\nnode: dev_host\n- prod_database:\nnode: prod_database\n- prod_host:\nnode: prod_host\ndev_database:\ntype: dev_database\nrequirements:\n- host: dev_host\ndev_host:\ntype: dev_host\nrequirements:\n- host:\nnode: dev_cloud\ndev_cloud:\ntype: dev_cloud\nprod_database:\ntype: prod_database\nrequirements:\n- host: prod_host\nprod_host:\ntype: prod_host\nrequirements:\n- host:\nnode: prod_cloud\nprod_cloud:\ntype: prod_cloud\n
"},{"location":"variability4tosca/tests/test-implications-constraints/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- prod_database: prod_database\n- prod_host: prod_host\nprod_database:\ntype: prod_database\nrequirements:\n- host: prod_host\nprod_host:\ntype: prod_host\nrequirements:\n- host: prod_cloud\nprod_cloud:\ntype: prod_cloud\n
"},{"location":"variability4tosca/tests/test-implications-implied-left/","title":"implications-implied-left","text":""},{"location":"variability4tosca/tests/test-implications-implied-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-implied-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- left: left\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\n
"},{"location":"variability4tosca/tests/test-implications-implied-right/","title":"implications-implied-right","text":""},{"location":"variability4tosca/tests/test-implications-implied-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-implied-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- right: right\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-implies-left/","title":"implications-implies-left","text":""},{"location":"variability4tosca/tests/test-implications-implies-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nimplies:\n- - relation_presence:\n- SELF\n- left\n- logic_expression: is_left\n- - relation_presence:\n- SELF\n- right\n- logic_expression: is_right\nrequirements:\n- left: left\n- right: right\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-implies-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- left: left\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\n
"},{"location":"variability4tosca/tests/test-implications-implies-right/","title":"implications-implies-right","text":""},{"location":"variability4tosca/tests/test-implications-implies-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nimplies:\n- - relation_presence:\n- SELF\n- left\n- logic_expression: is_left\n- - relation_presence:\n- SELF\n- right\n- logic_expression: is_right\nrequirements:\n- left: left\n- right: right\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-implies-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- right: right\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-incoming-left/","title":"implications-incoming-left","text":""},{"location":"variability4tosca/tests/test-implications-incoming-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nright:\ntype: right\nrequirements:\n- host: far_right\nfar_right:\ntype: far.right\n
"},{"location":"variability4tosca/tests/test-implications-incoming-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- left: left\nleft:\ntype: left\n
"},{"location":"variability4tosca/tests/test-implications-incoming-right/","title":"implications-incoming-right","text":""},{"location":"variability4tosca/tests/test-implications-incoming-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nright:\ntype: right\nrequirements:\n- host: far_right\nfar_right:\ntype: far.right\n
"},{"location":"variability4tosca/tests/test-implications-incoming-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- right: right\nright:\ntype: right\nrequirements:\n- host: far_right\nfar_right:\ntype: far.right\n
"},{"location":"variability4tosca/tests/test-implications-motivating-scenario-cloud/","title":"implications-motivating-scenario-cloud","text":""},{"location":"variability4tosca/tests/test-implications-motivating-scenario-cloud/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: true\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_kubernetes\nconditions:\nlogic_expression: is_static\n- host:\nnode: gcp_runtime\nconditions:\nlogic_expression: is_elastic\n- database:\nnode: database\nconditions: true\nimplied: true\ndatabase:\ntype: shop.database\nrequirements:\n- host:\nnode: os_dbms\n- host:\nnode: gcp_dbms\nos_dbms:\ntype: os.dbms\nrequirements:\n- host: os_kubernetes\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_kubernetes\nos_logger:\ntype: os.logger\nrequirements:\n- host: os_kubernetes\nos_kubernetes:\ntype: os.kubernetes\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os_cloud\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.cloud\n
"},{"location":"variability4tosca/tests/test-implications-motivating-scenario-cloud/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: gcp_runtime\n- database: database\ndatabase:\ntype: shop.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.cloud\n
"},{"location":"variability4tosca/tests/test-implications-motivating-scenario-static/","title":"implications-motivating-scenario-static","text":""},{"location":"variability4tosca/tests/test-implications-motivating-scenario-static/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: true\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_kubernetes\nconditions:\nlogic_expression: is_static\n- host:\nnode: gcp_runtime\nconditions:\nlogic_expression: is_elastic\n- database:\nnode: database\nconditions: true\nimplied: true\ndatabase:\ntype: shop.database\nrequirements:\n- host:\nnode: os_dbms\n- host:\nnode: gcp_dbms\nos_dbms:\ntype: os.dbms\nrequirements:\n- host: os_kubernetes\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_kubernetes\nos_logger:\ntype: os.logger\nrequirements:\n- host: os_kubernetes\nos_kubernetes:\ntype: os.kubernetes\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os_cloud\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.cloud\n
"},{"location":"variability4tosca/tests/test-implications-motivating-scenario-static/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: os_kubernetes\n- database: database\ndatabase:\ntype: shop.database\nrequirements:\n- host: os_dbms\nos_dbms:\ntype: os.dbms\nrequirements:\n- host: os_kubernetes\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_kubernetes\nos_logger:\ntype: os.logger\nrequirements:\n- host: os_kubernetes\nos_kubernetes:\ntype: os.kubernetes\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os_cloud\n
"},{"location":"variability4tosca/tests/test-implications-naive-constraints/","title":"implications-naive-constraints","text":""},{"location":"variability4tosca/tests/test-implications-naive-constraints/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incomingnaive-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\nconstraints:\n- implies:\n- logic_expression: is_static\n- relation_presence:\n- worker\n- dev_host\n- implies:\n- logic_expression: is_static\n- relation_presence:\n- worker\n- dev_database\n- implies:\n- logic_expression: is_elastic\n- relation_presence:\n- worker\n- prod_host\n- implies:\n- logic_expression: is_elastic\n- relation_presence:\n- worker\n- prod_database\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- dev_database:\nnode: dev_database\n- dev_host:\nnode: dev_host\n- prod_database:\nnode: prod_database\n- prod_host:\nnode: prod_host\ndev_database:\ntype: dev_database\nrequirements:\n- host: dev_host\ndev_host:\ntype: dev_host\nrequirements:\n- host:\nnode: dev_cloud\ndev_cloud:\ntype: dev_cloud\nprod_database:\ntype: prod_database\nrequirements:\n- host: prod_host\nprod_host:\ntype: prod_host\nrequirements:\n- host:\nnode: prod_cloud\nprod_cloud:\ntype: prod_cloud\n
"},{"location":"variability4tosca/tests/test-implications-naive-constraints/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- prod_database: prod_database\n- prod_host: prod_host\nprod_database:\ntype: prod_database\nrequirements:\n- host: prod_host\nprod_host:\ntype: prod_host\nrequirements:\n- host: prod_cloud\nprod_cloud:\ntype: prod_cloud\n
"},{"location":"variability4tosca/tests/test-implications-naive-implied-left/","title":"implications-naive-implied-left","text":""},{"location":"variability4tosca/tests/test-implications-naive-implied-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-naive-implied-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- left: left\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\n
"},{"location":"variability4tosca/tests/test-implications-naive-implied-right/","title":"implications-naive-implied-right","text":""},{"location":"variability4tosca/tests/test-implications-naive-implied-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-naive-implied-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- right: right\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-naive-implies-left/","title":"implications-naive-implies-left","text":""},{"location":"variability4tosca/tests/test-implications-naive-implies-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nimplies:\n- - relation_presence:\n- SELF\n- left\n- logic_expression: is_left\n- - relation_presence:\n- SELF\n- right\n- logic_expression: is_right\nrequirements:\n- left: left\n- right: right\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-naive-implies-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- left: left\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\n
"},{"location":"variability4tosca/tests/test-implications-naive-implies-right/","title":"implications-naive-implies-right","text":""},{"location":"variability4tosca/tests/test-implications-naive-implies-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nimplies:\n- - relation_presence:\n- SELF\n- left\n- logic_expression: is_left\n- - relation_presence:\n- SELF\n- right\n- logic_expression: is_right\nrequirements:\n- left: left\n- right: right\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-naive-implies-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- right: right\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-naive-incoming-left/","title":"implications-naive-incoming-left","text":""},{"location":"variability4tosca/tests/test-implications-naive-incoming-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nright:\ntype: right\nrequirements:\n- host: far_right\nfar_right:\ntype: far.right\n
"},{"location":"variability4tosca/tests/test-implications-naive-incoming-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- left: left\nleft:\ntype: left\n
"},{"location":"variability4tosca/tests/test-implications-naive-incoming-right/","title":"implications-naive-incoming-right","text":""},{"location":"variability4tosca/tests/test-implications-naive-incoming-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nright:\ntype: right\nrequirements:\n- host: far_right\nfar_right:\ntype: far.right\n
"},{"location":"variability4tosca/tests/test-implications-naive-incoming-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- right: right\nright:\ntype: right\nrequirements:\n- host: far_right\nfar_right:\ntype: far.right\n
"},{"location":"variability4tosca/tests/test-implications-naive-motivating-scenario-cloud/","title":"implications-naive-motivating-scenario-cloud","text":""},{"location":"variability4tosca/tests/test-implications-naive-motivating-scenario-cloud/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive-host\nhosting_stack_constraint: true\noptimization_topology: true\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_kubernetes\nconditions:\nlogic_expression: is_static\n- host:\nnode: gcp_runtime\nconditions:\nlogic_expression: is_elastic\n- database:\nnode: database\nconditions: true\nimplied: true\ndatabase:\ntype: shop.database\nrequirements:\n- host:\nnode: os_dbms\n- host:\nnode: gcp_dbms\nos_dbms:\ntype: os.dbms\nrequirements:\n- host: os_kubernetes\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_kubernetes\nos_logger:\ntype: os.logger\nrequirements:\n- host: os_kubernetes\nos_kubernetes:\ntype: os.kubernetes\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os_cloud\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.cloud\n
"},{"location":"variability4tosca/tests/test-implications-naive-motivating-scenario-cloud/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: gcp_runtime\n- database: database\ndatabase:\ntype: shop.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.cloud\n
"},{"location":"variability4tosca/tests/test-implications-naive-motivating-scenario-static/","title":"implications-naive-motivating-scenario-static","text":""},{"location":"variability4tosca/tests/test-implications-naive-motivating-scenario-static/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive-host\nhosting_stack_constraint: true\noptimization_topology: true\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_kubernetes\nconditions:\nlogic_expression: is_static\n- host:\nnode: gcp_runtime\nconditions:\nlogic_expression: is_elastic\n- database:\nnode: database\nconditions: true\nimplied: true\ndatabase:\ntype: shop.database\nrequirements:\n- host:\nnode: os_dbms\n- host:\nnode: gcp_dbms\nos_dbms:\ntype: os.dbms\nrequirements:\n- host: os_kubernetes\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_kubernetes\nos_logger:\ntype: os.logger\nrequirements:\n- host: os_kubernetes\nos_kubernetes:\ntype: os.kubernetes\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os_cloud\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.cloud\n
"},{"location":"variability4tosca/tests/test-implications-naive-motivating-scenario-static/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: os_kubernetes\n- database: database\ndatabase:\ntype: shop.database\nrequirements:\n- host: os_dbms\nos_dbms:\ntype: os.dbms\nrequirements:\n- host: os_kubernetes\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_kubernetes\nos_logger:\ntype: os.logger\nrequirements:\n- host: os_kubernetes\nos_kubernetes:\ntype: os.kubernetes\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os_cloud\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive-another-no-optimization/","title":"implications-naive-naive-another-no-optimization","text":""},{"location":"variability4tosca/tests/test-implications-naive-naive-another-no-optimization/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incomingnaive-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nhosting_stack_constraint: true\noptimization_topology: false\noptimization_topology_unique: true\nnode_templates:\napp:\ntype: app\npersistent: true\nrequirements:\n- database:\nnode: database\nimplied: true\n- host:\nnode: static\n- host:\nnode: elastic\ndatabase:\ntype: database\nrequirements:\n- host:\nnode: static\nstatic:\ntype: static\nelastic:\ntype: elastic\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive-another-no-optimization/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napp:\ntype: app\nrequirements:\n- database: database\n- host: static\ndatabase:\ntype: database\nrequirements:\n- host: static\nstatic:\ntype: static\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive-another-not/","title":"implications-naive-naive-another-not","text":""},{"location":"variability4tosca/tests/test-implications-naive-naive-another-not/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\napp:\ntype: app\npersistent: true\nrequirements:\n- database:\nnode: database\nimplied: true\n- host:\nnode: static\n- host:\nnode: elastic\ndatabase:\ntype: database\nrequirements:\n- host:\nnode: static\nstatic:\ntype: static\nelastic:\ntype: elastic\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive-another-not/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive-another/","title":"implications-naive-naive-another","text":""},{"location":"variability4tosca/tests/test-implications-naive-naive-another/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incomingnaive-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\napp:\ntype: app\npersistent: true\nrequirements:\n- database:\nnode: database\nimplied: true\n- host:\nnode: static\n- host:\nnode: elastic\ndatabase:\ntype: database\nrequirements:\n- host:\nnode: static\nstatic:\ntype: static\nelastic:\ntype: elastic\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive-another/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napp:\ntype: app\nrequirements:\n- database: database\n- host: static\ndatabase:\ntype: database\nrequirements:\n- host: static\nstatic:\ntype: static\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive-not/","title":"implications-naive-naive-not","text":""},{"location":"variability4tosca/tests/test-implications-naive-naive-not/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- host:\nnode: dev_host\n- host:\nnode: prod_host\ndev_host:\ntype: dev_host\nprod_host:\ntype: prod_host\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive-not/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive/","title":"implications-naive-naive","text":""},{"location":"variability4tosca/tests/test-implications-naive-naive/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incomingnaive-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- host:\nnode: dev_host\n- host:\nnode: prod_host\ndev_host:\ntype: dev_host\nprod_host:\ntype: prod_host\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

The result is ambiguous considering nodes (besides optimization)\n
"},{"location":"variability4tosca/tests/test-implications-naive-requires/","title":"implications-naive-requires","text":""},{"location":"variability4tosca/tests/test-implications-naive-requires/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nconditions: false\nright:\ntype: right\nrequirements:\n- far_right: far_right\nfar_right:\ntype: far.right\n
"},{"location":"variability4tosca/tests/test-implications-naive-requires/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-implications-naive-unexpected/","title":"implications-naive-unexpected","text":""},{"location":"variability4tosca/tests/test-implications-naive-unexpected/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left: left\n- right: right\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-naive-unexpected/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\n
"},{"location":"variability4tosca/tests/test-implications-requires/","title":"implications-requires","text":""},{"location":"variability4tosca/tests/test-implications-requires/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nconditions: false\nright:\ntype: right\nrequirements:\n- far_right: far_right\nfar_right:\ntype: far.right\n
"},{"location":"variability4tosca/tests/test-implications-requires/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-implications-unexpected/","title":"implications-unexpected","text":""},{"location":"variability4tosca/tests/test-implications-unexpected/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left: left\n- right: right\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-unexpected/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\n
"},{"location":"variability4tosca/tests/test-implied-default-fixed-left/","title":"implied-default-fixed-left","text":""},{"location":"variability4tosca/tests/test-implied-default-fixed-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_2\ntopology_template:\nvariability:\ninputs:\nl:\ntype: boolean\nexpressions:\nis_l:\nequal:\n- variability_input: l\n- true\nis_r:\nequal:\n- variability_input: l\n- false\noptions:\nexpected_incoming_relation_check: false\nrequired_incoming_relation_constraint: false\nenrich_technologies: false\nnode_templates:\napplication:\ntype: Application\npersistent: true\nrequirements:\n- connection:\nnode: left\nconditions:\nlogic_expression: is_l\n- connection:\nnode: right\ndefault_alternative: true\nright:\ntype: Right\npersistent: true\nleft:\ntype: Left\npersistent: true\n
"},{"location":"variability4tosca/tests/test-implied-default-fixed-left/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

l: true\n
"},{"location":"variability4tosca/tests/test-implied-default-fixed-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napplication:\ntype: Application\nrequirements:\n- connection: left\nright:\ntype: Right\nleft:\ntype: Left\n
"},{"location":"variability4tosca/tests/test-implied-default-fixed-right/","title":"implied-default-fixed-right","text":""},{"location":"variability4tosca/tests/test-implied-default-fixed-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_2\ntopology_template:\nvariability:\ninputs:\nl:\ntype: boolean\nexpressions:\nis_l:\nequal:\n- variability_input: l\n- true\nis_r:\nequal:\n- variability_input: l\n- false\noptions:\nexpected_incoming_relation_check: false\nrequired_incoming_relation_constraint: false\nenrich_technologies: false\nnode_templates:\napplication:\ntype: Application\npersistent: true\nrequirements:\n- connection:\nnode: left\nconditions:\nlogic_expression: is_l\n- connection:\nnode: right\ndefault_alternative: true\nright:\ntype: Right\npersistent: true\nleft:\ntype: Left\npersistent: true\n
"},{"location":"variability4tosca/tests/test-implied-default-fixed-right/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

l: false\n
"},{"location":"variability4tosca/tests/test-implied-default-fixed-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napplication:\ntype: Application\nrequirements:\n- connection: right\nright:\ntype: Right\nleft:\ntype: Left\n
"},{"location":"variability4tosca/tests/test-implied-default-manual-left/","title":"implied-default-manual-left","text":""},{"location":"variability4tosca/tests/test-implied-default-manual-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_2\ntopology_template:\nvariability:\ninputs:\nl:\ntype: boolean\nexpressions:\nis_l:\nequal:\n- variability_input: l\n- true\nis_r:\nequal:\n- variability_input: l\n- false\noptions:\nexpected_incoming_relation_check: false\nrequired_incoming_relation_constraint: false\nenrich_technologies: false\nnode_templates:\napplication:\ntype: Application\npersistent: true\nrequirements:\n- connection:\nnode: left\nconditions:\nlogic_expression: is_l\nimplied: false\n- connection:\nnode: right\nimplied: false\ndefault_alternative: true\nright:\ntype: Right\npersistent: true\nleft:\ntype: Left\npersistent: true\n
"},{"location":"variability4tosca/tests/test-implied-default-manual-left/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

l: true\n
"},{"location":"variability4tosca/tests/test-implied-default-manual-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napplication:\ntype: Application\nrequirements:\n- connection: left\nright:\ntype: Right\nleft:\ntype: Left\n
"},{"location":"variability4tosca/tests/test-implied-default-manual-right/","title":"implied-default-manual-right","text":""},{"location":"variability4tosca/tests/test-implied-default-manual-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_2\ntopology_template:\nvariability:\ninputs:\nl:\ntype: boolean\nexpressions:\nis_l:\nequal:\n- variability_input: l\n- true\nis_r:\nequal:\n- variability_input: l\n- false\noptions:\nexpected_incoming_relation_check: false\nrequired_incoming_relation_constraint: false\nenrich_technologies: false\nnode_templates:\napplication:\ntype: Application\npersistent: true\nrequirements:\n- connection:\nnode: left\nconditions:\nlogic_expression: is_l\nimplied: false\n- connection:\nnode: right\nimplied: false\ndefault_alternative: true\nright:\ntype: Right\npersistent: true\nleft:\ntype: Left\npersistent: true\n
"},{"location":"variability4tosca/tests/test-implied-default-manual-right/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

l: false\n
"},{"location":"variability4tosca/tests/test-implied-default-manual-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napplication:\ntype: Application\nrequirements:\n- connection: right\nright:\ntype: Right\nleft:\ntype: Left\n
"},{"location":"variability4tosca/tests/test-implied-host-broken/","title":"implied-host-broken","text":""},{"location":"variability4tosca/tests/test-implied-host-broken/#description","title":"Description","text":"

Only one hosting relation must be present. Hence, there is a conflict between implied relations and hosting constraints.

"},{"location":"variability4tosca/tests/test-implied-host-broken/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_2\ntopology_template:\nvariability:\ninputs:\nl:\ntype: boolean\nexpressions:\nis_l:\nequal:\n- variability_input: l\n- true\nis_r:\nequal:\n- variability_input: l\n- false\noptions:\nenrich_technologies: false\nnode_templates:\napplication:\ntype: Application\npersistent: true\nrequirements:\n- host:\nnode: left\nimplied: true\n- host:\nnode: right\nimplied: true\nright:\ntype: Right\nconditions:\nlogic_expression: is_r\nleft:\ntype: Left\nconditions:\nlogic_expression: is_l\n
"},{"location":"variability4tosca/tests/test-implied-host-broken/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

l: true\n
"},{"location":"variability4tosca/tests/test-implied-host-broken/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-implied-host-fixed-left/","title":"implied-host-fixed-left","text":""},{"location":"variability4tosca/tests/test-implied-host-fixed-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_2\ntopology_template:\nvariability:\ninputs:\nl:\ntype: boolean\nexpressions:\nis_l:\nequal:\n- variability_input: l\n- true\nis_r:\nequal:\n- variability_input: l\n- false\noptions:\nenrich_technologies: false\nnode_templates:\napplication:\ntype: Application\npersistent: true\nrequirements:\n- host: left\n- host: right\nright:\ntype: Right\nconditions:\nlogic_expression: is_r\nleft:\ntype: Left\nconditions:\nlogic_expression: is_l\n
"},{"location":"variability4tosca/tests/test-implied-host-fixed-left/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

l: true\n
"},{"location":"variability4tosca/tests/test-implied-host-fixed-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napplication:\ntype: Application\nrequirements:\n- host: left\nleft:\ntype: Left\n
"},{"location":"variability4tosca/tests/test-implied-host-fixed-right/","title":"implied-host-fixed-right","text":""},{"location":"variability4tosca/tests/test-implied-host-fixed-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_2\ntopology_template:\nvariability:\ninputs:\nl:\ntype: boolean\nexpressions:\nis_l:\nequal:\n- variability_input: l\n- true\nis_r:\nequal:\n- variability_input: l\n- false\noptions:\nenrich_technologies: false\nnode_templates:\napplication:\ntype: Application\npersistent: true\nrequirements:\n- host: left\n- host: right\nright:\ntype: Right\nconditions:\nlogic_expression: is_r\nleft:\ntype: Left\nconditions:\nlogic_expression: is_l\n
"},{"location":"variability4tosca/tests/test-implied-host-fixed-right/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

l: true\n
"},{"location":"variability4tosca/tests/test-implied-host-fixed-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napplication:\ntype: Application\nrequirements:\n- host: left\nleft:\ntype: Left\n
"},{"location":"variability4tosca/tests/test-implied-host-manual-left/","title":"implied-host-manual-left","text":""},{"location":"variability4tosca/tests/test-implied-host-manual-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_2\ntopology_template:\nvariability:\ninputs:\nl:\ntype: boolean\nexpressions:\nis_l:\nequal:\n- variability_input: l\n- true\nis_r:\nequal:\n- variability_input: l\n- false\noptions:\nenrich_technologies: false\nnode_templates:\napplication:\ntype: Application\npersistent: true\nrequirements:\n- host:\nnode: left\nimplied: false\n- host:\nnode: right\nimplied: false\nright:\ntype: Right\nconditions:\nlogic_expression: is_r\nleft:\ntype: Left\nconditions:\nlogic_expression: is_l\n
"},{"location":"variability4tosca/tests/test-implied-host-manual-left/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

l: true\n
"},{"location":"variability4tosca/tests/test-implied-host-manual-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napplication:\ntype: Application\nrequirements:\n- host: left\nleft:\ntype: Left\n
"},{"location":"variability4tosca/tests/test-implied-host-manual-right/","title":"implied-host-manual-right","text":""},{"location":"variability4tosca/tests/test-implied-host-manual-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_2\ntopology_template:\nvariability:\ninputs:\nl:\ntype: boolean\nexpressions:\nis_l:\nequal:\n- variability_input: l\n- true\nis_r:\nequal:\n- variability_input: l\n- false\noptions:\nenrich_technologies: false\nnode_templates:\napplication:\ntype: Application\npersistent: true\nrequirements:\n- host:\nnode: left\nimplied: false\n- host:\nnode: right\nimplied: false\nright:\ntype: Right\nconditions:\nlogic_expression: is_r\nleft:\ntype: Left\nconditions:\nlogic_expression: is_l\n
"},{"location":"variability4tosca/tests/test-implied-host-manual-right/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

l: false\n
"},{"location":"variability4tosca/tests/test-implied-host-manual-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napplication:\ntype: Application\nrequirements:\n- host: right\nright:\ntype: Right\n
"},{"location":"variability4tosca/tests/test-import-conditional/","title":"import-conditional","text":""},{"location":"variability4tosca/tests/test-import-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\nimports:\n- file: some_file\nconditions: true\n- file: another_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-import-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nimports:\n- some_file\n
"},{"location":"variability4tosca/tests/test-import-empty/","title":"import-empty","text":""},{"location":"variability4tosca/tests/test-import-empty/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\nimports:\n- file: some_file\nconditions: false\n- file: another_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-import-empty/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-import-get-import-absent/","title":"import-get-import-absent","text":""},{"location":"variability4tosca/tests/test-import-get-import-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\nimports:\n- file: some_file\nconditions: false\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nimport_presence: 0\n
"},{"location":"variability4tosca/tests/test-import-get-import-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-import-get-import-present/","title":"import-get-import-present","text":""},{"location":"variability4tosca/tests/test-import-get-import-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\nimports:\n- file: some_file\nconditions: true\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nimport_presence: 0\n
"},{"location":"variability4tosca/tests/test-import-get-import-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nimports:\n- some_file\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-inputs-conditional-list/","title":"inputs-conditional-list","text":""},{"location":"variability4tosca/tests/test-inputs-conditional-list/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninputs:\n- one:\ntype: string\n- two:\ntype: string\nconditions: false\n- three:\ntype: string\nconditions: true\n
"},{"location":"variability4tosca/tests/test-inputs-conditional-list/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\none:\ntype: string\nthree:\ntype: string\n
"},{"location":"variability4tosca/tests/test-inputs-conditional/","title":"inputs-conditional","text":""},{"location":"variability4tosca/tests/test-inputs-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninputs:\none:\ntype: string\ntwo:\ntype: string\nconditions: false\nthree:\ntype: string\nconditions: true\n
"},{"location":"variability4tosca/tests/test-inputs-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\none:\ntype: string\nthree:\ntype: string\n
"},{"location":"variability4tosca/tests/test-inputs-default-alternative/","title":"inputs-default-alternative","text":""},{"location":"variability4tosca/tests/test-inputs-default-alternative/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninputs:\n- one:\ntype: a\ndefault_alternative: true\n- one:\ntype: b\nconditions: false\n
"},{"location":"variability4tosca/tests/test-inputs-default-alternative/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\none:\ntype: a\n
"},{"location":"variability4tosca/tests/test-inputs-input-presence-absent/","title":"inputs-input-presence-absent","text":""},{"location":"variability4tosca/tests/test-inputs-input-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninputs:\ninput:\nconditions: false\ntype: string\nnode_templates:\ncontainer:\ntype: container\nconditions:\ninput_presence: input\n
"},{"location":"variability4tosca/tests/test-inputs-input-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-inputs-input-presence-present/","title":"inputs-input-presence-present","text":""},{"location":"variability4tosca/tests/test-inputs-input-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninputs:\ninput:\nconditions: true\ntype: string\nnode_templates:\ncontainer:\ntype: container\nconditions:\ninput_presence: input\n
"},{"location":"variability4tosca/tests/test-inputs-input-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\ninput:\ntype: string\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-consumed-still/","title":"inputs-pruning-consumed-still","text":""},{"location":"variability4tosca/tests/test-inputs-pruning-consumed-still/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninput_default_condition: true\ninput_default_consistency_condition: true\ninput_default_semantic_condition: true\nproperty_default_condition: true\ninputs:\nsome_input:\ntype: string\nnode_templates:\ncontainer:\ntype: container\nconditions: true\nproperties:\nsome_property:\nget_input: some_input\nanother_container:\ntype: container\nconditions: false\nproperties:\nsome_property:\nget_input: some_input\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-consumed-still/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\nsome_input:\ntype: string\nnode_templates:\ncontainer:\ntype: container\nproperties:\nsome_property:\nget_input: some_input\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-consumed/","title":"inputs-pruning-consumed","text":""},{"location":"variability4tosca/tests/test-inputs-pruning-consumed/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninput_default_condition: true\ninput_default_consistency_condition: true\ninput_default_semantic_condition: true\nproperty_default_condition: true\ninputs:\nsome_input:\ntype: string\nnode_templates:\ncontainer:\ntype: container\nconditions: true\nproperties:\nsome_property:\nget_input: some_input\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-consumed/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\nsome_input:\ntype: string\nnode_templates:\ncontainer:\ntype: container\nproperties:\nsome_property:\nget_input: some_input\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-no-consumer/","title":"inputs-pruning-no-consumer","text":""},{"location":"variability4tosca/tests/test-inputs-pruning-no-consumer/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninput_default_condition: true\ninput_default_consistency_condition: true\ninput_default_semantic_condition: true\nproperty_default_condition: true\ninputs:\nsome_input:\ntype: string\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-no-consumer/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-not-consumed-anymore-v3/","title":"inputs-pruning-not-consumed-anymore-v3","text":""},{"location":"variability4tosca/tests/test-inputs-pruning-not-consumed-anymore-v3/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\ntopology_template:\nvariability:\noptions:\ntechnology_required: false\nenrich_technologies: false\ninputs:\nsome_input:\ntype: string\nnode_templates:\ncontainer:\ntype: container\nconditions: false\npersistent: true\nproperties:\nsome_property:\nget_input: some_input\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-not-consumed-anymore-v3/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-not-consumed-anymore/","title":"inputs-pruning-not-consumed-anymore","text":""},{"location":"variability4tosca/tests/test-inputs-pruning-not-consumed-anymore/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninput_default_condition: true\ninput_default_consistency_condition: true\ninput_default_semantic_condition: true\nproperty_default_condition: true\ninputs:\nsome_input:\ntype: string\nnode_templates:\ncontainer:\ntype: container\nconditions: false\nproperties:\nsome_property:\nget_input: some_input\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-not-consumed-anymore/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat-other/","title":"inputs-unique-input-constraint-sat-other","text":""},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat-other/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nunique_input_constraint: true\ninputs:\n- one:\ntype: string_a\nconditions: false\n- one:\ntype: string_b\n- three:\ntype: string\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat-other/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\none:\ntype: string_b\nthree:\ntype: string\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed-default/","title":"inputs-unique-input-constraint-sat-pruning-consumed-default","text":""},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninput_default_condition: true\ninput_default_consistency_condition: true\ninput_default_semantic_condition: true\nproperty_default_condition: true\nunique_input_constraint: true\ninputs:\n- some_input:\ntype: string\n- some_input:\ntype: string_other\ndefault_alternative: true\nnode_templates:\ncontainer:\ntype: container\nconditions: true\nproperties:\nsome_property:\nget_input: 0\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\nsome_input:\ntype: string\nnode_templates:\ncontainer:\ntype: container\nproperties:\nsome_property:\nget_input: some_input\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed/","title":"inputs-unique-input-constraint-sat-pruning-consumed","text":""},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninput_default_condition: true\ninput_default_consistency_condition: true\ninput_default_semantic_condition: true\nproperty_default_condition: true\nunique_input_constraint: true\ninputs:\n- some_input:\ntype: string\n- some_input:\ntype: string_other\nnode_templates:\ncontainer:\ntype: container\nconditions: true\nproperties:\nsome_property:\nget_input: 0\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\nsome_input:\ntype: string\nnode_templates:\ncontainer:\ntype: container\nproperties:\nsome_property:\nget_input: some_input\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat/","title":"inputs-unique-input-constraint-sat","text":""},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nunique_input_constraint: true\ninputs:\n- one:\ntype: string_a\n- one:\ntype: string_b\nconditions: false\n- three:\ntype: string\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\none:\ntype: string_a\nthree:\ntype: string\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-unsat/","title":"inputs-unique-input-constraint-unsat","text":""},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-unsat/#description","title":"Description","text":"

UNSAT since two inputs are present with same name

"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-unsat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nunique_input_constraint: true\ninputs:\n- one:\ntype: string_a\n- one:\ntype: string_b\n- three:\ntype: string\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-unsat/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-nodes-conditional-type-default/","title":"nodes-conditional-type-default","text":""},{"location":"variability4tosca/tests/test-nodes-conditional-type-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype:\n- type_one:\nconditions: false\n- type_two:\ndefault_alternative: true\n
"},{"location":"variability4tosca/tests/test-nodes-conditional-type-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: type_two\n
"},{"location":"variability4tosca/tests/test-nodes-conditional-type/","title":"nodes-conditional-type","text":""},{"location":"variability4tosca/tests/test-nodes-conditional-type/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype:\n- type_one:\nconditions: false\n- type_two:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-nodes-conditional-type/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: type_two\n
"},{"location":"variability4tosca/tests/test-nodes-conditional/","title":"nodes-conditional","text":""},{"location":"variability4tosca/tests/test-nodes-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\none:\ntype: one\nconditions: false\nrequirements:\n- two:\nnode: two\nconditions: false\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-nodes-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-nodes-default-false-false/","title":"nodes-default-false-false","text":""},{"location":"variability4tosca/tests/test-nodes-default-false-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: false\nrelation_pruning: true\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\nnode_one:\ntype: node_one\ndefault_condition: false\nnode_two:\ntype: node_two\nconditions: false\nrequirements:\n- relation_two: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three: node_one\n
"},{"location":"variability4tosca/tests/test-nodes-default-false-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\n
"},{"location":"variability4tosca/tests/test-nodes-default-false-true/","title":"nodes-default-false-true","text":""},{"location":"variability4tosca/tests/test-nodes-default-false-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: false\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\ndefault_condition: true\nnode_two:\ntype: node_two\nconditions: false\nrequirements:\n- relation_two: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three: node_one\n
"},{"location":"variability4tosca/tests/test-nodes-default-false-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-nodes-default-host-absent/","title":"nodes-default-host-absent","text":""},{"location":"variability4tosca/tests/test-nodes-default-host-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\npruning: true\ndefault_condition_mode: host\nrequirements:\n- host:\nnode: node_two\nconditions:\ntarget_presence: SELF\nnode_two:\ntype: node_two\nconditions: false\n
"},{"location":"variability4tosca/tests/test-nodes-default-host-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-nodes-default-host-present/","title":"nodes-default-host-present","text":""},{"location":"variability4tosca/tests/test-nodes-default-host-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\npruning: true\ndefault_condition_mode: host\nrequirements:\n- host:\nnode: node_two\nconditions:\ntarget_presence: SELF\nnode_two:\ntype: node_two\nconditions: true\n
"},{"location":"variability4tosca/tests/test-nodes-default-host-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nrequirements:\n- host: node_two\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-nodes-default-true-false/","title":"nodes-default-true-false","text":""},{"location":"variability4tosca/tests/test-nodes-default-true-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\nnode_one:\ntype: node_one\ndefault_condition: false\nnode_two:\ntype: node_two\nconditions: false\nrequirements:\n- relation_two: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three: node_one\n
"},{"location":"variability4tosca/tests/test-nodes-default-true-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\n
"},{"location":"variability4tosca/tests/test-nodes-default-true-true/","title":"nodes-default-true-true","text":""},{"location":"variability4tosca/tests/test-nodes-default-true-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\ndefault_condition: true\nnode_two:\ntype: node_two\nconditions: false\nrequirements:\n- relation_two: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three: node_one\n
"},{"location":"variability4tosca/tests/test-nodes-default-true-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-absent/","title":"nodes-host-presence-absent","text":""},{"location":"variability4tosca/tests/test-nodes-host-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhost_presence: container\nrequirements:\n- host: node\nnode:\ntype: node\nconditions: false\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-false-false/","title":"nodes-host-presence-false-false","text":""},{"location":"variability4tosca/tests/test-nodes-host-presence-false-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhost_presence: container\nrequirements:\n- host_one: node_one\n- host_two: node_two\nnode_one:\ntype: node_one\nconditions: false\nnode_two:\ntype: node_two\nconditions: false\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-false-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-present/","title":"nodes-host-presence-present","text":""},{"location":"variability4tosca/tests/test-nodes-host-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhost_presence: SELF\nrequirements:\n- host: node\nnode:\ntype: node\nconditions: true\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nrequirements:\n- host: node\nnode:\ntype: node\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-true-false/","title":"nodes-host-presence-true-false","text":""},{"location":"variability4tosca/tests/test-nodes-host-presence-true-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhost_presence: SELF\nrequirements:\n- host_one: node_one\n- host_two: node_two\nnode_one:\ntype: node_one\nconditions: true\nnode_two:\ntype: node_two\nconditions: false\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-true-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nrequirements:\n- host_one: node_one\nnode_one:\ntype: node_one\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-true-true-constraint/","title":"nodes-host-presence-true-true-constraint","text":""},{"location":"variability4tosca/tests/test-nodes-host-presence-true-true-constraint/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nrelation_pruning: true\ntype_default_condition: true\nhosting_stack_constraint: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhost_presence: SELF\nrequirements:\n- host_one: node_one\n- host_two: node_two\nnode_one:\ntype: node_one\nconditions: true\nnode_two:\ntype: node_two\nconditions: true\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-true-true-constraint/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-true-true/","title":"nodes-host-presence-true-true","text":""},{"location":"variability4tosca/tests/test-nodes-host-presence-true-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nrelation_pruning: true\ntype_default_condition: true\nconstraints: false\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhost_presence: SELF\nrequirements:\n- host_one: node_one\n- host_two: node_two\nnode_one:\ntype: node_one\nconditions: true\nnode_two:\ntype: node_two\nconditions: true\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-true-true/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"container\" has more than one hosting relations\n
"},{"location":"variability4tosca/tests/test-nodes-node-presence-absent/","title":"nodes-node-presence-absent","text":""},{"location":"variability4tosca/tests/test-nodes-node-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nnode_presence: node\nnode:\ntype: node\nconditions: false\n
"},{"location":"variability4tosca/tests/test-nodes-node-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-nodes-node-presence-present/","title":"nodes-node-presence-present","text":""},{"location":"variability4tosca/tests/test-nodes-node-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nnode_presence: node\nnode:\ntype: node\nconditions: true\n
"},{"location":"variability4tosca/tests/test-nodes-node-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nnode:\ntype: node\n
"},{"location":"variability4tosca/tests/test-nodes-required-incoming-relation-constraint-sat/","title":"nodes-required-incoming-relation-constraint-sat","text":""},{"location":"variability4tosca/tests/test-nodes-required-incoming-relation-constraint-sat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nrelation_pruning: true\ntype_pruning: true\nrequired_incoming_relation_constraint: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\npersistent: true\n
"},{"location":"variability4tosca/tests/test-nodes-required-incoming-relation-constraint-sat/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-nodes-required-incoming-relation-constraint-unsat/","title":"nodes-required-incoming-relation-constraint-unsat","text":""},{"location":"variability4tosca/tests/test-nodes-required-incoming-relation-constraint-unsat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nrelation_pruning: true\ntype_pruning: true\nrequired_incoming_relation_constraint: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\npersistent: true\n
"},{"location":"variability4tosca/tests/test-nodes-required-incoming-relation-constraint-unsat/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-nodes-type-specific/","title":"nodes-type-specific","text":""},{"location":"variability4tosca/tests/test-nodes-type-specific/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_default_condition: true\ntype_specific_conditions:\nnode_types:\none:\nconditions:\nor: []\nnode_templates:\none:\ntype: one\ntwo:\ntype: two\n
"},{"location":"variability4tosca/tests/test-nodes-type-specific/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ntwo:\ntype: two\n
"},{"location":"variability4tosca/tests/test-other-benchmark/","title":"Benchmark","text":""},{"location":"variability4tosca/tests/test-other-benchmark/#description","title":"Description","text":"

To benchmark our implementation of a Variability4TOSCA processor, we run several tests. Thereby, a service template is generated and then resolved based on a seed. A seed of value n results in 2n node templates and 2n relationship templates, thus, 4n templates. For example, a seed of 10,000 generates 20,0000 node templates and 20,0000 relationship templates. When variability is resolved, n node templates and n relationship templates are removed.

"},{"location":"variability4tosca/tests/test-other-benchmark/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\nexpressions:\ncondition_0_present:\nequal:\n- variability_input: mode\n- present\ncondition_0_removed:\nequal:\n- variability_input: mode\n- absent\ncondition_1_present:\nequal:\n- variability_input: mode\n- present\ncondition_1_removed:\nequal:\n- variability_input: mode\n- absent\noptions:\ntype_default_condition: true\nnode_templates:\ncomponent_0_present:\ntype: component_type_0_present\nconditions:\nlogic_expression: condition_0_present\nrequirements:\n- relation_present:\nnode: component_1_present\nconditions:\nlogic_expression: condition_0_present\nrelationship: relationship_0_present\n- relation_removed:\nnode: component_1_removed\nconditions:\nlogic_expression: condition_0_removed\nrelationship: relationship_0_removed\ncomponent_0_removed:\ntype: component_type_0_removed\nconditions:\nlogic_expression: condition_0_removed\ncomponent_1_present:\ntype: component_type_1_present\nconditions:\nlogic_expression: condition_1_present\nrequirements:\n- relation_present:\nnode: component_0_present\nconditions:\nlogic_expression: condition_1_present\nrelationship: relationship_1_present\n- relation_removed:\nnode: component_0_removed\nconditions:\nlogic_expression: condition_1_removed\nrelationship: relationship_1_removed\ncomponent_1_removed:\ntype: component_type_1_removed\nconditions:\nlogic_expression: condition_1_removed\nrelationship_templates:\nrelationship_0_present:\ntype: relationship_type_0_present\nrelationship_0_removed:\ntype: relationship_type_0_removed\nrelationship_1_present:\ntype: relationship_type_1_present\nrelationship_1_removed:\ntype: relationship_type_1_removed\n
"},{"location":"variability4tosca/tests/test-other-benchmark/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

mode: present\n
"},{"location":"variability4tosca/tests/test-other-benchmark/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncomponent_0_present:\ntype: component_type_0_present\nrequirements:\n- relation_present:\nnode: component_1_present\nrelationship: relationship_0_present\ncomponent_1_present:\ntype: component_type_1_present\nrequirements:\n- relation_present:\nnode: component_0_present\nrelationship: relationship_1_present\nrelationship_templates:\nrelationship_0_present:\ntype: relationship_type_0_present\nrelationship_1_present:\ntype: relationship_type_1_present\n
"},{"location":"variability4tosca/tests/test-other-concat/","title":"Operator \"concat\"","text":""},{"location":"variability4tosca/tests/test-other-concat/#description","title":"Description","text":"

Assigns the value of the intrinsic function to the property \"value\" of the node \"container\".

"},{"location":"variability4tosca/tests/test-other-concat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nconcat:\n- hello\n- ' '\n- world\n
"},{"location":"variability4tosca/tests/test-other-concat/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: hello world\n
"},{"location":"variability4tosca/tests/test-other-default-variability-input/","title":"Get Variability Expression","text":""},{"location":"variability4tosca/tests/test-other-default-variability-input/#description","title":"Description","text":"

Assigns \"Miles\" to the variable \"value\" of the node \"container\" since the variability expression \"name\" resolves to \"Miles\".

"},{"location":"variability4tosca/tests/test-other-default-variability-input/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nsome_input:\ndefault:\nconcat:\n- some\n- _\n- value\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nvariability_input: some_input\n
"},{"location":"variability4tosca/tests/test-other-default-variability-input/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: some_value\n
"},{"location":"variability4tosca/tests/test-other-join/","title":"Operator \"concat\"","text":""},{"location":"variability4tosca/tests/test-other-join/#description","title":"Description","text":"

Assigns the value of the intrinsic function to the property \"value\" of the node \"container\".

"},{"location":"variability4tosca/tests/test-other-join/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\njoin:\n- - hello\n- world\n- ' '\n
"},{"location":"variability4tosca/tests/test-other-join/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: hello world\n
"},{"location":"variability4tosca/tests/test-other-logic-expression-false/","title":"other-logic-expression-false","text":""},{"location":"variability4tosca/tests/test-other-logic-expression-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\nexpressions:\nname:\nnode_presence: node_one\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nlogic_expression: name\nnode_one:\ntype: node_one\nconditions: false\n
"},{"location":"variability4tosca/tests/test-other-logic-expression-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-other-logic-expression-true/","title":"other-logic-expression-true","text":""},{"location":"variability4tosca/tests/test-other-logic-expression-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\nexpressions:\nname:\nnode_presence: node_one\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nlogic_expression: name\nnode_one:\ntype: node_one\nconditions: true\n
"},{"location":"variability4tosca/tests/test-other-logic-expression-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nnode_one:\ntype: node_one\n
"},{"location":"variability4tosca/tests/test-other-logic-value-expression/","title":"other-logic-value-expression","text":""},{"location":"variability4tosca/tests/test-other-logic-value-expression/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nconditions:\nand:\n- equal:\n- token:\n- hello world\n- ' '\n- 1\n- world\n- node_presence: node_one\nnode_one:\ntype: node_one\nconditions: true\n
"},{"location":"variability4tosca/tests/test-other-logic-value-expression/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nnode_one:\ntype: node_one\n
"},{"location":"variability4tosca/tests/test-other-nothing/","title":"other-nothing","text":""},{"location":"variability4tosca/tests/test-other-nothing/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\none:\ntype: one\nrequirements:\n- two: two\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-other-nothing/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\none:\ntype: one\nrequirements:\n- two: two\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-other-preset/","title":"other-preset","text":""},{"location":"variability4tosca/tests/test-other-preset/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\npresets:\none:\ninputs:\nmode: one\ntwo:\ninputs:\nmode: two\nexpressions:\nis_one:\nequal:\n- variability_input: mode\n- one\nis_two:\nequal:\n- variability_input: mode\n- two\noptions:\ntype_default_condition: true\nnode_templates:\none:\ntype: one\nconditions:\nlogic_expression: is_one\ntwo:\ntype: two\nconditions:\nlogic_expression: is_two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-other-preset/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-other-presets/","title":"other-presets","text":""},{"location":"variability4tosca/tests/test-other-presets/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\npresets:\none:\ninputs:\nmode: one\ntwo:\ninputs:\nmode: two\nexpressions:\nis_one:\nequal:\n- variability_input: mode\n- one\nis_two:\nequal:\n- variability_input: mode\n- two\noptions:\ntype_default_condition: true\nnode_templates:\none:\ntype: one\nconditions:\nlogic_expression: is_one\ntwo:\ntype: two\nconditions:\nlogic_expression: is_two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-other-presets/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-other-throw-CONTAINER/","title":"other-throw-CONTAINER","text":""},{"location":"variability4tosca/tests/test-other-throw-CONTAINER/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nCONTAINER:\ntype: container\n
"},{"location":"variability4tosca/tests/test-other-throw-CONTAINER/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node must not be named \"CONTAINER\"\n
"},{"location":"variability4tosca/tests/test-other-throw-SELF/","title":"other-throw-SELF","text":""},{"location":"variability4tosca/tests/test-other-throw-SELF/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nSELF:\ntype: SELF\n
"},{"location":"variability4tosca/tests/test-other-throw-SELF/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node must not be named \"SELF\"\n
"},{"location":"variability4tosca/tests/test-other-throw-not-unique/","title":"other-throw-not-unique","text":""},{"location":"variability4tosca/tests/test-other-throw-not-unique/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_templates:\none:\ntype: one\nconditions:\nnot:\nnode_presence: two\nrequirements:\n- host: one_host\none_host:\ntype: one_host\ntwo:\ntype: two\nconditions:\nnot:\nnode_presence: one\nrequirements:\n- host: two_host\ntwo_host:\ntype: two_host\n
"},{"location":"variability4tosca/tests/test-other-throw-not-unique/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

The result is ambiguous considering nodes (without optimization)\n
"},{"location":"variability4tosca/tests/test-other-token/","title":"Operator \"concat\"","text":""},{"location":"variability4tosca/tests/test-other-token/#description","title":"Description","text":"

Assigns the value of the intrinsic function to the property \"value\" of the node \"container\".

"},{"location":"variability4tosca/tests/test-other-token/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\ntoken:\n- hello world\n- ' '\n- 1\n
"},{"location":"variability4tosca/tests/test-other-token/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: world\n
"},{"location":"variability4tosca/tests/test-other-value-expression/","title":"Get Variability Expression","text":""},{"location":"variability4tosca/tests/test-other-value-expression/#description","title":"Description","text":"

Assigns \"Miles\" to the variable \"value\" of the node \"container\" since the variability expression \"name\" resolves to \"Miles\".

"},{"location":"variability4tosca/tests/test-other-value-expression/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\nexpressions:\nname: Miles\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nvalue_expression: name\n
"},{"location":"variability4tosca/tests/test-other-value-expression/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: Miles\n
"},{"location":"variability4tosca/tests/test-other-variability-input/","title":"Get Variability Input","text":""},{"location":"variability4tosca/tests/test-other-variability-input/#description","title":"Description","text":"

Assigns \"Miles\" to property \"value\" of the node \"container\" since the input \"name\" has the value \"Miles\".

"},{"location":"variability4tosca/tests/test-other-variability-input/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nname:\ntype: string\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nvariability_input: name\n
"},{"location":"variability4tosca/tests/test-other-variability-input/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

name: Miles\n
"},{"location":"variability4tosca/tests/test-other-variability-input/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: Miles\n
"},{"location":"variability4tosca/tests/test-other-version/","title":"other-version","text":""},{"location":"variability4tosca/tests/test-other-version/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\n
"},{"location":"variability4tosca/tests/test-other-version/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-other-weight/","title":"other-weight","text":""},{"location":"variability4tosca/tests/test-other-weight/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nweight: 1\n
"},{"location":"variability4tosca/tests/test-other-weight/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-outputs-conditional-list/","title":"outputs-conditional-list","text":""},{"location":"variability4tosca/tests/test-outputs-conditional-list/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutputs:\n- one:\ntype: string\n- two:\ntype: string\nconditions: false\n- three:\ntype: string\nconditions: true\n
"},{"location":"variability4tosca/tests/test-outputs-conditional-list/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\noutputs:\none:\ntype: string\nthree:\ntype: string\n
"},{"location":"variability4tosca/tests/test-outputs-conditional/","title":"outputs-conditional","text":""},{"location":"variability4tosca/tests/test-outputs-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutputs:\none:\ntype: string\ntwo:\ntype: string\nconditions: false\nthree:\ntype: string\nconditions: true\n
"},{"location":"variability4tosca/tests/test-outputs-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\noutputs:\none:\ntype: string\nthree:\ntype: string\n
"},{"location":"variability4tosca/tests/test-outputs-default/","title":"outputs-default","text":""},{"location":"variability4tosca/tests/test-outputs-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutputs:\n- one:\ntype: a\ndefault_alternative: true\n- one:\ntype: b\nconditions: false\n
"},{"location":"variability4tosca/tests/test-outputs-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\noutputs:\none:\ntype: a\n
"},{"location":"variability4tosca/tests/test-outputs-input-presence-absent/","title":"outputs-input-presence-absent","text":""},{"location":"variability4tosca/tests/test-outputs-input-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutputs:\ninput:\nconditions: false\ntype: string\nnode_templates:\ncontainer:\ntype: container\nconditions:\noutput_presence: input\n
"},{"location":"variability4tosca/tests/test-outputs-input-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-outputs-input-presence-present/","title":"outputs-input-presence-present","text":""},{"location":"variability4tosca/tests/test-outputs-input-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutputs:\ninput:\nconditions: true\ntype: string\nnode_templates:\ncontainer:\ntype: container\nconditions:\noutput_presence: input\n
"},{"location":"variability4tosca/tests/test-outputs-input-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\noutputs:\ninput:\ntype: string\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-1/","title":"outputs-pruning-not-produced-anymore-unfurl-1","text":""},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-1/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutput_default_condition: true\noutput_default_consistency_condition: true\noutput_default_semantic_condition: true\nproperty_default_condition: true\noutputs:\ninput:\ntype: string\nvalue: \"{{ '::container::some_property' | eval }}\"\nnode_templates:\ncontainer:\ntype: container\nconditions: false\nproperties:\nsome_property: some_value\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-1/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-2/","title":"outputs-pruning-not-produced-anymore-unfurl-2","text":""},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-2/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutput_default_condition: true\noutput_default_consistency_condition: true\noutput_default_semantic_condition: true\nproperty_default_condition: true\noutputs:\ninput:\ntype: string\nvalue:\neval: '::container::some_property'\nnode_templates:\ncontainer:\ntype: container\nconditions: false\nproperties:\nsome_property: some_value\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-2/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera-v3/","title":"outputs-pruning-not-produced-anymore-xopera-v3","text":""},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera-v3/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\ntopology_template:\nvariability:\noptions:\ntechnology_required: false\nenrich_technologies: false\noutputs:\ninput:\ntype: string\nvalue:\nget_property:\n- container\n- some_property\nnode_templates:\ncontainer:\ntype: container\nconditions: false\npersistent: true\nproperties:\nsome_property: some_value\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera-v3/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera/","title":"outputs-pruning-not-produced-anymore-xopera","text":""},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutput_default_condition: true\noutput_default_consistency_condition: true\noutput_default_semantic_condition: true\nproperty_default_condition: true\noutputs:\ninput:\ntype: string\nvalue:\nget_property:\n- container\n- some_property\nnode_templates:\ncontainer:\ntype: container\nconditions: false\nproperties:\nsome_property: some_value\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute-not/","title":"outputs-pruning-produced-unfurl-attribute-not","text":""},{"location":"variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute-not/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\nnode_types:\ncontainer:\nderived_from: tosca.nodes.Root\nattributes:\nsome_attribute:\ntype: string\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutput_default_condition: true\noutput_default_consistency_condition: true\noutput_default_semantic_condition: true\nproperty_default_condition: true\noutputs:\ninput:\ntype: string\nvalue: \"{{ '::container::some_attribute' | eval }}\"\nnode_templates:\ncontainer:\ntype: container\nconditions: false\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute-not/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nnode_types:\ncontainer:\nderived_from: tosca.nodes.Root\nattributes:\nsome_attribute:\ntype: string\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute/","title":"outputs-pruning-produced-unfurl-attribute","text":""},{"location":"variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\nnode_types:\ncontainer:\nderived_from: tosca.nodes.Root\nattributes:\nsome_attribute:\ntype: string\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutput_default_condition: true\noutput_default_consistency_condition: true\noutput_default_semantic_condition: true\nproperty_default_condition: true\noutputs:\ninput:\ntype: string\nvalue: \"{{ '::container::some_attribute' | eval }}\"\nnode_templates:\ncontainer:\ntype: container\nconditions: true\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nnode_types:\ncontainer:\nderived_from: tosca.nodes.Root\nattributes:\nsome_attribute:\ntype: string\ntopology_template:\noutputs:\ninput:\ntype: string\nvalue: \"{{ '::container::some_attribute' | eval }}\"\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-produced-unfurl/","title":"outputs-pruning-produced-unfurl","text":""},{"location":"variability4tosca/tests/test-outputs-pruning-produced-unfurl/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutput_default_condition: true\noutput_default_consistency_condition: true\noutput_default_semantic_condition: true\nproperty_default_condition: true\noutputs:\ninput:\ntype: string\nvalue: \"{{ '::container::some_property' | eval }}\"\nnode_templates:\ncontainer:\ntype: container\nconditions: true\nproperties:\nsome_property: some_value\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-produced-unfurl/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\noutputs:\ninput:\ntype: string\nvalue: \"{{ '::container::some_property' | eval }}\"\nnode_templates:\ncontainer:\ntype: container\nproperties:\nsome_property: some_value\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-default/","title":"outputs-unique-output-constraint-sat-default","text":""},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nunique_output_constraint: true\noutputs:\n- one:\ntype: string_a\nconditions: false\n- one:\ntype: string_b\ndefault_alternative: true\n- three:\ntype: string\nconditions: true\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\noutputs:\none:\ntype: string_b\nthree:\ntype: string\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-other/","title":"outputs-unique-output-constraint-sat-other","text":""},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-other/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nunique_output_constraint: true\noutputs:\n- one:\ntype: string_a\nconditions: false\n- one:\ntype: string_b\n- three:\ntype: string\nconditions: true\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-other/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\noutputs:\none:\ntype: string_b\nthree:\ntype: string\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-not-produced-anymore-xopera/","title":"outputs-unique-output-constraint-sat-pruning-not-produced-anymore-xopera","text":""},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-not-produced-anymore-xopera/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutput_default_condition: true\noutput_default_consistency_condition: true\noutput_default_semantic_condition: true\nproperty_default_condition: true\nunique_output_constraint: true\noutputs:\n- input:\ntype: string_a\nvalue:\nget_property:\n- container\n- some_property\n- input:\ntype: string_b\nvalue:\nget_property:\n- container\n- another_property\nnode_templates:\ncontainer:\ntype: container\nconditions: false\nproperties:\n- some_property: some_value\n- another_property:\nconditions: false\nvalue: another_value\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-not-produced-anymore-xopera/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-produced-xopera/","title":"outputs-unique-output-constraint-sat-pruning-produced-xopera","text":""},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-produced-xopera/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutput_default_condition: true\noutput_default_consistency_condition: true\noutput_default_semantic_condition: true\nproperty_default_condition: true\nunique_output_constraint: true\noutputs:\n- input:\ntype: string_a\nvalue:\nget_property:\n- container\n- some_property\n- input:\ntype: string_b\nvalue:\nget_property:\n- container\n- another_property\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- some_property: some_value\n- another_property:\nconditions: false\nvalue: another_value\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-produced-xopera/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\noutputs:\ninput:\ntype: string_a\nvalue:\nget_property:\n- container\n- some_property\nnode_templates:\ncontainer:\ntype: container\nproperties:\nsome_property: some_value\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat/","title":"outputs-unique-output-constraint-sat","text":""},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nunique_output_constraint: true\noutputs:\n- one:\ntype: string_a\n- one:\ntype: string_b\nconditions: false\n- three:\ntype: string\nconditions: true\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\noutputs:\none:\ntype: string_a\nthree:\ntype: string\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-unsat/","title":"outputs-unique-output-constraint-unsat","text":""},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-unsat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nunique_output_constraint: true\noutputs:\n- one:\ntype: string_a\n- one:\ntype: string_b\n- three:\ntype: string\nconditions: true\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-unsat/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-persistent-persistent-false/","title":"persistent-persistent-false","text":""},{"location":"variability4tosca/tests/test-persistent-persistent-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\npersistent_check: false\noptimization_topology: true\nhosting_stack_constraint: true\nnode_templates:\nworker:\ntype: worker\npersistent: false\nrequirements:\n- host:\nnode: vm\nvm:\ntype: vm\nrequirements:\n- host:\nnode: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-persistent-persistent-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-persistent-persistent-throw/","title":"persistent-persistent-throw","text":""},{"location":"variability4tosca/tests/test-persistent-persistent-throw/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nhosting_stack_constraint: true\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- host:\nnode: vm\nvm:\ntype: vm\nrequirements:\n- host:\nnode: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-persistent-persistent-throw/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node default condition mode \"incoming(naive)-host\" requires at least one persistent node template\n
"},{"location":"variability4tosca/tests/test-persistent-persistent-undefined/","title":"persistent-persistent-undefined","text":""},{"location":"variability4tosca/tests/test-persistent-persistent-undefined/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\npersistent_check: false\noptimization_topology: true\nhosting_stack_constraint: true\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- host:\nnode: vm\nvm:\ntype: vm\nrequirements:\n- host:\nnode: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-persistent-persistent-undefined/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-persistent-persistent/","title":"persistent-persistent","text":""},{"location":"variability4tosca/tests/test-persistent-persistent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nhosting_stack_constraint: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- host:\nnode: vm\nvm:\ntype: vm\nrequirements:\n- host:\nnode: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-persistent-persistent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- host: vm\nvm:\ntype: vm\nrequirements:\n- host: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-policies-conditional/","title":"policies-conditional","text":""},{"location":"variability4tosca/tests/test-policies-conditional/#description","title":"Description","text":"
  • Removes node \"node_two\" from node templates and policy \"policy_one\" and \"policy_three\" since conditions is \"false\". - Removes policy \"policy_two\" since conditions is \"false\".
"},{"location":"variability4tosca/tests/test-policies-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nconditions: false\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- node_two\nconditions: true\n- policy_two:\ntype: policy_two\ntargets:\n- node_one\n- node_two\nconditions: false\n- policy_three:\ntype: policy_three\ntargets:\n- node_one\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- policy_three:\ntype: policy_three\ntargets:\n- node_one\n
"},{"location":"variability4tosca/tests/test-policies-default-condition-nothing/","title":"policies-default-condition-nothing","text":""},{"location":"variability4tosca/tests/test-policies-default-condition-nothing/#description","title":"Description","text":"

Do not remove policy \"policy_one\" since pruning is not forced.

"},{"location":"variability4tosca/tests/test-policies-default-condition-nothing/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\npolicy_default_condition: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\nconditions: false\nnode_two:\ntype: node_two\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\nconditions: true\n- policy_two:\ntype: policy_two\ntargets:\n- node_one\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-default-condition-nothing/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_two:\ntype: node_two\npolicies:\n- policy_one:\ntype: policy_one\ntargets: []\n- policy_two:\ntype: policy_two\ntargets:\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-default-condition/","title":"policies-default-condition","text":""},{"location":"variability4tosca/tests/test-policies-default-condition/#description","title":"Description","text":"

Remove policy \"policy_one\" since is has no present targets.

"},{"location":"variability4tosca/tests/test-policies-default-condition/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\npolicy_default_condition: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\nconditions: false\nnode_two:\ntype: node_two\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- policy_two:\ntype: policy_two\ntargets:\n- node_one\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-default-condition/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_two:\ntype: node_two\npolicies:\n- policy_two:\ntype: policy_two\ntargets:\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-absent-members/","title":"Policy Targets Absent Members","text":""},{"location":"variability4tosca/tests/test-policies-has-present-target-absent-members/#description","title":"Description","text":"

The policy \"policy_one\" targets two absent nodes and a group whose both members are absent. Thus, the policy \"policy_one\" has no present targets.

"},{"location":"variability4tosca/tests/test-policies-has-present-target-absent-members/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhas_present_target: policy_one\nnode_one:\ntype: node_one\nconditions: false\nnode_two:\ntype: node_two\nconditions: false\nnode_three:\ntype: node_three\nconditions: false\nnode_four:\ntype: node_four\nconditions: false\ngroups:\ngroup_one:\ntype: group_one\nmembers:\n- node_three\n- node_four\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- node_two\n- group_one\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-absent-members/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ngroups:\ngroup_one:\ntype: group_one\nmembers: []\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- group_one\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-absent-nodes/","title":"Policy Targets Absent Nodes","text":""},{"location":"variability4tosca/tests/test-policies-has-present-target-absent-nodes/#description","title":"Description","text":"

The policy \"policy_one\" targets two absent nodes, thus, has no present targets.

"},{"location":"variability4tosca/tests/test-policies-has-present-target-absent-nodes/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhas_present_target: policy_one\nnode_one:\ntype: node_one\nconditions: false\nnode_two:\ntype: node_two\nconditions: false\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-absent-nodes/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\npolicies:\n- policy_one:\ntype: policy_one\ntargets: []\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-no-targets/","title":"Policy Has No Targets","text":""},{"location":"variability4tosca/tests/test-policies-has-present-target-no-targets/#description","title":"Description","text":"

The policy \"policy_one\" has no targets. Thus, the policy has no present targets and, therefore, is removed.

"},{"location":"variability4tosca/tests/test-policies-has-present-target-no-targets/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\npolicies:\n- policy_one:\ntype: policy_one\ntargets: []\nconditions:\nhas_present_target: policy_one\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-no-targets/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-present-member/","title":"Policy Targets Present Member","text":""},{"location":"variability4tosca/tests/test-policies-has-present-target-present-member/#description","title":"Description","text":"

The policy \"policy_one\" targets two absent nodes and a group which has one absent and one present node. Since one node is present, the policy \"policy_one\" has present targets.

"},{"location":"variability4tosca/tests/test-policies-has-present-target-present-member/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhas_present_target: policy_one\nnode_one:\ntype: node_one\nconditions: false\nnode_two:\ntype: node_two\nconditions: false\nnode_three:\ntype: node_three\nconditions: false\nnode_four:\ntype: node_four\nconditions: true\ngroups:\ngroup_one:\ntype: group_one\nmembers:\n- node_three\n- node_four\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- node_two\n- group_one\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-present-member/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nnode_four:\ntype: node_four\ngroups:\ngroup_one:\ntype: group_one\nmembers:\n- node_four\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- group_one\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-present-node/","title":"Policy Targets One Present Node","text":""},{"location":"variability4tosca/tests/test-policies-has-present-target-present-node/#description","title":"Description","text":"

The policy \"policy_one\" targets one absent and one present node, thus, has present targets.

"},{"location":"variability4tosca/tests/test-policies-has-present-target-present-node/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhas_present_target: policy_one\nnode_one:\ntype: node_one\nconditions: true\nnode_two:\ntype: node_two\nconditions: false\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-present-node/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nnode_one:\ntype: node_one\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-present-nodes/","title":"Policy Targets Present Nodes","text":""},{"location":"variability4tosca/tests/test-policies-has-present-target-present-nodes/#description","title":"Description","text":"

The policy \"policy_one\" targets two present nodes, thus, has present targets.

"},{"location":"variability4tosca/tests/test-policies-has-present-target-present-nodes/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhas_present_target: policy_one\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-present-nodes/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-policy-presence-absent/","title":"policies-policy-presence-absent","text":""},{"location":"variability4tosca/tests/test-policies-policy-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\npolicy_presence: policy_one\npolicies:\n- policy_one:\ntype: policy_one\nconditions: false\ntargets: []\n
"},{"location":"variability4tosca/tests/test-policies-policy-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-policies-policy-presence-present/","title":"policies-policy-presence-present","text":""},{"location":"variability4tosca/tests/test-policies-policy-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\npolicy_presence: policy_one\npolicies:\n- policy_one:\ntype: policy_one\nconditions: true\ntargets: []\n
"},{"location":"variability4tosca/tests/test-policies-policy-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\npolicies:\n- policy_one:\ntype: policy_one\ntargets: []\n
"},{"location":"variability4tosca/tests/test-policies-prune/","title":"Policy Pruning","text":""},{"location":"variability4tosca/tests/test-policies-prune/#description","title":"Description","text":"

Remove policy \"policy_one\" even though assigned conditions evaluate to \"true\" since policy pruning is enabled.

"},{"location":"variability4tosca/tests/test-policies-prune/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\npolicy_pruning: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\nconditions: false\nnode_two:\ntype: node_two\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\nconditions: true\n- policy_two:\ntype: policy_two\ntargets:\n- node_one\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-prune/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_two:\ntype: node_two\npolicies:\n- policy_two:\ntype: policy_two\ntargets:\n- node_two\n
"},{"location":"variability4tosca/tests/test-properties-artifact-container-presence-absent/","title":"properties-artifact-container-presence-absent","text":""},{"location":"variability4tosca/tests/test-properties-artifact-container-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nexpected_artifact_check: false\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nartifacts:\nartifact_one:\nconditions: false\nfile: path\nproperties:\n- property_one:\nconditions:\ncontainer_presence: SELF\nvalue: 69\n
"},{"location":"variability4tosca/tests/test-properties-artifact-container-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-properties-artifact-container-presence-present/","title":"properties-artifact-container-presence-present","text":""},{"location":"variability4tosca/tests/test-properties-artifact-container-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nartifacts:\nartifact_one:\nconditions: true\nfile: path\nproperties:\n- property_one:\nconditions:\ncontainer_presence: SELF\nvalue: 69\n
"},{"location":"variability4tosca/tests/test-properties-artifact-container-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nartifacts:\nartifact_one:\ntype: tosca.artifacts.File\nfile: path\nproperties:\nproperty_one: 69\n
"},{"location":"variability4tosca/tests/test-properties-conditional/","title":"properties-conditional","text":""},{"location":"variability4tosca/tests/test-properties-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nvalue: value_one_one\nconditions: false\n- key_one:\nvalue: value_one_two\n- key_two: value_two\n- key_three: value_three\n- key_four:\nvalue: value_four\nconditions: true\nrequirements:\n- connects_to:\nnode: node_two\nrelationship: relation_one\nartifacts:\nartifact_one:\nproperties:\n- property_artifact_one_one:\nvalue: value_artifact_one_one\nconditions: false\n- property_artifact_one_one:\nvalue: value_artifact_one_two\nconditions: true\nnode_two:\ntype: node_two\nrelationship_templates:\nrelation_one:\ntype: relation_one\nproperties:\n- key_one:\nvalue: value_one_one\nconditions: false\n- key_one:\nvalue: value_one_two\n- key_two: value_two\n- key_three: value_three\n- key_four:\nvalue: value_four\nconditions: true\ngroups:\ngroup_one:\ntype: group_one\nmembers:\n- node_one\nproperties:\n- property_group_one_one:\nvalue: value_group_one_one\nconditions: false\n- property_group_one_one:\nvalue: value_group_one_two\nconditions: true\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\nproperties:\n- property_policy_one_one:\nvalue: value_policy_one_one\nconditions: false\n- property_policy_one_one:\nvalue: value_policy_one_two\nconditions: true\n
"},{"location":"variability4tosca/tests/test-properties-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one: value_one_two\nkey_two: value_two\nkey_three: value_three\nkey_four: value_four\nrequirements:\n- connects_to:\nnode: node_two\nrelationship: relation_one\nartifacts:\nartifact_one:\ntype: tosca.artifacts.File\nproperties:\nproperty_artifact_one_one: value_artifact_one_two\nnode_two:\ntype: node_two\nrelationship_templates:\nrelation_one:\ntype: relation_one\nproperties:\nkey_one: value_one_two\nkey_two: value_two\nkey_three: value_three\nkey_four: value_four\ngroups:\ngroup_one:\ntype: group_one\nmembers:\n- node_one\nproperties:\nproperty_group_one_one: value_group_one_two\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\nproperties:\nproperty_policy_one_one: value_policy_one_two\n
"},{"location":"variability4tosca/tests/test-properties-default-alternative-false/","title":"properties-default-alternative-false","text":""},{"location":"variability4tosca/tests/test-properties-default-alternative-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nvalue: value_one_one\nconditions: false\n- key_one:\nvalue: value_one_two\nconditions: false\n- key_one:\nvalue: value_one_three\ndefault_alternative: true\nnode_two:\ntype: node_two\nproperties:\n- key_two:\nvalue: value_two_one\nconditions: false\n- key_two:\nvalue: value_two_two\nconditions: true\n- key_two:\nvalue: value_two_three\ndefault_alternative: true\n
"},{"location":"variability4tosca/tests/test-properties-default-alternative-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one: value_one_three\nnode_two:\ntype: node_two\nproperties:\nkey_two: value_two_two\n
"},{"location":"variability4tosca/tests/test-properties-default-alternative/","title":"properties-default-alternative","text":""},{"location":"variability4tosca/tests/test-properties-default-alternative/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nvalue: value_one_one\nconditions: false\n- key_one:\nvalue: value_one_two\nconditions: false\n- key_one:\nvalue: value_one_three\ndefault_alternative: false\nnode_two:\ntype: node_two\nproperties:\n- key_two:\nvalue: value_two_one\nconditions: false\n- key_two:\nvalue: value_two_two\nconditions: true\n- key_two:\nvalue: value_two_three\ndefault_alternative: true\n
"},{"location":"variability4tosca/tests/test-properties-default-alternative/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nproperties:\nkey_two: value_two_two\n
"},{"location":"variability4tosca/tests/test-properties-default-condition/","title":"properties-default-condition","text":""},{"location":"variability4tosca/tests/test-properties-default-condition/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nproperty_default_condition: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one: value_one\nconditions: false\n
"},{"location":"variability4tosca/tests/test-properties-default-condition/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-properties-expression/","title":"properties-expression","text":""},{"location":"variability4tosca/tests/test-properties-expression/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nsome_input:\ntype: string\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nexpression:\nvariability_input: some_input\n
"},{"location":"variability4tosca/tests/test-properties-expression/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

some_input: some_value\n
"},{"location":"variability4tosca/tests/test-properties-expression/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one: some_value\n
"},{"location":"variability4tosca/tests/test-properties-list-another/","title":"properties-list-another","text":""},{"location":"variability4tosca/tests/test-properties-list-another/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nvalue: value_one_one\nconditions: false\n- key_one:\n- value_one_two\n- value_one_three\n
"},{"location":"variability4tosca/tests/test-properties-list-another/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one:\n- value_one_two\n- value_one_three\n
"},{"location":"variability4tosca/tests/test-properties-list/","title":"properties-list","text":""},{"location":"variability4tosca/tests/test-properties-list/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nvalue: value_one_one\nconditions: false\n- key_one:\nvalue:\n- value_one_two\n- value_one_three\nconditions: true\n
"},{"location":"variability4tosca/tests/test-properties-list/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one:\n- value_one_two\n- value_one_three\n
"},{"location":"variability4tosca/tests/test-properties-map-another/","title":"properties-map-another","text":""},{"location":"variability4tosca/tests/test-properties-map-another/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nvalue: value_one_one\nconditions: false\n- key_one:\nsome_key: some_value\n
"},{"location":"variability4tosca/tests/test-properties-map-another/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one:\nsome_key: some_value\n
"},{"location":"variability4tosca/tests/test-properties-map/","title":"properties-map","text":""},{"location":"variability4tosca/tests/test-properties-map/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nvalue: value_one_one\nconditions: false\n- key_one:\nvalue:\nsome_key: some_value\nconditions: true\n
"},{"location":"variability4tosca/tests/test-properties-map/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one:\nsome_key: some_value\n
"},{"location":"variability4tosca/tests/test-properties-node-container-presence-absent/","title":"properties-node-container-presence-absent","text":""},{"location":"variability4tosca/tests/test-properties-node-container-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- property_one:\nconditions:\ncontainer_presence: SELF\nvalue: 69\nconditions: false\n
"},{"location":"variability4tosca/tests/test-properties-node-container-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-properties-node-container-presence-present/","title":"properties-node-container-presence-present","text":""},{"location":"variability4tosca/tests/test-properties-node-container-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- property_one:\nconditions:\ncontainer_presence: SELF\nvalue: 69\nconditions: true\n
"},{"location":"variability4tosca/tests/test-properties-node-container-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nproperty_one: 69\n
"},{"location":"variability4tosca/tests/test-properties-node-node-presence-CONTAINER-absent/","title":"properties-node-node-presence-CONTAINER-absent","text":""},{"location":"variability4tosca/tests/test-properties-node-node-presence-CONTAINER-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- property_one:\nconditions:\nnode_presence: CONTAINER\nvalue: 69\nconditions: false\n
"},{"location":"variability4tosca/tests/test-properties-node-node-presence-CONTAINER-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-properties-node-node-presence-CONTAINER-present/","title":"properties-node-node-presence-CONTAINER-present","text":""},{"location":"variability4tosca/tests/test-properties-node-node-presence-CONTAINER-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- property_one:\nconditions:\nnode_presence: CONTAINER\nvalue: 69\nconditions: true\n
"},{"location":"variability4tosca/tests/test-properties-node-node-presence-CONTAINER-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nproperty_one: 69\n
"},{"location":"variability4tosca/tests/test-properties-node-property-presence-number-absent/","title":"properties-node-property-presence-number-absent","text":""},{"location":"variability4tosca/tests/test-properties-node-property-presence-number-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- property_one:\nconditions: false\nvalue: 69\nconditions:\nnode_property_presence:\n- container\n- 0\n
"},{"location":"variability4tosca/tests/test-properties-node-property-presence-number-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-properties-node-property-presence-number-present/","title":"properties-node-property-presence-number-present","text":""},{"location":"variability4tosca/tests/test-properties-node-property-presence-number-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- property_one:\nconditions: true\nvalue: 69\nconditions:\nnode_property_presence:\n- container\n- 0\n
"},{"location":"variability4tosca/tests/test-properties-node-property-presence-number-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nproperty_one: 69\n
"},{"location":"variability4tosca/tests/test-properties-node-property-presence-string-absent/","title":"properties-node-property-presence-string-absent","text":""},{"location":"variability4tosca/tests/test-properties-node-property-presence-string-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- property_one:\nconditions: false\nvalue: 69\nconditions:\nnode_property_presence:\n- container\n- property_one\n
"},{"location":"variability4tosca/tests/test-properties-node-property-presence-string-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-properties-node-property-presence-string-present/","title":"properties-node-property-presence-string-present","text":""},{"location":"variability4tosca/tests/test-properties-node-property-presence-string-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- property_one:\nconditions: true\nvalue: 69\nconditions:\nnode_property_presence:\n- container\n- property_one\n
"},{"location":"variability4tosca/tests/test-properties-node-property-presence-string-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nproperty_one: 69\n
"},{"location":"variability4tosca/tests/test-properties-properties/","title":"properties-properties","text":""},{"location":"variability4tosca/tests/test-properties-properties/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nproperty_pruning: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nvalue: value_one\nconditions: true\nconditions: false\n
"},{"location":"variability4tosca/tests/test-properties-properties/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-properties-relation-container-presence-absent/","title":"properties-relation-container-presence-absent","text":""},{"location":"variability4tosca/tests/test-properties-relation-container-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\ncontainer:\ntype: container\nrequirements:\n- relation_one:\nnode: container\nrelationship: relation_one\nconditions: false\nrelationship_templates:\nrelation_one:\ntype: relation_one\nproperties:\n- property_one:\nconditions:\ncontainer_presence: SELF\nvalue: 69\n
"},{"location":"variability4tosca/tests/test-properties-relation-container-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-properties-relation-container-presence-present/","title":"properties-relation-container-presence-present","text":""},{"location":"variability4tosca/tests/test-properties-relation-container-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nrequirements:\n- relation_one:\nnode: container\nrelationship: relation_one\nconditions: true\nrelationship_templates:\nrelation_one:\ntype: relation_one\nproperties:\n- property_one:\nconditions:\ncontainer_presence: SELF\nvalue: 69\n
"},{"location":"variability4tosca/tests/test-properties-relation-container-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nrequirements:\n- relation_one:\nnode: container\nrelationship: relation_one\nrelationship_templates:\nrelation_one:\ntype: relation_one\nproperties:\nproperty_one: 69\n
"},{"location":"variability4tosca/tests/test-properties-throw-ambiguous-property/","title":"properties-throw-ambiguous-property","text":""},{"location":"variability4tosca/tests/test-properties-throw-ambiguous-property/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one: value_one\n- key_one: value_one\n- key_two: value_two\n
"},{"location":"variability4tosca/tests/test-properties-throw-ambiguous-property/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Property \"key_one@1\" of node \"node_one\" is ambiguous\n
"},{"location":"variability4tosca/tests/test-properties-throw-missing-property-container/","title":"properties-throw-missing-property-container","text":""},{"location":"variability4tosca/tests/test-properties-throw-missing-property-container/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one: value_one\nconditions: false\n
"},{"location":"variability4tosca/tests/test-properties-throw-missing-property-container/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Container of property \"key_one@0\" of node \"node_one\" does not exist\n
"},{"location":"variability4tosca/tests/test-properties-throw-multiple-default/","title":"properties-throw-multiple-default","text":""},{"location":"variability4tosca/tests/test-properties-throw-multiple-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nvalue: value_one_one\nconditions: false\n- key_one:\nvalue: value_one_two\nconditions: false\n- key_one:\nvalue: value_one_three\ndefault_alternative: true\n- key_one:\nvalue: value_one_four\ndefault_alternative: true\nnode_two:\ntype: node_two\nproperties:\n- key_two:\nvalue: value_two_one\nconditions: false\n- key_two:\nvalue: value_two_two\nconditions: true\n- key_two:\nvalue: value_two_three\ndefault_alternative: true\n
"},{"location":"variability4tosca/tests/test-properties-throw-multiple-default/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Property \"key_one@0\" of node \"node_one\" has multiple defaults\n
"},{"location":"variability4tosca/tests/test-properties-unique-property-constraint-sat/","title":"properties-unique-property-constraint-sat","text":""},{"location":"variability4tosca/tests/test-properties-unique-property-constraint-sat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nunique_property_constraint: true\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nconditions: false\nvalue: value_one_a\n- key_one: value_one_b\n- key_two: value_two\n
"},{"location":"variability4tosca/tests/test-properties-unique-property-constraint-sat/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one: value_one_b\nkey_two: value_two\n
"},{"location":"variability4tosca/tests/test-properties-unique-property-constraint-unsat/","title":"properties-unique-property-constraint-unsat","text":""},{"location":"variability4tosca/tests/test-properties-unique-property-constraint-unsat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nunique_property_constraint: true\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one: value_one_a\n- key_one: value_one_b\n- key_two: value_two\n
"},{"location":"variability4tosca/tests/test-properties-unique-property-constraint-unsat/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-pruning-alpha-default-naive/","title":"pruning-alpha-default-naive","text":""},{"location":"variability4tosca/tests/test-pruning-alpha-default-naive/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"naive\" default condition of nodes is enabled

  • \"naive\" allows that target is removed

  • thus, also relation is removed
"},{"location":"variability4tosca/tests/test-pruning-alpha-default-naive/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incomingnaive\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\noptimization_topology: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-alpha-default-naive/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-alpha-default/","title":"pruning-alpha-default","text":""},{"location":"variability4tosca/tests/test-pruning-alpha-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled
"},{"location":"variability4tosca/tests/test-pruning-alpha-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-alpha-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-alpha-pruning/","title":"pruning-alpha-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-alpha-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled
"},{"location":"variability4tosca/tests/test-pruning-alpha-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-alpha-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-alpha/","title":"pruning-artifact-default-alpha","text":""},{"location":"variability4tosca/tests/test-pruning-artifact-default-alpha/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: artifact\nartifact_default_condition: true\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-alpha/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container_type\nartifacts:\nartifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\nartifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-bravo/","title":"pruning-artifact-default-bravo","text":""},{"location":"variability4tosca/tests/test-pruning-artifact-default-bravo/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: artifact\nartifact_default_condition: true\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-bravo/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-charlie/","title":"pruning-artifact-default-charlie","text":""},{"location":"variability4tosca/tests/test-pruning-artifact-default-charlie/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: artifact\nartifact_default_condition: true\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-charlie/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container_type\nartifacts:\nartifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-delta/","title":"pruning-artifact-default-delta","text":""},{"location":"variability4tosca/tests/test-pruning-artifact-default-delta/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: artifact\nartifact_default_condition: true\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container_type\nconditions: false\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-delta/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-naive/","title":"pruning-artifact-default-naive","text":""},{"location":"variability4tosca/tests/test-pruning-artifact-default-naive/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: artifactnaive\nartifact_default_condition: true\ntype_default_condition: true\noptimization_topology: true\nnode_templates:\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-naive/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-pruning-bravo-default/","title":"pruning-bravo-default","text":""},{"location":"variability4tosca/tests/test-pruning-bravo-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • target is \"true\" assigned

"},{"location":"variability4tosca/tests/test-pruning-bravo-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\nconditions: true\n
"},{"location":"variability4tosca/tests/test-pruning-bravo-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-bravo-pruning/","title":"pruning-bravo-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-bravo-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • target is \"true\" assigned

"},{"location":"variability4tosca/tests/test-pruning-bravo-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\nconditions: true\n
"},{"location":"variability4tosca/tests/test-pruning-bravo-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-charlie-default/","title":"pruning-charlie-default","text":""},{"location":"variability4tosca/tests/test-pruning-charlie-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • target is \"false\" assigned

  • thus, target and relation are removed
"},{"location":"variability4tosca/tests/test-pruning-charlie-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-charlie-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-charlie-pruning/","title":"pruning-charlie-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-charlie-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • target is \"false\" assigned

  • thus, target and relation are removed
"},{"location":"variability4tosca/tests/test-pruning-charlie-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-charlie-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-delta-default/","title":"pruning-delta-default","text":""},{"location":"variability4tosca/tests/test-pruning-delta-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • \"true\" is assigned to relation

"},{"location":"variability4tosca/tests/test-pruning-delta-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: true\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-delta-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-delta-pruning/","title":"pruning-delta-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-delta-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • \"true\" is assigned to relation

"},{"location":"variability4tosca/tests/test-pruning-delta-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: true\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-delta-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-echo-default/","title":"pruning-echo-default","text":""},{"location":"variability4tosca/tests/test-pruning-echo-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • \"false\" is assigned to relation

  • thus, relation is removed
  • thus, target is removed
"},{"location":"variability4tosca/tests/test-pruning-echo-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-echo-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-echo-pruning/","title":"pruning-echo-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-echo-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • \"false\" is assigned to relation

  • thus, relation is removed
  • thus, target is removed
"},{"location":"variability4tosca/tests/test-pruning-echo-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-echo-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-foxtrott-default/","title":"pruning-foxtrott-default","text":""},{"location":"variability4tosca/tests/test-pruning-foxtrott-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • \"false\" is assigned to relation

  • \"true\" is assigned to target
  • thus, relation is removed
  • but target is preserved
"},{"location":"variability4tosca/tests/test-pruning-foxtrott-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nconditions: true\n
"},{"location":"variability4tosca/tests/test-pruning-foxtrott-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-foxtrott-pruning/","title":"pruning-foxtrott-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-foxtrott-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • \"false\" is assigned to relation

  • \"true\" is assigned to target
  • thus, relation is removed

  • target is also removed due to pruning

"},{"location":"variability4tosca/tests/test-pruning-foxtrott-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nconditions: true\n
"},{"location":"variability4tosca/tests/test-pruning-foxtrott-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-hotel-default/","title":"pruning-hotel-default","text":""},{"location":"variability4tosca/tests/test-pruning-hotel-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • \"true\" is assigned to source

"},{"location":"variability4tosca/tests/test-pruning-hotel-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nconditions: true\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-hotel-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-hotel-pruning/","title":"pruning-hotel-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-hotel-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • \"true\" is assigned to source

"},{"location":"variability4tosca/tests/test-pruning-hotel-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nconditions: true\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-hotel-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-alpha/","title":"pruning-incoming-artifact-pruning-alpha","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-alpha/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: container\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-alpha/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: container\ncontainer:\ntype: container_type\nartifacts:\nartifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\nartifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-bravo/","title":"pruning-incoming-artifact-pruning-bravo","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-bravo/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: container\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-bravo/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-charlie/","title":"pruning-incoming-artifact-pruning-charlie","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-charlie/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: container\nconditions: false\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-charlie/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-delta/","title":"pruning-incoming-artifact-pruning-delta","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-delta/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: container\nconditions: false\ntource:\ntype: tource\nrequirements:\n- relation:\nnode: container\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-delta/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\ntource:\ntype: tource\nrequirements:\n- relation: container\ncontainer:\ntype: container_type\nartifacts:\nartifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-echo/","title":"pruning-incoming-artifact-pruning-echo","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-echo/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\nnode_templates:\nsource:\ntype: source\nconditions: false\nrequirements:\n- relation:\nnode: container\ntource:\ntype: tource\nrequirements:\n- relation:\nnode: container\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-echo/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ntource:\ntype: tource\nrequirements:\n- relation: container\ncontainer:\ntype: container_type\nartifacts:\nartifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-foxtrott/","title":"pruning-incoming-artifact-pruning-foxtrott","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-foxtrott/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: container\nconditions: false\ntource:\ntype: tource\nrequirements:\n- relation:\nnode: container\nconditions: false\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-foxtrott/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\ntource:\ntype: tource\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-golf/","title":"pruning-incoming-artifact-pruning-golf","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-golf/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: container\ntource:\ntype: tource\nrequirements:\n- relation:\nnode: container\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\nconditions: false\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-golf/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\ntource:\ntype: tource\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-hotel/","title":"pruning-incoming-artifact-pruning-hotel","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-hotel/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: container\ntource:\ntype: tource\nrequirements:\n- relation:\nnode: container\nconditions: true\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\nconditions: false\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-hotel/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\ntource:\ntype: tource\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-alpha/","title":"pruning-incoming-artifact-pruning-naive-alpha","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-alpha/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifactnaive\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\noptimization_topology: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: container\nconditions: true\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-alpha/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-bravo/","title":"pruning-incoming-artifact-pruning-naive-bravo","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-bravo/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifactnaive\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\noptimization_topology: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: container\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-bravo/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-india-default/","title":"pruning-india-default","text":""},{"location":"variability4tosca/tests/test-pruning-india-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • \"false\" is assigned to source

  • thus, relation is removed
  • thus, target is removed
"},{"location":"variability4tosca/tests/test-pruning-india-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nconditions: false\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-india-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-pruning-india-pruning/","title":"pruning-india-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-india-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • \"false\" is assigned to source

  • thus, relation is removed
  • thus, target is removed
"},{"location":"variability4tosca/tests/test-pruning-india-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nconditions: false\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-india-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-pruning-juliett-default/","title":"pruning-juliett-default","text":""},{"location":"variability4tosca/tests/test-pruning-juliett-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • In addition, node \"another\" has a relation \"another\" on target

  • \"false\" is assigned to relation

  • thus, relation is removed
  • target is preserved since relation \"another\" is present
"},{"location":"variability4tosca/tests/test-pruning-juliett-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nanother:\ntype: another\nrequirements:\n- another:\nnode: target\n
"},{"location":"variability4tosca/tests/test-pruning-juliett-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\ntarget:\ntype: target\nanother:\ntype: another\nrequirements:\n- another: target\n
"},{"location":"variability4tosca/tests/test-pruning-juliett-pruning/","title":"pruning-juliett-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-juliett-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • In addition, node \"another\" has a relation \"another\" on target

  • \"false\" is assigned to relation

  • thus, relation is removed
  • target is preserved since relation \"another\" is present
"},{"location":"variability4tosca/tests/test-pruning-juliett-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nanother:\ntype: another\nrequirements:\n- another:\nnode: target\n
"},{"location":"variability4tosca/tests/test-pruning-juliett-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\ntarget:\ntype: target\nanother:\ntype: another\nrequirements:\n- another: target\n
"},{"location":"variability4tosca/tests/test-pruning-kilo-default/","title":"pruning-kilo-default","text":""},{"location":"variability4tosca/tests/test-pruning-kilo-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • In addition, target has a relation \"another\" on another node \"another\"

  • \"false\" is assigned to relation \"relation\"

  • thus, relation \"relation\" is removed
  • thus, node \"target\" is removed
  • thus, relation \"another\" is removed
  • thus, node \"another\" is removed
"},{"location":"variability4tosca/tests/test-pruning-kilo-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nrequirements:\n- another:\nnode: another\nanother:\ntype: another\n
"},{"location":"variability4tosca/tests/test-pruning-kilo-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-kilo-pruning/","title":"pruning-kilo-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-kilo-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • In addition, target has a relation \"another\" on another node \"another\"

  • \"false\" is assigned to relation \"relation\"

  • thus, relation \"relation\" is removed
  • thus, node \"target\" is removed
  • thus, relation \"another\" is removed
  • thus, node \"another\" is removed
"},{"location":"variability4tosca/tests/test-pruning-kilo-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nrequirements:\n- another:\nnode: another\nanother:\ntype: another\n
"},{"location":"variability4tosca/tests/test-pruning-kilo-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-lima-default/","title":"pruning-lima-default","text":""},{"location":"variability4tosca/tests/test-pruning-lima-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • In addition, target has a relation \"another\" on another node \"another\"

  • \"false\" is assigned to relation \"relation\"

  • thus, relation \"relation\" is removed
  • thus, node \"target\" is removed
  • thus, relation \"another\" is removed

  • node \"another\" is preserved since \"true\" is assigned

"},{"location":"variability4tosca/tests/test-pruning-lima-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nrequirements:\n- another:\nnode: another\nanother:\ntype: another\nconditions: true\n
"},{"location":"variability4tosca/tests/test-pruning-lima-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nanother:\ntype: another\n
"},{"location":"variability4tosca/tests/test-pruning-lima-pruning/","title":"pruning-lima-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-lima-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • In addition, target has a relation \"another\" on another node \"another\"

  • \"false\" is assigned to relation \"relation\"

  • thus, relation \"relation\" is removed
  • thus, node \"target\" is removed
  • thus, relation \"another\" is removed

  • node \"another\" is also removed due to pruning

"},{"location":"variability4tosca/tests/test-pruning-lima-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nrequirements:\n- another:\nnode: another\nanother:\ntype: another\nconditions: true\n
"},{"location":"variability4tosca/tests/test-pruning-lima-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-mike-default/","title":"pruning-mike-default","text":""},{"location":"variability4tosca/tests/test-pruning-mike-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • In addition, target has a relation \"another\" on another node \"another\"

  • Moreover, node \"ananother\" has a relation on \"another\"

  • \"false\" is assigned to relation \"relation\"

  • thus, relation \"relation\" is removed
  • thus, node \"target\" is removed
  • thus, relation \"another\" is removed

  • node \"another\" is preserved since node \"ananother\" has a requirement on it

"},{"location":"variability4tosca/tests/test-pruning-mike-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nrequirements:\n- another:\nnode: another\nanother:\ntype: another\nananother:\ntype: ananother\nrequirements:\n- ananother:\nnode: another\n
"},{"location":"variability4tosca/tests/test-pruning-mike-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nanother:\ntype: another\nananother:\ntype: ananother\nrequirements:\n- ananother: another\n
"},{"location":"variability4tosca/tests/test-pruning-mike-pruning/","title":"pruning-mike-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-mike-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • In addition, target has a relation \"another\" on another node \"another\"

  • Moreover, node \"ananother\" has a relation on \"another\"

  • \"false\" is assigned to relation \"relation\"

  • thus, relation \"relation\" is removed
  • thus, node \"target\" is removed
  • thus, relation \"another\" is removed

  • node \"another\" is preserved since node \"ananother\" has a requirement on it

"},{"location":"variability4tosca/tests/test-pruning-mike-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nrequirements:\n- another:\nnode: another\nanother:\ntype: another\nananother:\ntype: ananother\nrequirements:\n- ananother:\nnode: another\n
"},{"location":"variability4tosca/tests/test-pruning-mike-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nanother:\ntype: another\nananother:\ntype: ananother\nrequirements:\n- ananother: another\n
"},{"location":"variability4tosca/tests/test-pruning-outgoing-relation-absent/","title":"pruning-outgoing-relation-absent","text":""},{"location":"variability4tosca/tests/test-pruning-outgoing-relation-absent/#description","title":"Description","text":"
  • The node \"source\" has an outgoing relation \"relation\" to node \"target\".
  • The node default condition mode \"outgoing\" is used.
  • Thus, there is no circle.

  • \"relation\" is absent

  • Thus, \"source\" is absent
  • \"target\" is always present
"},{"location":"variability4tosca/tests/test-pruning-outgoing-relation-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: outgoing\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-outgoing-relation-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-outgoing-relation-present/","title":"pruning-outgoing-relation-present","text":""},{"location":"variability4tosca/tests/test-pruning-outgoing-relation-present/#description","title":"Description","text":"
  • The node \"source\" has an outgoing relation \"relation\" to node \"target\".
  • The node default condition mode \"outgoing\" is used.
  • Thus, there is no circle.

  • \"relation\" is present

  • Thus, \"source\" is present
  • \"target\" is always present
"},{"location":"variability4tosca/tests/test-pruning-outgoing-relation-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: outgoing\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: true\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-outgoing-relation-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-outgoing-target-absent/","title":"pruning-outgoing-target-absent","text":""},{"location":"variability4tosca/tests/test-pruning-outgoing-target-absent/#description","title":"Description","text":"
  • The node \"source\" has an outgoing relation \"relation\" to node \"target\".
  • The node default condition mode \"outgoing\" is used.
  • Thus, there is no circle.

  • \"target\" is absent

  • Thus, \"relation\" is absent
  • Thus, \"source\" is absent
"},{"location":"variability4tosca/tests/test-pruning-outgoing-target-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: outgoing\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-outgoing-target-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-pruning-outgoing-target-present/","title":"pruning-outgoing-target-present","text":""},{"location":"variability4tosca/tests/test-pruning-outgoing-target-present/#description","title":"Description","text":"
  • The node \"source\" has an outgoing relation \"relation\" to node \"target\".
  • The node default condition mode \"outgoing\" is used.
  • Thus, there is no circle.
  • Nothing is removed.
"},{"location":"variability4tosca/tests/test-pruning-outgoing-target-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: outgoing\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-outgoing-target-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-outgoingnaive-target-present/","title":"pruning-outgoingnaive-target-present","text":""},{"location":"variability4tosca/tests/test-pruning-outgoingnaive-target-present/#description","title":"Description","text":"
  • The node \"source\" has an outgoing relation \"relation\" to node \"target\".
  • The node default condition mode \"outgoingnaive\" is used.
  • Thus, there is a circle: \"source\" checks if \"relation\" is present and \"relation\" checks if \"source\" is present.
  • Thus, \"source\" and \"relation\" can be removed.
  • \"target\" is present since it has no default condition assigned.
"},{"location":"variability4tosca/tests/test-pruning-outgoingnaive-target-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: outgoingnaive\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nexpected_incoming_relation_check: false\noptimization_topology: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-outgoingnaive-target-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-pruning-false-false/","title":"pruning-pruning-false-false","text":""},{"location":"variability4tosca/tests/test-pruning-pruning-false-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\nnode_one:\ntype: node_one\npruning: false\nconditions: true\nnode_two:\ntype: node_two\nconditions: false\nrequirements:\n- relation_two: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three: node_one\n
"},{"location":"variability4tosca/tests/test-pruning-pruning-false-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\n
"},{"location":"variability4tosca/tests/test-pruning-pruning-false-true/","title":"pruning-pruning-false-true","text":""},{"location":"variability4tosca/tests/test-pruning-pruning-false-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\npruning: true\nconditions: true\nnode_two:\ntype: node_two\nconditions: false\nrequirements:\n- relation_two: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three: node_one\n
"},{"location":"variability4tosca/tests/test-pruning-pruning-false-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-pruning-pruning-true-false/","title":"pruning-pruning-true-false","text":""},{"location":"variability4tosca/tests/test-pruning-pruning-true-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\nnode_one:\ntype: node_one\npruning: false\nconditions: true\nnode_two:\ntype: node_two\nconditions: false\nrequirements:\n- relation_two: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three: node_one\n
"},{"location":"variability4tosca/tests/test-pruning-pruning-true-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\n
"},{"location":"variability4tosca/tests/test-pruning-pruning-true-true/","title":"pruning-pruning-true-true","text":""},{"location":"variability4tosca/tests/test-pruning-pruning-true-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_pruning: true\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\npruning: true\nconditions: true\nnode_two:\ntype: node_two\nconditions: false\nrequirements:\n- relation_two: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three: node_one\n
"},{"location":"variability4tosca/tests/test-pruning-pruning-true-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-pruning-pruning/","title":"pruning-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\nconditions: false\nrequirements:\n- relation_one_one:\nnode: node_three\nconditions: false\nnode_two:\ntype: node_two\nconditions: false\nrequirements:\n- relation_two_one: node_three\n- relation_two_two: node_five\nnode_three:\ntype: node_three\nconditions: true\nnode_four:\ntype: node_four\nnode_five:\ntype: node_five\nnode_six:\ntype: node_six\nrequirements:\n- relation_six_one: node_five\n
"},{"location":"variability4tosca/tests/test-pruning-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_four:\ntype: node_four\nnode_five:\ntype: node_five\nnode_six:\ntype: node_six\nrequirements:\n- relation_six_one: node_five\n
"},{"location":"variability4tosca/tests/test-pruning-relation/","title":"Relation Pruning","text":""},{"location":"variability4tosca/tests/test-pruning-relation/#description","title":"Description","text":"

Node \"node_one\" is not present. The relation \"relation_two\" is also not present even though assigned conditions evaluate to \"true\" since relation pruning is enabled.

"},{"location":"variability4tosca/tests/test-pruning-relation/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nrelation_pruning: true\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\nnode_one:\ntype: node_one\nconditions: false\nrequirements:\n- relation_two:\nnode: node_two\nconditions: true\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-pruning-relation/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-relationships-conditional/","title":"relationships-conditional","text":""},{"location":"variability4tosca/tests/test-relationships-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\none:\ntype: one\nconditions: false\nrequirements:\n- two:\nnode: two\nconditions: false\nrelationship: rtwo\ntwo:\ntype: two\nrequirements:\n- three:\nnode: three\nrelationship: rthree\nthree:\ntype: three\nrelationship_templates:\nrtwo:\ntype: rtwo\nrthree:\ntype: tthree\n
"},{"location":"variability4tosca/tests/test-relationships-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ntwo:\ntype: two\nrequirements:\n- three:\nnode: three\nrelationship: rthree\nthree:\ntype: three\nrelationship_templates:\nrthree:\ntype: tthree\n
"},{"location":"variability4tosca/tests/test-relationships-throw-multiple/","title":"relationships-throw-multiple","text":""},{"location":"variability4tosca/tests/test-relationships-throw-multiple/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\nrequirements:\n- two:\nnode: node_two\nrelationship: relation_one\nnode_two:\ntype: node_two\nrequirements:\n- one:\nnode: node_one\nrelationship: relation_one\nrelationship_templates:\nrelation_one:\ntype: relation_one\n
"},{"location":"variability4tosca/tests/test-relationships-throw-multiple/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Relation \"relation_one\" is used multiple times\n
"},{"location":"variability4tosca/tests/test-relationships-throw-undefined/","title":"relationships-throw-undefined","text":""},{"location":"variability4tosca/tests/test-relationships-throw-undefined/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\none:\ntype: one\nconditions: false\nrequirements:\n- two:\nnode: two\nconditions: false\nrelationship: rtwo\ntwo:\ntype: two\nrequirements:\n- three:\nnode: three\nrelationship: rthree\nthree:\ntype: three\nrelationship_templates:\nrtwo:\ntype: rtwo\n
"},{"location":"variability4tosca/tests/test-relationships-throw-undefined/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Relationship \"rthree\" of relation \"three\" of node \"two\" does not exist!\n
"},{"location":"variability4tosca/tests/test-relationships-throw-unused/","title":"relationships-throw-unused","text":""},{"location":"variability4tosca/tests/test-relationships-throw-unused/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\none:\ntype: one\nconditions: false\nrequirements:\n- two:\nnode: two\nconditions: false\nrelationship: rtwo\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\nrelationship_templates:\nrtwo:\ntype: rtwo\nrthree:\ntype: rthree\n
"},{"location":"variability4tosca/tests/test-relationships-throw-unused/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Relation \"rthree\" is never used\n
"},{"location":"variability4tosca/tests/test-relationships-type-specific/","title":"relationships-type-specific","text":""},{"location":"variability4tosca/tests/test-relationships-type-specific/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nrelation_default_condition: true\ntype_specific_conditions:\nrelationship_types:\nrone:\nconditions:\nor: []\nnode_templates:\nsource:\ntype: source\nrequirements:\n- one:\nnode: target\nrelationship: rone\n- two:\nnode: target\nrelationship: rtwo\ntarget:\ntype: target\nrelationship_templates:\nrone:\ntype: rone\nrtwo:\ntype: rtwo\n
"},{"location":"variability4tosca/tests/test-relationships-type-specific/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- two:\nnode: target\nrelationship: rtwo\ntarget:\ntype: target\nrelationship_templates:\nrtwo:\ntype: rtwo\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-conditional/","title":"requirement-assignment-conditional","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\none:\ntype: one\nrequirements:\n- two:\nnode: two\nconditions: false\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\none:\ntype: one\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-alternative-false/","title":"requirement-assignment-default-alternative-false","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-default-alternative-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\none:\ntype: one\nrequirements:\n- two:\nnode: two\nconditions: false\n- two_two:\nnode: two\ndefault_alternative: false\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-alternative-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\none:\ntype: one\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-alternative/","title":"requirement-assignment-default-alternative","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-default-alternative/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\none:\ntype: one\nrequirements:\n- two:\nnode: two\nconditions: false\n- two_two:\nnode: two\ndefault_alternative: true\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-alternative/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\none:\ntype: one\nrequirements:\n- two_two: two\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-condition-throw-source/","title":"requirement-assignment-default-condition-throw-source","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-default-condition-throw-source/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\none:\ntype: one\nconditions: false\nrequirements:\n- two:\nnode: two\nconditions: true\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-condition-throw-source/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Relation source \"one\" of relation \"two@0\" of node \"one\" does not exist\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-condition-throw-target/","title":"requirement-assignment-default-condition-throw-target","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-default-condition-throw-target/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\none:\ntype: one\nrequirements:\n- two:\nnode: two\nconditions: true\ntwo:\ntype: two\nconditions: false\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-condition-throw-target/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Relation target \"two\" of relation \"two@0\" of node \"one\" does not exist\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-condition/","title":"requirement-assignment-default-condition","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-default-condition/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nrelation_default_condition: true\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\none:\ntype: one\nconditions: false\nrequirements:\n- two: two\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-condition/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-one-hosting-relation/","title":"requirement-assignment-one-hosting-relation","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-one-hosting-relation/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\none:\ntype: one\nrequirements:\n- host:\nnode: two\nconditions: true\n- host:\nnode: three\nconditions: false\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-one-hosting-relation/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\none:\ntype: one\nrequirements:\n- host: two\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-relation-presence-index-absent/","title":"requirement-assignment-relation-presence-index-absent","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-relation-presence-index-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\ncontainer:\ntype: container\nconditions:\nrelation_presence:\n- node_one\n- 0\nnode_one:\ntype: node_one\nrequirements:\n- relation_one:\nnode: node_one\nconditions: false\n- relation_two:\nnode: node_two\nconditions: true\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-relation-presence-index-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nrequirements:\n- relation_two: node_two\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-relation-presence-name-absent/","title":"requirement-assignment-relation-presence-name-absent","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-relation-presence-name-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\ncontainer:\ntype: container\nconditions:\nrelation_presence:\n- node_one\n- relation_one\nnode_one:\ntype: node_one\nrequirements:\n- relation_one:\nnode: node_one\nconditions: false\n- relation_two:\nnode: node_two\nconditions: true\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-relation-presence-name-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nrequirements:\n- relation_two: node_two\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-source-presence-absent/","title":"requirement-assignment-source-presence-absent","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-source-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\ncontainer:\ntype: container\nconditions:\nrelation_presence:\n- node_one\n- relation_one\nnode_one:\ntype: node_one\nconditions: false\nrequirements:\n- relation_one:\nnode: node_two\nconditions:\nsource_presence: SELF\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-source-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-source-presence-present/","title":"requirement-assignment-source-presence-present","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-source-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nrelation_presence:\n- node_one\n- relation_one\nnode_one:\ntype: node_one\nconditions: true\nrequirements:\n- relation_one:\nnode: node_two\nconditions:\nsource_presence: SELF\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-source-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nnode_one:\ntype: node_one\nrequirements:\n- relation_one: node_two\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-target-presence-absent/","title":"requirement-assignment-target-presence-absent","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-target-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nrelation_presence:\n- node_one\n- relation_one\nnode_one:\ntype: node_one\nrequirements:\n- relation_one:\nnode: node_two\nconditions:\ntarget_presence: SELF\nnode_two:\ntype: node_two\nconditions: false\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-target-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-target-presence-present/","title":"requirement-assignment-target-presence-present","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-target-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nrelation_presence:\n- node_one\n- relation_one\nnode_one:\ntype: node_one\nrequirements:\n- relation_one:\nnode: node_two\nconditions:\ntarget_presence: SELF\nnode_two:\ntype: node_two\nconditions: true\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-target-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nnode_one:\ntype: node_one\nrequirements:\n- relation_one: node_two\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-throw-multiple-defaults/","title":"requirement-assignment-throw-multiple-defaults","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-throw-multiple-defaults/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\none:\ntype: one\nrequirements:\n- two:\nnode: two\ndefault_alternative: true\n- two:\nnode: two\ndefault_alternative: true\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-throw-multiple-defaults/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Relation \"two@0\" of node \"one\" has multiple defaults\n
"},{"location":"variability4tosca/tests/test-scenario-complex-alpha/","title":"Scenario \"Alpha\"","text":""},{"location":"variability4tosca/tests/test-scenario-complex-alpha/#description","title":"Description","text":"

A more complex scenario that shows that the fact that node \"node_two\" is not present propagates even to the property \"property_two\" of the relationship template \"relationship_one\".

"},{"location":"variability4tosca/tests/test-scenario-complex-alpha/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition: false\nnode_pruning: false\nexpected_incoming_relation_check: false\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nconditions: false\nproperties:\n- property_one: value_one\nrequirements:\n- relation_one:\nnode: node_one\nconditions: true\nrelationship: relationship_one\n- relation_two:\nnode: node_three\nconditions: false\n- relation_three:\nnode: node_four\ndefault_alternative: true\nartifacts:\n- artifact_one: file_one\n- artifact_one:\nfile: file_one\ndefault_alternative: true\nnode_three:\ntype: node_three\nnode_four:\ntype: node_four\nrelationship_templates:\nrelationship_one:\ntype: relationship_one\nproperties:\n- property_two: value_two\ngroups:\ngroup_one:\ntype: group_one\nmembers:\n- node_one\ngroup_two:\ntype: group_two\nmembers:\n- node_two\n- - node_two\n- relation_one\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- policy_two:\ntype: policy_two\ntargets:\n- node_two\nconditions: true\n
"},{"location":"variability4tosca/tests/test-scenario-complex-alpha/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nnode_three:\ntype: node_three\nnode_four:\ntype: node_four\ngroups:\ngroup_one:\ntype: group_one\nmembers:\n- node_one\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n
"},{"location":"variability4tosca/tests/test-scenario-worker-agent-false/","title":"scenario-worker-agent-false","text":""},{"location":"variability4tosca/tests/test-scenario-worker-agent-false/#description","title":"Description","text":"
  • agent and worker hosted on a virtual machine
  • virtual machine is only present if either agent or worker is present
  • worker is absent

  • agent is absent, thus, also the virtual machine is absent

"},{"location":"variability4tosca/tests/test-scenario-worker-agent-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\noptimization_topology: true\nnode_templates:\nagent:\ntype: agent\nconditions: false\nrequirements:\n- host: vm\nworker:\ntype: worker\nconditions: false\nrequirements:\n- host: vm\nvm:\ntype: vm\n
"},{"location":"variability4tosca/tests/test-scenario-worker-agent-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-scenario-worker-agent-true/","title":"scenario-worker-agent-true","text":""},{"location":"variability4tosca/tests/test-scenario-worker-agent-true/#description","title":"Description","text":"
  • agent and worker hosted on a virtual machine
  • virtual machine is only present if either agent or worker is present
  • worker is absent

  • agent is present, thus, also the virtual machine is present

"},{"location":"variability4tosca/tests/test-scenario-worker-agent-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\noptimization_topology: true\nnode_templates:\nagent:\ntype: agent\nconditions: true\nrequirements:\n- host: vm\nworker:\ntype: worker\nconditions: false\nrequirements:\n- host: vm\nvm:\ntype: vm\n
"},{"location":"variability4tosca/tests/test-scenario-worker-agent-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nagent:\ntype: agent\nrequirements:\n- host: vm\nvm:\ntype: vm\n
"},{"location":"variability4tosca/tests/test-scenario-worker-worker-false/","title":"scenario-worker-worker-false","text":""},{"location":"variability4tosca/tests/test-scenario-worker-worker-false/#description","title":"Description","text":"
  • agent and worker hosted on a virtual machine
  • virtual machine is only present if either agent or worker is present
  • agent is only present if the virtual machine is present, thus, circle

  • worker is absent

  • since pruning is enabled, all components are absent
"},{"location":"variability4tosca/tests/test-scenario-worker-worker-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\noptimization_topology: true\nnode_templates:\nagent:\ntype: agent\nconditions:\nhost_presence: SELF\nrequirements:\n- host: vm\nworker:\ntype: worker\nconditions: false\nrequirements:\n- host: vm\nvm:\ntype: vm\n
"},{"location":"variability4tosca/tests/test-scenario-worker-worker-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-scenario-worker-worker-true/","title":"scenario-worker-worker-true","text":""},{"location":"variability4tosca/tests/test-scenario-worker-worker-true/#description","title":"Description","text":"
  • agent and worker hosted on a virtual machine
  • virtual machine is only present if either agent or worker is present
  • agent is only present if the virtual machine is present, thus, circle

  • worker is present, thus, all components are present

"},{"location":"variability4tosca/tests/test-scenario-worker-worker-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\noptimization_topology: true\nnode_templates:\nagent:\ntype: agent\nconditions:\nhost_presence: SELF\nrequirements:\n- host: vm\nworker:\ntype: worker\nconditions: true\nrequirements:\n- host: vm\nvm:\ntype: vm\n
"},{"location":"variability4tosca/tests/test-scenario-worker-worker-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nagent:\ntype: agent\nrequirements:\n- host: vm\nworker:\ntype: worker\nrequirements:\n- host: vm\nvm:\ntype: vm\n
"},{"location":"variability4tosca/tests/test-technologies-ambiguous-disabled/","title":"technologies-ambiguous-disabled","text":""},{"location":"variability4tosca/tests/test-technologies-ambiguous-disabled/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nambiguous_technology_check: false\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-ambiguous-disabled/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container~container::ansible\n
"},{"location":"variability4tosca/tests/test-technologies-ambiguous/","title":"technologies-ambiguous","text":""},{"location":"variability4tosca/tests/test-technologies-ambiguous/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nambiguous_technology_check: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-ambiguous/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"container\" has more than one technology\n
"},{"location":"variability4tosca/tests/test-technologies-conditional/","title":"technologies-conditional","text":""},{"location":"variability4tosca/tests/test-technologies-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: false\n
"},{"location":"variability4tosca/tests/test-technologies-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container~container::ansible\n
"},{"location":"variability4tosca/tests/test-technologies-constraint-disabled/","title":"technologies-constraint-disabled","text":""},{"location":"variability4tosca/tests/test-technologies-constraint-disabled/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntechnology_constraint: false\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-constraint-disabled/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"container\" has more than one technology\n
"},{"location":"variability4tosca/tests/test-technologies-constraint/","title":"technologies-constraint","text":""},{"location":"variability4tosca/tests/test-technologies-constraint/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntechnology_constraint: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-constraint/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-technologies-default-multiple/","title":"technologies-default-multiple","text":""},{"location":"variability4tosca/tests/test-technologies-default-multiple/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\ndefault_alternative: true\n- terraform:\ndefault_alternative: true\n
"},{"location":"variability4tosca/tests/test-technologies-default-multiple/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"container\" has multiple default technologies\n
"},{"location":"variability4tosca/tests/test-technologies-default-true/","title":"technologies-default-true","text":""},{"location":"variability4tosca/tests/test-technologies-default-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: false\n- terraform:\ndefault_alternative: true\n
"},{"location":"variability4tosca/tests/test-technologies-default-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container~container::terraform\n
"},{"location":"variability4tosca/tests/test-technologies-expected-disabled/","title":"technologies-expected-disabled","text":""},{"location":"variability4tosca/tests/test-technologies-expected-disabled/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: false\ntechnology_pruning: false\ntechnology_constraint: false\nexpected_technology_check: false\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: false\n
"},{"location":"variability4tosca/tests/test-technologies-expected-disabled/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"container\" has no present technology\n
"},{"location":"variability4tosca/tests/test-technologies-expected/","title":"technologies-expected","text":""},{"location":"variability4tosca/tests/test-technologies-expected/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: false\ntechnology_pruning: false\ntechnology_constraint: false\nexpected_technology_check: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: false\n
"},{"location":"variability4tosca/tests/test-technologies-expected/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"container\" expected to have a technology\n
"},{"location":"variability4tosca/tests/test-technologies-lowercase/","title":"technologies-lowercase","text":""},{"location":"variability4tosca/tests/test-technologies-lowercase/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- Ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-lowercase/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container~container::ansible\n
"},{"location":"variability4tosca/tests/test-technologies-missing-disabled/","title":"technologies-missing-disabled","text":""},{"location":"variability4tosca/tests/test-technologies-missing-disabled/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nmissing_technology_container_check: false\nnode_templates:\ncontainer:\ntype: container\nconditions: false\ntechnology:\n- ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-missing-disabled/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-technologies-missing/","title":"technologies-missing","text":""},{"location":"variability4tosca/tests/test-technologies-missing/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nmissing_technology_container_check: true\nnode_templates:\ncontainer:\ntype: container\nconditions: false\ntechnology:\n- ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-missing/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Container of technology \"ansible@0\" of node \"container\" does not exist\n
"},{"location":"variability4tosca/tests/test-technologies-optimization-double/","title":"technologies-optimization-double","text":""},{"location":"variability4tosca/tests/test-technologies-optimization-double/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_technologies: true\ntechnology_pruning: true\nnode_templates:\ncontainer:\ntype: container\npersistent: true\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: true\nrequirements:\n- relation:\nnode: container_host\nconditions: false\ncontainer_host:\ntype: container_host\ncontainer_host_agent:\ntype: container_host_agent\nrequirements:\n- host:\nnode: container_host\nanother:\ntype: another\ntechnology:\n- ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-optimization-double/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container~container::ansible\nanother:\ntype: another~another::ansible\n
"},{"location":"variability4tosca/tests/test-technologies-optimization-order/","title":"technologies-optimization-order","text":""},{"location":"variability4tosca/tests/test-technologies-optimization-order/#description","title":"Description","text":"

order of technologies does not matter

"},{"location":"variability4tosca/tests/test-technologies-optimization-order/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: true\noptimization_technologies_unique: true\ntechnology_pruning: true\ntechnology_constraint: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: true\nanother:\ntype: another\ntechnology:\n- ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-optimization-order/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container~container::ansible\nanother:\ntype: another~another::ansible\n
"},{"location":"variability4tosca/tests/test-technologies-optimization-unsat/","title":"technologies-optimization-unsat","text":""},{"location":"variability4tosca/tests/test-technologies-optimization-unsat/#description","title":"Description","text":"

technology optimization requires technology pruning

"},{"location":"variability4tosca/tests/test-technologies-optimization-unsat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: true\ntechnology_pruning: false\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: true\nanother:\ntype: another\ntechnology:\n- ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-optimization-unsat/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"container\" has more than one technology\n
"},{"location":"variability4tosca/tests/test-technologies-optimization-weight/","title":"technologies-optimization-weight","text":""},{"location":"variability4tosca/tests/test-technologies-optimization-weight/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: true\noptimization_technologies_mode: weight\noptimization_technologies_unique: true\ntechnology_pruning: true\ntechnology_constraint: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- terraform:\nconditions: true\nweight: 0.5\n- ansible:\nconditions: true\nweight: 1\nanother:\ntype: another\ntechnology:\n- ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-optimization-weight/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container~container::terraform\nanother:\ntype: another~another::ansible\n
"},{"location":"variability4tosca/tests/test-technologies-optimization/","title":"technologies-optimization","text":""},{"location":"variability4tosca/tests/test-technologies-optimization/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: true\noptimization_technologies_unique: true\ntechnology_pruning: true\ntechnology_constraint: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- terraform:\nconditions: true\n- ansible:\nconditions: true\nanother:\ntype: another\ntechnology:\n- ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-optimization/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container~container::ansible\nanother:\ntype: another~another::ansible\n
"},{"location":"variability4tosca/tests/test-technologies-pruning-disabled/","title":"technologies-pruning-disabled","text":""},{"location":"variability4tosca/tests/test-technologies-pruning-disabled/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nmissing_technology_container_check: true\ntechnology_pruning: false\nnode_templates:\ncontainer:\ntype: container\nconditions: false\ntechnology:\n- ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-pruning-disabled/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Container of technology \"ansible@0\" of node \"container\" does not exist\n
"},{"location":"variability4tosca/tests/test-technologies-pruning/","title":"technologies-pruning","text":""},{"location":"variability4tosca/tests/test-technologies-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nmissing_technology_container_check: true\ntechnology_pruning: true\nnode_templates:\ncontainer:\ntype: container\nconditions: false\ntechnology:\n- ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-technologies-rules-v3/","title":"technologies-rules-v3","text":""},{"location":"variability4tosca/tests/test-technologies-rules-v3/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nansible_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\nterraform_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\nansible_terraform_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ndatabase:\nderived_from: tosca.nodes.Root\ndbms:\nderived_from: tosca.nodes.Root\ntopology_template:\nvariability:\ntechnology_rules:\n- component: application\ntechnology: terraform\nhosting:\n- terraform_host\n- component: application\ntechnology: terraform\nhosting:\n- ansible_terraform_host\n- component: another\ntechnology: terraform\nhosting:\n- another_terraform_host\n- component: database\ntechnology:\n- terraform\n- component: dbms\ntechnology:\n- terraform\n- component: application\ntechnology: ansible\nhosting:\n- ansible_host\n- component: application\ntechnology: ansible\nhosting:\n- ansible_terraform_host\n- component: application\ntechnology: helm\nhosting:\n- helm_host\nnode_templates:\napplication:\ntype: application\npersistent: true\nrequirements:\n- host:\nnode: ansible_host\nconditions: false\n- host:\nnode: terraform_host\nconditions: false\n- host:\nnode: ansible_terraform_host\n- database:\nnode: database\nansible_host:\ntype: ansible_host\nterraform_host:\ntype: terraform_host\nansible_terraform_host:\ntype: ansible_terraform_host\ndatabase:\ntype: database\ntechnology: terraform\nrequirements:\n- host:\nnode: dbms\ndbms:\ntype: dbms\ntechnology: terraform\n
"},{"location":"variability4tosca/tests/test-technologies-rules-v3/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nansible_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\nterraform_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\nansible_terraform_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ndatabase:\nderived_from: tosca.nodes.Root\ndbms:\nderived_from: tosca.nodes.Root\ntopology_template:\nnode_templates:\napplication:\ntype: application~application::terraform@ansible_terraform_host\nrequirements:\n- host: ansible_terraform_host\n- database: database\nansible_terraform_host:\ntype: ansible_terraform_host\ndatabase:\ntype: database~database::terraform\nrequirements:\n- host: dbms\ndbms:\ntype: dbms~dbms::terraform\n
"},{"location":"variability4tosca/tests/test-technologies-rules/","title":"technologies-rules","text":""},{"location":"variability4tosca/tests/test-technologies-rules/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nansible_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\nterraform_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\nansible_terraform_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ndatabase:\nderived_from: tosca.nodes.Root\ndbms:\nderived_from: tosca.nodes.Root\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\noptimization_technologies: true\noptimization_technologies_unique: true\ntechnology_pruning: true\ntechnology_constraint: true\nenrich_technologies: true\ntechnology_rules:\n- component: application\ntechnology: terraform\nhosting:\n- terraform_host\n- component: application\ntechnology: terraform\nhosting:\n- ansible_terraform_host\n- component: another\ntechnology: terraform\nhosting:\n- another_terraform_host\n- component: database\ntechnology: terraform\n- component: dbms\ntechnology: terraform\n- component: application\ntechnology: ansible\nhosting:\n- ansible_host\n- component: application\ntechnology: ansible\nhosting:\n- ansible_terraform_host\n- component: application\ntechnology: helm\nhosting:\n- helm_host\nnode_templates:\napplication:\ntype: application\npersistent: true\nrequirements:\n- host:\nnode: ansible_host\nconditions: false\n- host:\nnode: terraform_host\nconditions: false\n- host:\nnode: ansible_terraform_host\n- database:\nnode: database\nansible_host:\ntype: ansible_host\nterraform_host:\ntype: terraform_host\nansible_terraform_host:\ntype: ansible_terraform_host\ndatabase:\ntype: database\ntechnology: terraform\nrequirements:\n- host:\nnode: dbms\ndbms:\ntype: dbms\ntechnology: terraform\n
"},{"location":"variability4tosca/tests/test-technologies-rules/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nansible_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\nterraform_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\nansible_terraform_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ndatabase:\nderived_from: tosca.nodes.Root\ndbms:\nderived_from: tosca.nodes.Root\ntopology_template:\nnode_templates:\napplication:\ntype: application~application::terraform@ansible_terraform_host\nrequirements:\n- host: ansible_terraform_host\n- database: database\nansible_terraform_host:\ntype: ansible_terraform_host\ndatabase:\ntype: database~database::terraform\nrequirements:\n- host: dbms\ndbms:\ntype: dbms~dbms::terraform\n
"},{"location":"variability4tosca/tests/test-technologies-throw-required/","title":"technologies-throw-required","text":""},{"location":"variability4tosca/tests/test-technologies-throw-required/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nansible_host:\nderived_from: tosca.nodes.Root\nterraform_host:\nderived_from: tosca.nodes.Root\nansible_terraform_host:\nderived_from: tosca.nodes.Root\ndatabase:\nderived_from: tosca.nodes.Root\ndbms:\nderived_from: tosca.nodes.Root\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\noptimization_technologies: true\noptimization_technologies_unique: true\ntechnology_pruning: true\ntechnology_constraint: true\ntechnology_rules:\n- component: ansible_host\ntechnology: terraform\n- component: terraform_host\ntechnology: terraform\n- component: ansible_terraform_host\ntechnology: terraform\n- component: database\ntechnology: terraform\n- component: dbms\ntechnology: terraform\nnode_templates:\napplication:\ntype: application\npersistent: true\nrequirements:\n- host:\nnode: ansible_host\nconditions: false\n- host:\nnode: terraform_host\nconditions: false\n- host:\nnode: ansible_terraform_host\n- database:\nnode: database\nansible_host:\ntype: ansible_host\nterraform_host:\ntype: terraform_host\nansible_terraform_host:\ntype: ansible_terraform_host\ndatabase:\ntype: database\ntechnology: terraform\nrequirements:\n- host:\nnode: dbms\ndbms:\ntype: dbms\ntechnology: terraform\n
"},{"location":"variability4tosca/tests/test-technologies-throw-required/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"application\" has no technology candidates\n
"},{"location":"variability4tosca/tests/test-technologies-unique-disabled/","title":"technologies-unique-disabled","text":""},{"location":"variability4tosca/tests/test-technologies-unique-disabled/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: true\noptimization_technologies_unique: false\ntechnology_pruning: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: true\n- puppet:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-unique-disabled/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container~container::puppet\n
"},{"location":"variability4tosca/tests/test-technologies-unique/","title":"technologies-unique","text":""},{"location":"variability4tosca/tests/test-technologies-unique/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: true\noptimization_technologies_unique: true\ntechnology_pruning: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: true\n- puppet:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-unique/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

The result is ambiguous considering technologies (besides optimization)\n
"},{"location":"variability4tosca/tests/test-variability-inputs-implies/","title":"variability-inputs-implies","text":""},{"location":"variability4tosca/tests/test-variability-inputs-implies/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nfirst:\ntype: boolean\ndefault: true\nimplies: second\nsecond:\ntype: boolean\ndefault: false\n
"},{"location":"variability4tosca/tests/test-variability-inputs-implies/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Variability inputs constraints are violated\n
"},{"location":"variability4tosca/tests/test-variability-inputs-no-constraints/","title":"variability-inputs-no-constraints","text":""},{"location":"variability4tosca/tests/test-variability-inputs-no-constraints/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nfirst:\ntype: boolean\ndefault: true\nsecond:\ntype: boolean\ndefault: false\n
"},{"location":"variability4tosca/tests/test-variability-inputs-no-constraints/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"tags/","title":"Tags","text":"

This document holds tags used throughout this documentation.

","tags":["Misc"]},{"location":"tags/#algorithms-2022","title":"Algorithms 2022","text":"
  • Motivation
","tags":["Misc"]},{"location":"tags/#closer-2024","title":"CLOSER 2024","text":"
  • Hosting-Aware Pruning
  • Pruning Modes
","tags":["Misc"]},{"location":"tags/#contributing","title":"Contributing","text":"
  • Code of Conduct
  • Development
  • Documentation
  • Notes
  • Release
  • Setup
","tags":["Misc"]},{"location":"tags/#coopis-2023","title":"CoopIS 2023","text":"
  • Conditional Deployment Artifacts and Conditional Properties
","tags":["Misc"]},{"location":"tags/#docker","title":"Docker","text":"
  • Installation
  • Uninstallation
","tags":["Misc"]},{"location":"tags/#edmm","title":"EDMM","text":"
  • EDMM Compliance
","tags":["Misc"]},{"location":"tags/#experimental","title":"Experimental","text":"
  • Dynamic Deployment Artifacts
  • Pipes and Filters Application
","tags":["Misc"]},{"location":"tags/#guide","title":"Guide","text":"
  • Getting Started
  • Getting Started
  • Distributed Locations
  • Zonal Architecture
  • Conditional Deployment Artifacts and Conditional Properties
  • Hosting-Aware Pruning
  • Pruning Modes
  • Pipes and Filters Application
  • Pruning Elements
  • Motivation
","tags":["Misc"]},{"location":"tags/#misc","title":"Misc","text":"
  • Branding
  • FAQ
  • Publications
  • Resources
  • About Us
","tags":["Misc"]},{"location":"tags/#normative","title":"Normative","text":"
  • TOSCA Vintner Profile
  • Profile
","tags":["Misc"]},{"location":"tags/#profile","title":"Profile","text":"
  • TOSCA Vintner Profile
  • Profile
","tags":["Misc"]},{"location":"tags/#publication","title":"Publication","text":"
  • Publications
  • Conditional Deployment Artifacts and Conditional Properties
  • Hosting-Aware Pruning
  • Pruning Modes
  • Pruning Elements
  • Motivation
","tags":["Misc"]},{"location":"tags/#queries4tosca","title":"Queries4TOSCA","text":"
  • Getting Started
  • Specification
  • Introduction
","tags":["Misc"]},{"location":"tags/#sofdcar","title":"SofDCar","text":"
  • Profile
  • Distributed Locations
  • Zonal Architecture
","tags":["Misc"]},{"location":"tags/#specification","title":"Specification","text":"
  • EDMM Compliance
  • TOSCA Vintner Profile
  • Specification
  • Introduction
  • Secure CSAR
  • Profile
  • Dynamic Deployment Artifacts
  • Feature IDE
  • Testing
  • Technology Rules
  • Specification
  • Introduction
","tags":["Misc"]},{"location":"tags/#ucc-2023","title":"UCC 2023","text":"
  • Pruning Elements
","tags":["Misc"]},{"location":"tags/#unfurl","title":"Unfurl","text":"
  • Getting Started
  • Orchestrators
  • Conditional Deployment Artifacts and Conditional Properties
  • Hosting-Aware Pruning
","tags":["Misc"]},{"location":"tags/#variability4tosca","title":"Variability4TOSCA","text":"
  • Benchmark
  • Dynamic Deployment Artifacts
  • Feature IDE
  • Testing
  • Conditional Deployment Artifacts and Conditional Properties
  • Hosting-Aware Pruning
  • Pruning Modes
  • Pipes and Filters Application
  • Pruning Elements
  • Motivation
  • Specification
  • Introduction
","tags":["Misc"]},{"location":"tags/#vintner","title":"Vintner","text":"
  • Dependencies
  • Features
  • Getting Started
  • Installation
  • Interface
  • Orchestrators
  • Uninstallation
  • Usage
  • Versions
  • TOSCA Vintner Profile
  • Technology Rules
","tags":["Misc"]},{"location":"tags/#zenodo","title":"Zenodo","text":"
  • Publications
  • Conditional Deployment Artifacts and Conditional Properties
  • Hosting-Aware Pruning
  • Pruning Modes
  • Pruning Elements
  • Motivation
","tags":["Misc"]},{"location":"tags/#xopera","title":"xOpera","text":"
  • Getting Started
  • Orchestrators
  • Pruning Modes
  • Pipes and Filters Application
  • Pruning Elements
  • Motivation
","tags":["Misc"]}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"branding/","title":"Branding","text":"

This document holds colors, fonts, and logos.

","tags":["Misc"]},{"location":"branding/#colors","title":"Colors","text":"
  • Accent Color Hex: #FF6E42
  • Accent Color RGB: 255 110 66
  • Primary Color Hex: #000000
  • Primary Color RGB: 0 0 0
","tags":["Misc"]},{"location":"branding/#fonts","title":"Fonts","text":"
  • Accent Font: Abril Fatface
  • Primary Font: Inter
  • Code Font: ui-monospace
","tags":["Misc"]},{"location":"branding/#logos","title":"Logos","text":"Vintner Logo Orange SVG Vintner Logo Orange PNG Vintner Logo Black SVG Vintner Logo Black PNG","tags":["Misc"]},{"location":"branding/#icons","title":"Icons","text":"Vintner Icon SVG","tags":["Misc"]},{"location":"dependencies/","title":"Dependencies","text":"

This document holds the dependencies used in production. The list is available as CSV. We ensure, that only the licenses 0BSD, Apache-2.0, BSD-2-Clause, BSD-3-Clause, BlueOak-1.0.0, CC-BY-3.0, CC0-1.0, ISC, MIT, PSF, Public Domain, Python-2.0 are used.

ID Dependency License URL 1 @ewoudenberg/difflib@0.1.0 PSF https://github.com/ewoudenberg/difflib.js 2 @isaacs/cliui@8.0.2 ISC https://github.com/yargs/cliui 3 @pkgjs/parseargs@0.11.0 MIT https://github.com/pkgjs/parseargs 4 @yarnpkg/lockfile@1.1.0 BSD-2-Clause https://github.com/yarnpkg/yarn/blob/master/packages/lockfile 5 abort-controller@3.0.0 MIT https://github.com/mysticatea/abort-controller 6 accepts@1.3.8 MIT https://github.com/jshttp/accepts 7 ansi-regex@5.0.1 MIT https://github.com/chalk/ansi-regex 8 ansi-regex@6.0.1 MIT https://github.com/chalk/ansi-regex 9 ansi-styles@4.3.0 MIT https://github.com/chalk/ansi-styles 10 ansi-styles@6.2.1 MIT https://github.com/chalk/ansi-styles 11 anymatch@3.1.3 ISC https://github.com/micromatch/anymatch 12 archiver-utils@5.0.2 MIT https://github.com/archiverjs/archiver-utils 13 archiver@7.0.1 MIT https://github.com/archiverjs/node-archiver 14 argparse@2.0.1 Python-2.0 https://github.com/nodeca/argparse 15 array-flatten@1.1.1 MIT https://github.com/blakeembrey/array-flatten 16 arrify@1.0.1 MIT https://github.com/sindresorhus/arrify 17 async-mutex@0.5.0 MIT https://github.com/DirtyHairy/async-mutex 18 async@3.2.4 MIT https://github.com/caolan/async 19 async@3.2.5 MIT https://github.com/caolan/async 20 asynckit@0.4.0 MIT https://github.com/alexindigo/asynckit 21 at-least-node@1.0.0 ISC https://github.com/RyanZim/at-least-node 22 axios@0.27.2 MIT https://github.com/axios/axios 23 b4a@1.6.6 Apache-2.0 https://github.com/holepunchto/b4a 24 balanced-match@1.0.2 MIT https://github.com/juliangruber/balanced-match 25 bare-events@2.4.2 Apache-2.0 https://github.com/holepunchto/bare-events 26 base64-js@1.5.1 MIT https://github.com/beatgammit/base64-js 27 binary-extensions@2.2.0 MIT https://github.com/sindresorhus/binary-extensions 28 body-parser@1.20.3 MIT https://github.com/expressjs/body-parser 29 brace-expansion@1.1.11 MIT https://github.com/juliangruber/brace-expansion 30 brace-expansion@2.0.1 MIT https://github.com/juliangruber/brace-expansion 31 braces@3.0.2 MIT https://github.com/micromatch/braces 32 braces@3.0.3 MIT https://github.com/micromatch/braces 33 buffer-crc32@0.2.13 MIT https://github.com/brianloveswords/buffer-crc32 34 buffer-crc32@1.0.0 MIT https://github.com/brianloveswords/buffer-crc32 35 buffer@6.0.3 MIT https://github.com/feross/buffer 36 bytes@3.1.2 MIT https://github.com/visionmedia/bytes.js 37 call-bind@1.0.7 MIT https://github.com/ljharb/call-bind 38 call-me-maybe@1.0.2 MIT https://github.com/limulus/call-me-maybe 39 chalk@4.1.2 MIT https://github.com/chalk/chalk 40 chokidar@3.5.3 MIT https://github.com/paulmillr/chokidar 41 ci-info@3.8.0 MIT https://github.com/watson/ci-info 42 color-convert@2.0.1 MIT https://github.com/Qix-/color-convert 43 color-name@1.1.4 MIT https://github.com/colorjs/color-name 44 colors@1.4.0 MIT https://github.com/Marak/colors.js 45 combined-stream@1.0.8 MIT https://github.com/felixge/node-combined-stream 46 commander@12.1.0 MIT https://github.com/tj/commander.js 47 commander@2.20.3 MIT https://github.com/tj/commander.js 48 commander@6.2.1 MIT https://github.com/tj/commander.js 49 compress-commons@6.0.2 MIT https://github.com/archiverjs/node-compress-commons 50 concat-map@0.0.1 MIT https://github.com/substack/node-concat-map 51 content-disposition@0.5.4 MIT https://github.com/jshttp/content-disposition 52 content-type@1.0.5 MIT https://github.com/jshttp/content-type 53 cookie-signature@1.0.6 MIT https://github.com/visionmedia/node-cookie-signature 54 cookie@0.6.0 MIT https://github.com/jshttp/cookie 55 core-util-is@1.0.3 MIT https://github.com/isaacs/core-util-is 56 cors@2.8.5 MIT https://github.com/expressjs/cors 57 crc-32@1.2.2 Apache-2.0 https://github.com/SheetJS/js-crc32 58 crc32-stream@6.0.0 MIT https://github.com/archiverjs/node-crc32-stream 59 cross-spawn@7.0.3 MIT https://github.com/moxystudio/node-cross-spawn 60 dayjs@1.11.11 MIT https://github.com/iamkun/dayjs 61 debug@2.6.9 MIT https://github.com/visionmedia/debug 62 debug@4.3.4 MIT https://github.com/debug-js/debug 63 define-data-property@1.1.4 MIT https://github.com/ljharb/define-data-property 64 delayed-stream@1.0.0 MIT https://github.com/felixge/node-delayed-stream 65 depd@2.0.0 MIT https://github.com/dougwilson/nodejs-depd 66 destroy@1.2.0 MIT https://github.com/stream-utils/destroy 67 dreamopt@0.8.0 MIT https://github.com/andreyvit/dreamopt.js 68 eastasianwidth@0.2.0 MIT https://github.com/komagata/eastasianwidth 69 ee-first@1.1.1 MIT https://github.com/jonathanong/ee-first 70 ejs@3.1.10 Apache-2.0 https://github.com/mde/ejs 71 emoji-regex@8.0.0 MIT https://github.com/mathiasbynens/emoji-regex 72 emoji-regex@9.2.2 MIT https://github.com/mathiasbynens/emoji-regex 73 encodeurl@1.0.2 MIT https://github.com/pillarjs/encodeurl 74 encodeurl@2.0.0 MIT https://github.com/pillarjs/encodeurl 75 end-of-stream@1.4.4 MIT https://github.com/mafintosh/end-of-stream 76 es-define-property@1.0.0 MIT https://github.com/ljharb/es-define-property 77 es-errors@1.3.0 MIT https://github.com/ljharb/es-errors 78 es6-promise@4.2.8 MIT https://github.com/stefanpenner/es6-promise 79 escape-html@1.0.3 MIT https://github.com/component/escape-html 80 etag@1.8.1 MIT https://github.com/jshttp/etag 81 event-target-shim@5.0.1 MIT https://github.com/mysticatea/event-target-shim 82 events@3.3.0 MIT https://github.com/Gozala/events 83 express@4.21.0 MIT https://github.com/expressjs/express 84 extract-zip@2.0.1 BSD-2-Clause https://github.com/maxogden/extract-zip 85 fast-fifo@1.3.2 MIT https://github.com/mafintosh/fast-fifo 86 fd-slicer@1.1.0 MIT https://github.com/andrewrk/node-fd-slicer 87 filelist@1.0.4 Apache-2.0 https://github.com/mde/filelist 88 fill-range@7.0.1 MIT https://github.com/jonschlinkert/fill-range 89 fill-range@7.1.1 MIT https://github.com/jonschlinkert/fill-range 90 finalhandler@1.3.1 MIT https://github.com/pillarjs/finalhandler 91 find-yarn-workspace-root@2.0.0 Apache-2.0 https://github.com/square/find-yarn-workspace-root 92 follow-redirects@1.15.2 MIT https://github.com/follow-redirects/follow-redirects 93 foreground-child@3.1.1 ISC https://github.com/tapjs/foreground-child 94 form-data@4.0.0 MIT https://github.com/form-data/form-data 95 forwarded@0.2.0 MIT https://github.com/jshttp/forwarded 96 fresh@0.5.2 MIT https://github.com/jshttp/fresh 97 friendly-node-cron@1.5.0 MIT https://github.com/FreaKzero/friendly-node-cron 98 fs-extra@11.2.0 MIT https://github.com/jprichardson/node-fs-extra 99 fs-extra@7.0.1 MIT https://github.com/jprichardson/node-fs-extra 100 fs-extra@9.1.0 MIT https://github.com/jprichardson/node-fs-extra 101 fs.realpath@1.0.0 ISC https://github.com/isaacs/fs.realpath 102 function-bind@1.1.1 MIT https://github.com/Raynos/function-bind 103 function-bind@1.1.2 MIT https://github.com/Raynos/function-bind 104 get-intrinsic@1.2.0 MIT https://github.com/ljharb/get-intrinsic 105 get-intrinsic@1.2.4 MIT https://github.com/ljharb/get-intrinsic 106 get-stream@5.2.0 MIT https://github.com/sindresorhus/get-stream 107 glob-parent@5.1.2 ISC https://github.com/gulpjs/glob-parent 108 glob-to-regexp@0.3.0 BSD-2-Clause https://github.com/fitzgen/glob-to-regexp 109 glob@10.4.1 ISC https://github.com/isaacs/node-glob 110 glob@7.2.3 ISC https://github.com/isaacs/node-glob 111 gopd@1.0.1 MIT https://github.com/ljharb/gopd 112 graceful-fs@4.2.11 ISC https://github.com/isaacs/node-graceful-fs 113 has-flag@4.0.0 MIT https://github.com/sindresorhus/has-flag 114 has-property-descriptors@1.0.2 MIT https://github.com/inspect-js/has-property-descriptors 115 has-proto@1.0.1 MIT https://github.com/inspect-js/has-proto 116 has-symbols@1.0.3 MIT https://github.com/inspect-js/has-symbols 117 has@1.0.3 MIT https://github.com/tarruda/has 118 hasown@2.0.2 MIT https://github.com/inspect-js/hasOwn 119 heap@0.2.7 MIT https://github.com/qiao/heap.js 120 http-errors@2.0.0 MIT https://github.com/jshttp/http-errors 121 iconv-lite@0.4.24 MIT https://github.com/ashtuchkin/iconv-lite 122 ieee754@1.2.1 BSD-3-Clause https://github.com/feross/ieee754 123 inflight@1.0.6 ISC https://github.com/npm/inflight 124 inherits@2.0.4 ISC https://github.com/isaacs/inherits 125 ipaddr.js@1.9.1 MIT https://github.com/whitequark/ipaddr.js 126 is-absolute@1.0.0 MIT https://github.com/jonschlinkert/is-absolute 127 is-binary-path@2.1.0 MIT https://github.com/sindresorhus/is-binary-path 128 is-docker@2.2.1 MIT https://github.com/sindresorhus/is-docker 129 is-extglob@2.1.1 MIT https://github.com/jonschlinkert/is-extglob 130 is-fullwidth-code-point@3.0.0 MIT https://github.com/sindresorhus/is-fullwidth-code-point 131 is-glob@4.0.3 MIT https://github.com/micromatch/is-glob 132 is-number@7.0.0 MIT https://github.com/jonschlinkert/is-number 133 is-relative@1.0.0 MIT https://github.com/jonschlinkert/is-relative 134 is-stream@2.0.1 MIT https://github.com/sindresorhus/is-stream 135 is-unc-path@1.0.0 MIT https://github.com/jonschlinkert/is-unc-path 136 is-windows@1.0.2 MIT https://github.com/jonschlinkert/is-windows 137 is-wsl@2.2.0 MIT https://github.com/sindresorhus/is-wsl 138 isarray@1.0.0 MIT https://github.com/juliangruber/isarray 139 isexe@2.0.0 ISC https://github.com/isaacs/isexe 140 isnumber@1.0.0 MIT https://github.com/brycebaril/node-isnumber 141 jackspeak@3.4.0 BlueOak-1.0.0 https://github.com/isaacs/jackspeak 142 jake@10.8.5 Apache-2.0 https://github.com/jakejs/jake 143 js-ini@1.6.0 MIT https://github.com/Sdju/js-ini 144 js-yaml@4.1.0 MIT https://github.com/nodeca/js-yaml 145 json-diff@1.0.6 MIT https://github.com/andreyvit/json-diff 146 json-stable-stringify@1.0.2 MIT https://github.com/ljharb/json-stable-stringify 147 jsonfile@4.0.0 MIT https://github.com/jprichardson/node-jsonfile 148 jsonfile@6.1.0 MIT https://github.com/jprichardson/node-jsonfile 149 jsonify@0.0.1 Public Domain https://github.com/ljharb/jsonify 150 klaw-sync@6.0.0 MIT https://github.com/manidlou/node-klaw-sync 151 lazystream@1.0.1 MIT https://github.com/jpommerening/node-lazystream 152 lnk@1.1.0 MIT https://github.com/schnittstabil/lnk 153 lodash@4.17.21 MIT https://github.com/lodash/lodash 154 logic-solver@2.0.1 MIT https://github.com/meteor/logic-solver 155 lru-cache@10.2.2 ISC https://github.com/isaacs/node-lru-cache 156 lru-cache@6.0.0 ISC https://github.com/isaacs/node-lru-cache 157 media-typer@0.3.0 MIT https://github.com/jshttp/media-typer 158 merge-descriptors@1.0.3 MIT https://github.com/sindresorhus/merge-descriptors 159 methods@1.1.2 MIT https://github.com/jshttp/methods 160 micromatch@4.0.8 MIT https://github.com/micromatch/micromatch 161 mime-db@1.52.0 MIT https://github.com/jshttp/mime-db 162 mime-types@2.1.35 MIT https://github.com/jshttp/mime-types 163 mime@1.6.0 MIT https://github.com/broofa/node-mime 164 minimatch@3.1.2 ISC https://github.com/isaacs/minimatch 165 minimatch@5.1.6 ISC https://github.com/isaacs/minimatch 166 minimatch@9.0.4 ISC https://github.com/isaacs/minimatch 167 minimist@1.2.8 MIT https://github.com/minimistjs/minimist 168 minipass@7.0.3 ISC https://github.com/isaacs/minipass 169 minipass@7.1.2 ISC https://github.com/isaacs/minipass 170 mkdirp@0.5.6 MIT https://github.com/substack/node-mkdirp 171 ms@2.0.0 MIT https://github.com/zeit/ms 172 ms@2.1.2 MIT https://github.com/zeit/ms 173 ms@2.1.3 MIT https://github.com/vercel/ms 174 negotiator@0.6.3 MIT https://github.com/jshttp/negotiator 175 node-cron@3.0.3 ISC https://github.com/merencia/node-cron 176 node-nailgun-client@0.1.2 Apache-2.0 https://github.com/markushedvall/node-nailgun-client 177 node-nailgun-server@0.1.4 Apache-2.0 https://github.com/markushedvall/node-nailgun-server 178 node-plantuml@0.9.0 MIT https://github.com/markushedvall/node-plantuml 179 normalize-path@3.0.0 MIT https://github.com/jonschlinkert/normalize-path 180 object-assign@4.1.1 MIT https://github.com/sindresorhus/object-assign 181 object-inspect@1.13.2 MIT https://github.com/inspect-js/object-inspect 182 ohm-js@16.4.0 MIT https://github.com/harc/ohm 183 on-finished@2.4.1 MIT https://github.com/jshttp/on-finished 184 once@1.4.0 ISC https://github.com/isaacs/once 185 open@7.4.2 MIT https://github.com/sindresorhus/open 186 opentosca-vintner@0.1.7 Apache-2.0 https://github.com/OpenTOSCA/opentosca-vintner 187 os-tmpdir@1.0.2 MIT https://github.com/sindresorhus/os-tmpdir 188 papaparse@5.4.1 MIT https://github.com/mholt/PapaParse 189 parseurl@1.3.3 MIT https://github.com/pillarjs/parseurl 190 patch-package@8.0.0 MIT https://github.com/ds300/patch-package 191 path-is-absolute@1.0.1 MIT https://github.com/sindresorhus/path-is-absolute 192 path-key@3.1.1 MIT https://github.com/sindresorhus/path-key 193 path-scurry@1.11.1 BlueOak-1.0.0 https://github.com/isaacs/path-scurry 194 path-to-regexp@0.1.10 MIT https://github.com/pillarjs/path-to-regexp 195 pend@1.2.0 MIT https://github.com/andrewrk/node-pend 196 picomatch@2.3.1 MIT https://github.com/micromatch/picomatch 197 pify@2.3.0 MIT https://github.com/sindresorhus/pify 198 plantuml-encoder@1.4.0 MIT https://github.com/markushedvall/plantuml-encoder 199 prettier@2.8.7 MIT https://github.com/prettier/prettier 200 process-nextick-args@2.0.1 MIT https://github.com/calvinmetcalf/process-nextick-args 201 process@0.11.10 MIT https://github.com/shtylman/node-process 202 proxy-addr@2.0.7 MIT https://github.com/jshttp/proxy-addr 203 pump@3.0.0 MIT https://github.com/mafintosh/pump 204 qs@6.13.0 BSD-3-Clause https://github.com/ljharb/qs 205 queue-tick@1.0.1 MIT https://github.com/mafintosh/queue-tick 206 range-parser@1.2.1 MIT https://github.com/jshttp/range-parser 207 raw-body@2.5.2 MIT https://github.com/stream-utils/raw-body 208 readable-stream@2.3.8 MIT https://github.com/nodejs/readable-stream 209 readable-stream@4.5.2 MIT https://github.com/nodejs/readable-stream 210 readdir-enhanced@1.5.2 MIT https://github.com/bigstickcarpet/readdir-enhanced 211 readdir-glob@1.1.3 Apache-2.0 https://github.com/Yqnn/node-readdir-glob 212 readdirp@3.6.0 MIT https://github.com/paulmillr/readdirp 213 regression@2.0.1 MIT https://github.com/Tom-Alexander/regression-js 214 rimraf@2.7.1 ISC https://github.com/isaacs/rimraf 215 safe-buffer@5.1.2 MIT https://github.com/feross/safe-buffer 216 safe-buffer@5.2.1 MIT https://github.com/feross/safe-buffer 217 safer-buffer@2.1.2 MIT https://github.com/ChALkeR/safer-buffer 218 sax@1.2.4 ISC https://github.com/isaacs/sax-js 219 semver@7.5.4 ISC https://github.com/npm/node-semver 220 send@0.19.0 MIT https://github.com/pillarjs/send 221 serve-static@1.16.2 MIT https://github.com/expressjs/serve-static 222 set-function-length@1.2.2 MIT https://github.com/ljharb/set-function-length 223 setprototypeof@1.2.0 ISC https://github.com/wesleytodd/setprototypeof 224 shebang-command@2.0.0 MIT https://github.com/kevva/shebang-command 225 shebang-regex@3.0.0 MIT https://github.com/sindresorhus/shebang-regex 226 side-channel@1.0.6 MIT https://github.com/ljharb/side-channel 227 signal-exit@4.1.0 ISC https://github.com/tapjs/signal-exit 228 slash@2.0.0 MIT https://github.com/sindresorhus/slash 229 stats-lite@2.2.0 MIT https://github.com/brycebaril/node-stats-lite 230 statuses@2.0.1 MIT https://github.com/jshttp/statuses 231 streamx@2.18.0 MIT https://github.com/mafintosh/streamx 232 string-width@4.2.3 MIT https://github.com/sindresorhus/string-width 233 string-width@5.1.2 MIT https://github.com/sindresorhus/string-width 234 string_decoder@1.1.1 MIT https://github.com/nodejs/string_decoder 235 string_decoder@1.3.0 MIT https://github.com/nodejs/string_decoder 236 strip-ansi@6.0.1 MIT https://github.com/chalk/strip-ansi 237 strip-ansi@7.1.0 MIT https://github.com/chalk/strip-ansi 238 supports-color@7.2.0 MIT https://github.com/chalk/supports-color 239 sync-directory@6.0.5 ISC https://github.com/hoperyy/sync-directory 240 systeminformation@5.22.11 MIT https://github.com/sebhildebrandt/systeminformation 241 tar-stream@3.1.7 MIT https://github.com/mafintosh/tar-stream 242 text-decoder@1.1.0 Apache-2.0 https://github.com/holepunchto/text-decoder 243 tmp@0.0.33 MIT https://github.com/raszi/node-tmp 244 to-regex-range@5.0.1 MIT https://github.com/micromatch/to-regex-range 245 toidentifier@1.0.1 MIT https://github.com/component/toidentifier 246 tslib@2.5.0 0BSD https://github.com/Microsoft/tslib 247 type-is@1.6.18 MIT https://github.com/jshttp/type-is 248 unc-path-regex@0.1.2 MIT https://github.com/regexhq/unc-path-regex 249 underscore@1.13.6 MIT https://github.com/jashkenas/underscore 250 universalify@0.1.2 MIT https://github.com/RyanZim/universalify 251 universalify@2.0.0 MIT https://github.com/RyanZim/universalify 252 unpipe@1.0.0 MIT https://github.com/stream-utils/unpipe 253 util-deprecate@1.0.2 MIT https://github.com/TooTallNate/util-deprecate 254 utils-merge@1.0.1 MIT https://github.com/jaredhanson/utils-merge 255 uuid@10.0.0 MIT https://github.com/uuidjs/uuid 256 uuid@8.3.2 MIT https://github.com/uuidjs/uuid 257 vary@1.1.2 MIT https://github.com/jshttp/vary 258 which@2.0.2 ISC https://github.com/isaacs/node-which 259 wordwrap@1.0.0 MIT https://github.com/substack/node-wordwrap 260 wrap-ansi@7.0.0 MIT https://github.com/chalk/wrap-ansi 261 wrap-ansi@8.1.0 MIT https://github.com/chalk/wrap-ansi 262 wrappy@1.0.2 ISC https://github.com/npm/wrappy 263 xml2js@0.6.2 MIT https://github.com/Leonidas-from-XIV/node-xml2js 264 xmlbuilder@11.0.1 MIT https://github.com/oozcitak/xmlbuilder-js 265 yallist@4.0.0 ISC https://github.com/isaacs/yallist 266 yaml@2.3.2 ISC https://github.com/eemeli/yaml 267 yauzl@2.10.0 MIT https://github.com/thejoshwolfe/yauzl 268 zip-stream@6.0.1 MIT https://github.com/archiverjs/node-zip-stream

We fixed the following issues by patching the dependencies.

  1. dreamopt@0.8.0 is licensed under MIT, see issue #2.
  2. glob-to-regexp@0.3.0 is licensed under BSD-2-Clause, see pull request #16.
  3. We moved the optional dependency @types/yauzl of extract-zip@2.0.1 to the development dependencies.
","tags":["Vintner"]},{"location":"faq/","title":"FAQ","text":"","tags":["Misc"]},{"location":"faq/#is-vintner-an-orchestrator","title":"Is Vintner an Orchestrator?","text":"

No, Vintner is not an orchestrator. But it is possible to deploy applications using orchestrator plugins.

","tags":["Misc"]},{"location":"faq/#how-can-i-contribute","title":"How can I contribute?","text":"

Contributions are very much welcome. Please read Development and Code of Conduct.

","tags":["Misc"]},{"location":"faq/#under-which-license-is-vintner-available","title":"Under which license is Vintner available?","text":"

This project is licensed under Apache-2.0.

","tags":["Misc"]},{"location":"getting-started/","title":"Getting Started","text":"

In this example, we will deploy a textfile on our local machine which has a different content depending on our input. This is just a simple example without any dependencies, such as a Docker Engine or a cloud. For a more complex scenario including OpenStack and GCP see Motivating Scenario.

First, we install OpenTOSCA Vintner. For more information see Installation.

curl -fsSL https://vintner.opentosca.org/install.sh | sudo bash -\n

We currently support xOpera and Unfurl. Since both can only be installed on Linux, we provide a WSL integration for both. We configure and enable xOpera. For more information see Installation.

vintner orchestrators init xopera\nvintner orchestrators enable --orchestrator xopera\n

Next, we clone the repository.

git clone https://github.com/OpenTOSCA/opentosca-vintner.git\ncd opentosca-vintner\ngit lfs install\ngit lfs pull\n./task install\n./task tasks:build\n./task examples:pull:link\n

Next, we import the Variability4TOSCA template.

vintner templates import --template getting-started --path examples/xopera-getting-started\n

Next, we initialize an application instance.

vintner instances init --instance getting-started --template getting-started\n

The imported template contains the following conditional node templates.

first:\ntype: textfile\nconditions: {logic_expression: is_first}\nproperties:\ncontent: 'First Textfile has been selected!'\nrequirements:\n- host: node: localhost\nconditions: {logic_expression: is_first}\nsecond:\ntype: textfile\nconditions: {logic_expression: is_second}\nproperties:\ncontent: 'Second Textfile has been selected!'\nrequirements:\n- host: node: localhost\nconditions: {logic_expression: is_second}\n

We intend to deploy the first textfile. We specify this when resolving variability.

vintner instances resolve --instance getting-started --presets first\n

Finally, we deploy the application.

vintner instances deploy --instance getting-started\n

The deployed textfile has the content as expected.

/tmp/vintner-getting-started.txt
First Textfile has been selected!\n

Eventually, we undeploy the application.

vintner instances undeploy --instance getting-started\n
","tags":["Vintner","Guide","xOpera","Unfurl"]},{"location":"installation/","title":"Installation","text":"

This document holds instructions on installing Vintner.

","tags":["Vintner","Docker"]},{"location":"installation/#script","title":"Script","text":"

Vintner can be installed on Linux x64/ arm64 and Windows x64 using our installation scripts.

Linux x64/ arm64Windows x64
curl -fsSL https://vintner.opentosca.org/install.sh | sudo bash -\n

Install a specific version as follows.

curl -fsSL https://vintner.opentosca.org/install.sh | sudo VERSION=${VERSION} bash -\n
powershell -Command \"& {Invoke-WebRequest -Uri 'https://vintner.opentosca.org/install.ps1' -UseBasicParsing | Invoke-Expression}\"\n

Install a specific version as follows.

Invoke-WebRequest -Uri \"https://vintner.opentosca.org/install.ps1\" -OutFile install.ps1\n$env:VERSION = \"DESIRED_VERSION\"\npowershell -ExecutionPolicy Bypass -File .\\install.ps1\nRemove-Item install.ps1\n
","tags":["Vintner","Docker"]},{"location":"installation/#npm","title":"NPM","text":"

Vintner can be installed using npm. Ensure, that npm bin -g is in your $PATH.

npm install --global opentosca-vintner\n
","tags":["Vintner","Docker"]},{"location":"installation/#yarn-classic","title":"Yarn (Classic)","text":"

Vintner can be installed using yarn (classic). Ensure, that yarn global bin is in your $PATH.

yarn global add opentosca-vintner\n
","tags":["Vintner","Docker"]},{"location":"installation/#yarn-modern","title":"Yarn (Modern)","text":"

Vintner can be installed using yarn (modern). However, this will not install Vintner permanently but only temporary.

yarn dlx opentosca-vintner\n
","tags":["Vintner","Docker"]},{"location":"installation/#choco","title":"Choco","text":"

Vintner can be installed using choco.

choco install opentosca-vintner -y\n
","tags":["Vintner","Docker"]},{"location":"installation/#docker","title":"Docker","text":"

Vintner can be installed using Docker. The Image is about 3GB large and contains tools, such as xOpera, Unfurl, Ansible, Terraform, and all of our examples.

","tags":["Vintner","Docker"]},{"location":"installation/#github-container-registry","title":"GitHub Container Registry","text":"

Pull the latest image from the GitHub Container Registry.

docker pull ghcr.io/opentosca/opentosca-vintner:latest\n
","tags":["Vintner","Docker"]},{"location":"installation/#starting-the-container","title":"Starting the Container","text":"

First, we create directories for persisting data.

mkdir vintner\ncd vintner\n\nmkdir data\nmkdir shared\n

Next, we start the container.

docker run \\\n--detach \\\n--volume ${PWD}/data:/vintner/data \\\n--volume ${PWD}/shared:/vintner/shared  \\\n--network host \\\n--name vintner \\\nghcr.io/opentosca/opentosca-vintner:latest\n

The command consists of the following aspects.

  • --detach starts the container in the background.
  • --volume ${PWD}/data:/vintner/data persists all data written by Vintner.
  • --volume ${PWD}/shared:/vintner/shared should be used to share data between the host and the container, e.g., CSARs or GCP credentials.
  • --network host uses the host network, e.g., for ipv6 support.
  • --name vintner is the container name.
  • ghcr.io/opentosca/opentosca-vintner:latest pulls the latest Docker Image

Inside the container, the following directories are of interest.

  • /vintner/data holds all data written by Vintner.
  • /vintner/shared should be used to share data between the host and the container, e.g., CSARs or GCP credentials.
  • /vintner/examples holds the examples directory of the repository.
","tags":["Vintner","Docker"]},{"location":"installation/#executing-a-command","title":"Executing a Command","text":"

The container runs in the background. Vintner is executed as follows.

docker exec -it vintner vintner --version\n

On Linux, we set an alias to directly use Vintner as command in the terminal on the docker host. To persist the alias, add the alias, e.g., to ~/.bashrc (requires reloading the session).

alias vintner=\"docker exec -it vintner vintner\"\n

Now, Vintner is available as follows.

vintner --version\n
","tags":["Vintner","Docker"]},{"location":"installation/#xopera","title":"xOpera","text":"

xOpera is already installed inside the container and Vintner is already correctly configured to connect to xOpera. By default, xOpera is already enabled. Enable xOpera as follows.

docker exec -it vintner vintner orchestrators enable --orchestrator xopera\n
","tags":["Vintner","Docker"]},{"location":"installation/#unfurl","title":"Unfurl","text":"

Unfurl is already installed inside the container and Vintner is already correctly configured to connect to Unfurl. Enable Unfurl as follows.

docker exec -it vintner vintner orchestrators enable --orchestrator unfurl\n
","tags":["Vintner","Docker"]},{"location":"installation/#stopping-the-container","title":"Stopping the Container","text":"

Ensure to only stop Vintner, once Vintner is idle. Otherwise, data and deployments will be corrupted. Stop the container as follows.

docker stop vintner\n
","tags":["Vintner","Docker"]},{"location":"installation/#watching-the-logs-of-the-container","title":"Watching the Logs of the Container","text":"

Watch the logs of the container as follows.

docker logs -f vintner\n
","tags":["Vintner","Docker"]},{"location":"installation/#debugging-the-container","title":"Debugging the Container","text":"

In case we need to debug something inside the container or perform any administrative ./tasks, we can exec into the container as follows. This starts a shell inside the container.

docker exec -it vintner /bin/bash\n
","tags":["Vintner","Docker"]},{"location":"installation/#manual","title":"Manual","text":"

Install Vintner manually by downloading the binary for your system and adding it to $PATH. There are no other dependencies required. The following example shows the installation on selected platforms and architectures.

Linux x64Linux arm64Alpine x64Windows x64
wget https://github.com/opentosca/opentosca-vintner/releases/download/latest/vintner-linux-x64.xz\ntar -xf vintner-linux-x64.xz\nrm vintner-linux-x64.xz\nmv vintner-linux-x64 /usr/bin/vintner\nchmod +x /usr/bin/vintner\nvintner setup init\n
wget https://github.com/opentosca/opentosca-vintner/releases/download/latest/vintner-linux-arm64.xz\ntar -xf vintner-linux-arm64.xz\nrm vintner-linux-arm64.xz\nmv vintner-linux-arm64 /usr/bin/vintner\nchmod +x /usr/bin/vintner\nvintner setup init\n
wget https://github.com/opentosca/opentosca-vintner/releases/download/latest/vintner-alpine-x64.xz\ntar -xf vintner-alpine-x64.xz\nrm vintner-alpine-x64.xz\nmv vintner-alpine-x64 /usr/bin/vintner\nchmod +x /usr/bin/vintner\nvintner setup init\n

First, create the directory $env:USERPROFILE\\bin and add it to your PATH. We recommend to do this manually.

$userBin = \"$env:USERPROFILE\\bin\"\nif (-not (Test-Path -Path $userBin)) {\nNew-Item -ItemType Directory -Force -Path \"$env:USERPROFILE\\bin\"\n$userPath = [System.Environment]::GetEnvironmentVariable(\"PATH\", [System.EnvironmentVariableTarget]::User)\n$newPath = \"$userPath$userBin;\"\n[System.Environment]::SetEnvironmentVariable(\"PATH\", $newPath, [System.EnvironmentVariableTarget]::User)\n}\n

Next, install vintner.

$userBin = \"$env:USERPROFILE\\bin\"\nInvoke-WebRequest -URI https://github.com/opentosca/opentosca-vintner/releases/download/latest/vintner-win-x64.exe.xz -OutFile vintner-win-x64.exe.xz\ntar -xf vintner-win-x64.exe.xz\nRemove-Item vintner-win-x64.exe.xz\nMove-Item vintner-win-x64.exe $userBin\\vintner.exe\nvintner setup init\n

The following binaries are available:

Platform Architecture Binary Archive Signature Checksum Alpine x64 link link link link Linux arm64 link link link link Linux x64 link link link link Windows x64 link link link link","tags":["Vintner","Docker"]},{"location":"installation/#checksum","title":"Checksum","text":"

To verify the integrity of a binary, proceed as follows. The following is a walkthrough for vintner-linux-x64. We assume that vintner-linux-x64 is present in the current working directory.

wget https://github.com/opentosca/opentosca-vintner/releases/download/latest/vintner-linux-x64.sha256\nsha256sum --check vintner-linux-x64.sha256\n
","tags":["Vintner","Docker"]},{"location":"installation/#signature","title":"Signature","text":"

Every binary is cryptographically signed.

","tags":["Vintner","Docker"]},{"location":"installation/#verification","title":"Verification","text":"

To verify a signature of a binary, first import our public key and download the respective signature. The following is a walkthrough for vintner-linux-x64 using gpg. We assume that vintner-linux-x64 is present in the current working directory.

First, we import the public key.

curl https://vintner.opentosca.org/vintner-release.gpg | gpg --import\n

Next, we download the signature.

wget https://github.com/opentosca/opentosca-vintner/releases/download/latest/vintner-linux-x64.asc\n

Next, we verify the signature.

gpg --verify vintner-linux-x64.asc\n

The output should be something as follows.

gpg: assuming signed data in 'vintner-linux-x64'\ngpg: Signature made Sun Oct 23 19:12:56 2022 UTC\ngpg:                using RSA key 4BB862B810B792CC072D59DB964183A1485881AD\ngpg: Good signature from \"vintner-release\" [unknown]\ngpg: WARNING: This key is not certified with a trusted signature!\ngpg:          There is no indication that the signature belongs to the owner.\nPrimary key fingerprint: 4BB8 62B8 10B7 92CC 072D  59DB 9641 83A1 4858 81AD\n
","tags":["Vintner","Docker"]},{"location":"installation/#public-key","title":"Public Key","text":"

The following public key shall be used for verifying signatures. The public key is also available as download.

pub   rsa4096/964183A1485881AD 2022-10-23 [SC]\n4BB862B810B792CC072D59DB964183A1485881AD\nuid                 [unknown] vintner-release\nsub   rsa4096/B230BD6651AA1BB8 2022-10-23 [E]\n
-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGNVcowBEAC0jzKuuLE6AqCaRvjp1mwCC76Px6wG4jgvrXfraCaOf3Y3uywW\nlD3NNfqb/rc/FYQXH9lIU9n6zIB47mK0zoeHWWqPjRp6BTTbbMjePinHCb2K1XM5\nwLglw0OeC2T/NvfbU7FbN/QVFgQPWL16UhuoQhfraax6TFGO9iF/+yhG7AYZ+vAE\n7GkaPQAlzGrbbyffaBYzoqgalHslmxG9RvAxDBaQXrcsqJiv6Zfv8rDNdPlGk7mX\nUIbMHUuFzcep15ZQy+9PY/JLyYBUUDNhAXKLomjNPuCQHvZ/DS/XveIW+l6EYSLq\nr6B/XCFkVWUO2RugvmpEacUSLrIL39ceUh0dYnpEDU4Z8dRlAyVaswR5j90bPrgz\nNSaLF5NQrWlE8gksvK2KYog9Q4lrAdD0wQNV0bnU6YG3TM71wXZim8PokTzxPrA0\nJAigEHzN9nbHSzjB71m8cVt6Zl4lGCCYqr8jSjKAUAN01koQVZd/lFljXfI27NcG\ny7yYBc97IWaOM039kyPKKVGAB3I3l9d90+RL3tSET2MwPN3Vjlq3ArJ6QBKeB80S\nHgRroYVXx+dCJpZhMeeTC8kVjWNL1kctwOMtxWU7N4fO+pi2BW1F5QHlYWJj2fRY\nMp9LE9NYXD1UO/8N1bT2RLGPwrmXXCJF20UDc63wuKzO0IBgXBvPArkUtwARAQAB\ntA92aW50bmVyLXJlbGVhc2WJAk4EEwEIADgWIQRLuGK4ELeSzActWduWQYOhSFiB\nrQUCY1VyjAIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCWQYOhSFiBraf5\nD/4mHhD7nwLQ87bE4d6jPB9prwN86eT3bpz1wXoVwFJfArJ7I3wH/0uQe0GXGbJx\nG9TUdQHAGgN6/e99x54Dg4n4Qzap4W5baYlE3Klu6BUZOx9RKhSdtGfCk0+kUpxV\nlMNLWeXFeHepCp3CwKdH3gkwcWxaBBSsYE2ayk34+CXs3ftttRRUPmCCyxk+XiM9\nHSDO/1yIdiwO1XPFVuFZA150wdW2KYL4AuG4aB7lh1nd6jNgoz7LjwdpWN4Sa+38\n5AkQVez1n8Ru1ul4GRPbS2T+OZu6aoITe6i3JxDEAL/ljPN07ufiqFnTYKh8yUsl\npPOpoM6ytMgcPlSxDfyhWSKw4aFYEJYT6Teeniup4ElywOJsBHfQ6Tl9Ix9nVti1\n9h+xbO7mik802AVYdyXtBrZHNdaUClsJjYpL17mivuZ1JoFNAmLPo1nTr/4IVuiI\nA/LoKotLsL9OI+4rhXzsvIyvJBXHhcDp7TOjfEp8S9tLygDLnlC4lsJLzVdDamq2\n/iDnucQu3TMRoVLrZwVAtsr5GyazmAZcpBjkh88Rgf4iKWbAesG7yGgJdOJ5Bi81\nvmm25Sks+UxaXQzXcTe6ga80o5dqm1KYIkoj+assnA0LwOh1GZt7FZaSoQqXERKm\nyEjOAXNt8ZhewyJZGizYhGUslFOQA/8/kKBKcW9hxqTqLbkCDQRjVXKMARAA2MNq\nipSOqaLOzDz4EULTYknshTe34bKw4EDYVbTeHhIJKr1VWkPo8XK9o74+NgiwpI2H\nfPlO61BMm0FWRq9RUPQHNWU6qtV2KimQuvTdlwUiiX9uLeJvU6DO25350d7b9RdZ\naXUT1In9Ziya67ThsnXQqPusUyV7OEFI9xLX8EsmrZjw/7S3ACJ0ekehq0tRcPJo\nhS5bmN75V9YZVmQViW5nuUfg3iifhsn6xMSBV2oQ+vg0qFwKlTRO1a12ltJuJjCB\nFAtB3C8aI/tl//KRnkyuARmrtGtaht0oCbi+J3/1ChnTvbEXlMG65mNw/OXz+KsI\nGPn4dOvigMQMTfTcvSX6pT4H3xmadFl4pF+8gmysxZuSMhTrPhLXitu24r9DxRrY\ndAibrXOJu7J20+8ZttvRAiEUYAvUyQVtgsc0aAkbUGGBwt4NmdMb0mbN34X0bKPV\nXGc/JImn1pZd1h7zzO4nHlJPDtjb5/s4C3g9isnvFHFXmAIfV9q94e0lXmI5xsQY\nrGqcQzT8JT8S2SpvX/2ABPWyLBAxveDAKZpKNu6uasG2AeA8GpNqOGJq4S7IkaUx\n1xNaQzkJvemKWefslExVAhV1uv2cOxCIq8wTxsozRxs+5WzWxIfT/ob60edKgMkn\nz8NfPbCZw5PkHf/e0pbkbGJI8F2VerjubSSNDEMAEQEAAYkCNgQYAQgAIBYhBEu4\nYrgQt5LMBy1Z25ZBg6FIWIGtBQJjVXKMAhsMAAoJEJZBg6FIWIGtx80QAIOGvqB5\nX+E6VvblU5HHbj8mSZOqWKWgDpnKlehEjEx5UxFgJckmywhYy6UpxjLVGUvIaDLj\nXTmekqV32PUzaLEA5Z/n7nnNBXhVkAPReXqOrpMru+G6q5EgEBtAqVBx34J1Wq/f\nFBWVq4qoPVQrIuvJRtpQJTl7EDWfFZNDrbWCyNjWCQFOU0RzbpGN8Psr2yQZGBpa\n/BkobV3ffJnNvWd2qqP0eOsmOZUrERO3wlbb4Gfi7IvbBaqrwcXw9PwgQ0mWGXoH\nIGvcc3XgEoN4j/RCrkz8LufgkmDjjcomfwXMC/g7NWChCxlGAmZPqZnU5hCLLHpL\nnIyEZJEhpWXk2VGwgiSl+LhfSk1jWGStVL92bgW/YGu7+rjWA6+2hu9PZ0bneAWb\nB/ho86sE5y9eeSUM87aN0E5rWCmzx8ijTKOcukdpk+yJS1L1d/CxAv5twSrA23ne\naTBoNMm9JmUxJU8ILWY9DRBWV1FLsoBy3v3+ztQWz6i3bPZKNVgPdQD2XyXMZQfu\nZWvvd6zqXqPPX38sveW+jMyw4jUORWYkjF1MOP/YtmmuVbdcvJNTrwLlN+KWzSzd\ne83fmHrZs0iN43SQBPNtz3hYWnwpQLZCSgLa0UKzaVWLkhHA/QBFOPMQUNwdfaHq\nq2BZ9kJ+ruFawgv9hjTz2vYO/EGXwZuqcvHB\n=MPBe\n-----END PGP PUBLIC KEY BLOCK-----\n
","tags":["Vintner","Docker"]},{"location":"interface/","title":"Interface","text":"

This document holds the interface specification.

","tags":["Vintner"]},{"location":"interface/#vintner-assets-clean","title":"vintner assets clean","text":"

cleans all assets

CLIcURLJavaScriptPythonKotlin
vintner assets clean 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/assets/clean\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/assets/clean\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/assets/clean\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/assets/clean\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-assets-content","title":"vintner assets content","text":"

shows content of an asset

CLIcURLJavaScriptPythonKotlin
vintner assets content --name ${NAME}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"name\": \"${NAME}\"}' \\\n${SERVER_ADDRESS}/assets/content\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/assets/content\", {\nname: NAME\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/assets/content\", json={\n\"name\": NAME\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/assets/content\", json=mapOf(\n\"name\" to NAME\n))\n
Option Mandatory Type Description name true string name","tags":["Vintner"]},{"location":"interface/#vintner-assets-delete","title":"vintner assets delete","text":"

deletes an asset

CLIcURLJavaScriptPythonKotlin
vintner assets delete --name ${NAME}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"name\": \"${NAME}\"}' \\\n${SERVER_ADDRESS}/assets/delete\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/assets/delete\", {\nname: NAME\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/assets/delete\", json={\n\"name\": NAME\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/assets/delete\", json=mapOf(\n\"name\" to NAME\n))\n
Option Mandatory Type Description name true string name","tags":["Vintner"]},{"location":"interface/#vintner-assets-import","title":"vintner assets import","text":"

imports an asset

CLIcURLJavaScriptPythonKotlin
vintner assets import --name ${NAME} --file ${FILE} --content ${CONTENT}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"name\": \"${NAME}\", \"file\": \"${FILE}\", \"content\": \"${CONTENT}\"}' \\\n${SERVER_ADDRESS}/assets/import\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/assets/import\", {\nname: NAME,\nfile: FILE,\ncontent: CONTENT\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/assets/import\", json={\n\"name\": NAME,\n\"file\": FILE,\n\"content\": CONTENT\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/assets/import\", json=mapOf(\n\"name\" to NAME,\n\"file\" to FILE,\n\"content\" to CONTENT\n))\n
Option Mandatory Type Description name true string name (must match /^[a-z-]+$/) file true string path to a file content true string content to import","tags":["Vintner"]},{"location":"interface/#vintner-assets-list","title":"vintner assets list","text":"

lists all assets

CLIcURLJavaScriptPythonKotlin
vintner assets list 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/assets/list\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/assets/list\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/assets/list\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/assets/list\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-info-about","title":"vintner info about","text":"

general information

CLIcURLJavaScriptPythonKotlin
vintner info about 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/info/about\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/info/about\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/info/about\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/info/about\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-info-author","title":"vintner info author","text":"

open author

CLIcURLJavaScriptPythonKotlin
vintner info author 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/info/author\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/info/author\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/info/author\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/info/author\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-info-contact","title":"vintner info contact","text":"

contact us

CLIcURLJavaScriptPythonKotlin
vintner info contact 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/info/contact\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/info/contact\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/info/contact\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/info/contact\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-info-dependencies","title":"vintner info dependencies","text":"

dependencies used to implement vintner

CLIcURLJavaScriptPythonKotlin
vintner info dependencies 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/info/dependencies\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/info/dependencies\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/info/dependencies\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/info/dependencies\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-info-docs","title":"vintner info docs","text":"

open documentation

CLIcURLJavaScriptPythonKotlin
vintner info docs 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/info/docs\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/info/docs\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/info/docs\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/info/docs\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-info-license","title":"vintner info license","text":"

license of vintner

CLIcURLJavaScriptPythonKotlin
vintner info license 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/info/license\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/info/license\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/info/license\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/info/license\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-info-repo","title":"vintner info repo","text":"

open repository

CLIcURLJavaScriptPythonKotlin
vintner info repo 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/info/repo\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/info/repo\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/info/repo\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/info/repo\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-install-ansible","title":"vintner install ansible","text":"

installs Ansible

CLIcURLJavaScriptPythonKotlin
vintner install ansible 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/install/ansible\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/install/ansible\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/install/ansible\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/install/ansible\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-install-docker","title":"vintner install docker","text":"

installs Docker

CLIcURLJavaScriptPythonKotlin
vintner install docker 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/install/docker\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/install/docker\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/install/docker\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/install/docker\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-install-gcloud","title":"vintner install gcloud","text":"

installs GCloud

CLIcURLJavaScriptPythonKotlin
vintner install gcloud 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/install/gcloud\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/install/gcloud\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/install/gcloud\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/install/gcloud\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-install-platformio","title":"vintner install platformio","text":"

installs PlatformIO Core CLI

CLIcURLJavaScriptPythonKotlin
vintner install platformio 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/install/platformio\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/install/platformio\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/install/platformio\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/install/platformio\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-install-python","title":"vintner install python","text":"

installs Python

CLIcURLJavaScriptPythonKotlin
vintner install python 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/install/python\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/install/python\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/install/python\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/install/python\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-install-terraform","title":"vintner install terraform","text":"

installs Terraform

CLIcURLJavaScriptPythonKotlin
vintner install terraform 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/install/terraform\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/install/terraform\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/install/terraform\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/install/terraform\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-install-unfurl","title":"vintner install unfurl","text":"

installs Unfurl in a venv in \"~/unfurl\"

CLIcURLJavaScriptPythonKotlin
vintner install unfurl 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/install/unfurl\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/install/unfurl\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/install/unfurl\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/install/unfurl\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-install-utils","title":"vintner install utils","text":"

installs utils, such as sudo, unzip, git ...

CLIcURLJavaScriptPythonKotlin
vintner install utils 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/install/utils\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/install/utils\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/install/utils\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/install/utils\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-install-xopera","title":"vintner install xopera","text":"

installs xOpera in a venv in \"~/opera\"

CLIcURLJavaScriptPythonKotlin
vintner install xopera 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/install/xopera\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/install/xopera\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/install/xopera\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/install/xopera\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-instances-adapt","title":"vintner instances adapt","text":"

submit sensor data used for adapting the instance

cURLJavaScriptPythonKotlin
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\", \"inputs\": \"${INPUTS}\"}' \\\n${SERVER_ADDRESS}/instances/adapt\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/adapt\", {\ninstance: INSTANCE,\ninputs: INPUTS\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/adapt\", json={\n\"instance\": INSTANCE,\n\"inputs\": INPUTS\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/adapt\", json=mapOf(\n\"instance\" to INSTANCE,\n\"inputs\" to INPUTS\n))\n
Option Mandatory Type Description instance true string instance name inputs true InputAssignmentMap sensor data","tags":["Vintner"]},{"location":"interface/#vintner-instances-clean","title":"vintner instances clean","text":"

deletes all instances

CLIcURLJavaScriptPythonKotlin
vintner instances clean 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/instances/clean\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/clean\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/clean\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/clean\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-instances-code","title":"vintner instances code","text":"

opens the instance directory in visual studio code

CLI
vintner instances code --instance ${INSTANCE}\n
Option Mandatory Type Description instance true string instance name","tags":["Vintner"]},{"location":"interface/#vintner-instances-continue","title":"vintner instances continue","text":"

continue instance (deployment)

CLIcURLJavaScriptPythonKotlin
vintner instances continue --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/continue\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/continue\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/continue\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/continue\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name verbose false boolean verbose no-verbose false boolean force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-debug","title":"vintner instances debug","text":"

debug utility that passes a command into the orchestrator in scope of the instance

CLIcURLJavaScriptPythonKotlin
vintner instances debug --instance ${INSTANCE} --command ${COMMAND}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\", \"command\": \"${COMMAND}\"}' \\\n${SERVER_ADDRESS}/instances/debug\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/debug\", {\ninstance: INSTANCE,\ncommand: COMMAND\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/debug\", json={\n\"instance\": INSTANCE,\n\"command\": COMMAND\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/debug\", json=mapOf(\n\"instance\" to INSTANCE,\n\"command\" to COMMAND\n))\n
Option Mandatory Type Description instance true string instance name command true string command force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-delete","title":"vintner instances delete","text":"

deletes instance

CLIcURLJavaScriptPythonKotlin
vintner instances delete --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/delete\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/delete\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/delete\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/delete\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-deploy","title":"vintner instances deploy","text":"

deploys instance

CLIcURLJavaScriptPythonKotlin
vintner instances deploy --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/deploy\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/deploy\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/deploy\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/deploy\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name inputs false string path to the deployment inputs (env: OPENTOSCA_VINTNER_DEPLOYMENT_INPUT_${KEY}) retries false boolean number of retries (default: \"1\") verbose false boolean verbose no-verbose false boolean force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-info","title":"vintner instances info","text":"

display instance info

CLIcURLJavaScriptPythonKotlin
vintner instances info --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/info\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/info\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/info\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/info\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-init","title":"vintner instances init","text":"

initializes a new instance

CLIcURLJavaScriptPythonKotlin
vintner instances init --instance ${INSTANCE} --template ${TEMPLATE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\", \"template\": \"${TEMPLATE}\"}' \\\n${SERVER_ADDRESS}/instances/init\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/init\", {\ninstance: INSTANCE,\ntemplate: TEMPLATE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/init\", json={\n\"instance\": INSTANCE,\n\"template\": TEMPLATE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/init\", json=mapOf(\n\"instance\" to INSTANCE,\n\"template\" to TEMPLATE\n))\n
Option Mandatory Type Description instance true string instance name (must match /^[a-z-]+$/) template true string template name force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-inspect","title":"vintner instances inspect","text":"

inspects variability-resolved service template

CLIcURLJavaScriptPythonKotlin
vintner instances inspect --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/inspect\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/inspect\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/inspect\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/inspect\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-list","title":"vintner instances list","text":"

lists all instances

CLIcURLJavaScriptPythonKotlin
vintner instances list 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/instances/list\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/list\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/list\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/list\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-instances-open","title":"vintner instances open","text":"

opens template directory in a file browser

CLI
vintner instances open --instance ${INSTANCE}\n
Option Mandatory Type Description instance true string instance name","tags":["Vintner"]},{"location":"interface/#vintner-instances-outputs","title":"vintner instances outputs","text":"

returns instance outputs

CLIcURLJavaScriptPythonKotlin
vintner instances outputs --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/outputs\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/outputs\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/outputs\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/outputs\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name verbose false boolean verbose no-verbose false boolean force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-path","title":"vintner instances path","text":"

returns the path to the instance directory

CLIcURLJavaScriptPythonKotlin
vintner instances path --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/path\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/path\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/path\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/path\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name","tags":["Vintner"]},{"location":"interface/#vintner-instances-resolve","title":"vintner instances resolve","text":"

resolves variability

CLIcURLJavaScriptPythonKotlin
vintner instances resolve --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/resolve\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/resolve\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/resolve\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/resolve\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name presets false string... names of variability presets(env: OPENTOSCA_VINTNER_VARIABILITY_PRESETS) (default: []) inputs false string path to the variability inputs (supported: [YAML, FeatureIDE ExtendedXML], env: OPENTOSCA_VINTNER_VARIABILITY_INPUT_${KEY}) force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-state","title":"vintner instances state","text":"

set the state of the instance

CLIcURLJavaScriptPythonKotlin
vintner instances state --instance ${INSTANCE} --state ${STATE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\", \"state\": \"${STATE}\"}' \\\n${SERVER_ADDRESS}/instances/state\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/state\", {\ninstance: INSTANCE,\nstate: STATE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/state\", json={\n\"instance\": INSTANCE,\n\"state\": STATE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/state\", json=mapOf(\n\"instance\" to INSTANCE,\n\"state\" to STATE\n))\n
Option Mandatory Type Description instance true string instance name state true string state force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-swap","title":"vintner instances swap","text":"

swap instance template

CLIcURLJavaScriptPythonKotlin
vintner instances swap --instance ${INSTANCE} --template ${TEMPLATE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\", \"template\": \"${TEMPLATE}\"}' \\\n${SERVER_ADDRESS}/instances/swap\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/swap\", {\ninstance: INSTANCE,\ntemplate: TEMPLATE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/swap\", json={\n\"instance\": INSTANCE,\n\"template\": TEMPLATE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/swap\", json=mapOf(\n\"instance\" to INSTANCE,\n\"template\" to TEMPLATE\n))\n
Option Mandatory Type Description instance true string instance name template true string template name force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-unadapt","title":"vintner instances unadapt","text":"

stop adaptation loop of instance

cURLJavaScriptPythonKotlin
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/unadapt\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/unadapt\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/unadapt\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/unadapt\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name","tags":["Vintner"]},{"location":"interface/#vintner-instances-undeploy","title":"vintner instances undeploy","text":"

undeploys instance

CLIcURLJavaScriptPythonKotlin
vintner instances undeploy --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/undeploy\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/undeploy\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/undeploy\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/undeploy\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name verbose false boolean verbose no-verbose false boolean force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-update","title":"vintner instances update","text":"

update instance

CLIcURLJavaScriptPythonKotlin
vintner instances update --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/update\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/update\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/update\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/update\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name inputs false string path to the deployment inputs (env: OPENTOSCA_VINTNER_DEPLOYMENT_INPUT_${KEY}) verbose false boolean verbose no-verbose false boolean force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-instances-validate","title":"vintner instances validate","text":"

validates variability-resolved service template

CLIcURLJavaScriptPythonKotlin
vintner instances validate --instance ${INSTANCE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"instance\": \"${INSTANCE}\"}' \\\n${SERVER_ADDRESS}/instances/validate\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/instances/validate\", {\ninstance: INSTANCE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/instances/validate\", json={\n\"instance\": INSTANCE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/instances/validate\", json=mapOf(\n\"instance\" to INSTANCE\n))\n
Option Mandatory Type Description instance true string instance name inputs false string path to the deployment inputs verbose false boolean verbose no-verbose false boolean dry false boolean dry run no-dry false boolean force false boolean force (default: false) no-force false boolean lock false boolean enable instance locking (default: true) no-lock false boolean machine false boolean enable state machine (default: true) no-machine false boolean","tags":["Vintner"]},{"location":"interface/#vintner-orchestrators-attest","title":"vintner orchestrators attest","text":"

attests an orchestrator plugin

CLIcURLJavaScriptPythonKotlin
vintner orchestrators attest --orchestrator ${ORCHESTRATOR}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"orchestrator\": \"${ORCHESTRATOR}\"}' \\\n${SERVER_ADDRESS}/orchestrators/attest\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/orchestrators/attest\", {\norchestrator: ORCHESTRATOR\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/orchestrators/attest\", json={\n\"orchestrator\": ORCHESTRATOR\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/orchestrators/attest\", json=mapOf(\n\"orchestrator\" to ORCHESTRATOR\n))\n
Option Mandatory Type Description orchestrator true string orchestrator","tags":["Vintner"]},{"location":"interface/#vintner-orchestrators-enable","title":"vintner orchestrators enable","text":"

enables an orchestrator plugin

CLIcURLJavaScriptPythonKotlin
vintner orchestrators enable --orchestrator ${ORCHESTRATOR}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"orchestrator\": \"${ORCHESTRATOR}\"}' \\\n${SERVER_ADDRESS}/orchestrators/enable\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/orchestrators/enable\", {\norchestrator: ORCHESTRATOR\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/orchestrators/enable\", json={\n\"orchestrator\": ORCHESTRATOR\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/orchestrators/enable\", json=mapOf(\n\"orchestrator\" to ORCHESTRATOR\n))\n
Option Mandatory Type Description orchestrator true string orchestrator","tags":["Vintner"]},{"location":"interface/#vintner-orchestrators-init-unfurl","title":"vintner orchestrators init unfurl","text":"

initializes unfurl plugin

CLIcURLJavaScriptPythonKotlin
vintner orchestrators init unfurl 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/orchestrators/init/unfurl\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/orchestrators/init/unfurl\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/orchestrators/init/unfurl\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/orchestrators/init/unfurl\")\n
Option Mandatory Type Description venv false boolean enable the use of a virtual environment (default: true) no-venv false boolean disable the use of a virtual environment dir false string directory of unfurl (default: \"~/unfurl\")","tags":["Vintner"]},{"location":"interface/#vintner-orchestrators-init-unfurl-wsl","title":"vintner orchestrators init unfurl-wsl","text":"

initializes unfurl-wsl plugin

CLIcURLJavaScriptPythonKotlin
vintner orchestrators init unfurl-wsl 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/orchestrators/init/unfurl-wsl\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/orchestrators/init/unfurl-wsl\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/orchestrators/init/unfurl-wsl\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/orchestrators/init/unfurl-wsl\")\n
Option Mandatory Type Description venv false boolean enable the use of a virtual environment (default: true) no-venv false boolean disable the use of a virtual environment dir false string directory of unfurl (default: \"~/unfurl\")","tags":["Vintner"]},{"location":"interface/#vintner-orchestrators-init-xopera","title":"vintner orchestrators init xopera","text":"

initializes xopera plugin

CLIcURLJavaScriptPythonKotlin
vintner orchestrators init xopera 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/orchestrators/init/xopera\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/orchestrators/init/xopera\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/orchestrators/init/xopera\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/orchestrators/init/xopera\")\n
Option Mandatory Type Description venv false boolean enable the use of a virtual environment (default: true) no-venv false boolean disable the use of a virtual environment dir false string directory of xopera (default: \"~/opera\")","tags":["Vintner"]},{"location":"interface/#vintner-orchestrators-init-xopera-wsl","title":"vintner orchestrators init xopera-wsl","text":"

initializes xopera-wsl plugin

CLIcURLJavaScriptPythonKotlin
vintner orchestrators init xopera-wsl 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/orchestrators/init/xopera-wsl\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/orchestrators/init/xopera-wsl\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/orchestrators/init/xopera-wsl\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/orchestrators/init/xopera-wsl\")\n
Option Mandatory Type Description venv false boolean enable the use of a virtual environment (default: true) no-venv false boolean enable the use of a virtual environment dir false string directory of opera (default: \"~/opera\")","tags":["Vintner"]},{"location":"interface/#vintner-query","title":"vintner query","text":"

runs a query and returns the result

CLIcURLJavaScriptPythonKotlin
vintner query --query ${QUERY}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"query\": \"${QUERY}\"}' \\\n${SERVER_ADDRESS}/query\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/query\", {\nquery: QUERY\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/query\", json={\n\"query\": QUERY\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/query\", json=mapOf(\n\"query\" to QUERY\n))\n
Option Mandatory Type Description query true string path to query or query string source false string specifies where to search for template to query (default: \"vintner\") output false string path of the output format false string output format (choices: [\"yaml\",\"json\"], default: \"yaml\")","tags":["Vintner"]},{"location":"interface/#vintner-sensors-compute","title":"vintner sensors compute","text":"

starts a sensor for compute utilization, such as cpu and memory

CLI
vintner sensors compute --instance ${INSTANCE} --template ${TEMPLATE}\n
Option Mandatory Type Description instance true string monitored instance template true string node template name vintner false string vintner address to submit sensors data (default: \"http://127.0.0.1:3000\") time-interval false string interval to submit data (default: \"every 10 seconds\") submission false boolean send data (default: true) no-submission false boolean","tags":["Vintner"]},{"location":"interface/#vintner-sensors-file","title":"vintner sensors file","text":"

starts a sensor for data stored in a file

CLI
vintner sensors file --instance ${INSTANCE} --file ${FILE}\n
Option Mandatory Type Description instance true string monitored instance file true string path to file vintner false string vintner address to submit sensors data (default: \"http://127.0.0.1:3000\") time-interval false string interval to submit data (default: \"every 10 seconds\") watch false boolean watch file and send changes (default: true) no-watch false boolean submission false boolean send data (default: true) no-submission false boolean","tags":["Vintner"]},{"location":"interface/#vintner-sensors-location","title":"vintner sensors location","text":"

starts a sensor for the current location

CLI
vintner sensors location --instance ${INSTANCE} --template ${TEMPLATE}\n
Option Mandatory Type Description instance true string monitored instance template true string node template name vintner false string vintner address to submit sensors data (default: \"http://127.0.0.1:3000\") time-interval false string interval to submit data (default: \"every minute\") submission false boolean send data (default: true) no-submission false boolean","tags":["Vintner"]},{"location":"interface/#vintner-sensors-weekday","title":"vintner sensors weekday","text":"

starts a sensor for the weekday

CLI
vintner sensors weekday --instance ${INSTANCE}\n
Option Mandatory Type Description instance true string monitored instance vintner false string vintner address to submit sensors data (default: \"http://127.0.0.1:3000\") time-interval false string interval to submit data (default: \"every day\") start false string set day to start from submission false boolean send data (default: true) no-submission false boolean","tags":["Vintner"]},{"location":"interface/#vintner-server-start","title":"vintner server start","text":"

starts the server

CLI
vintner server start 
Option Mandatory Type Description host false string host on which to listen (default: \"127.0.0.1\") port false number port on which to listen (default: \"3000\")","tags":["Vintner"]},{"location":"interface/#vintner-setup-benchmark","title":"vintner setup benchmark","text":"

benchmarks the variability resolver

CLIcURLJavaScriptPythonKotlin
vintner setup benchmark 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/setup/benchmark\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/setup/benchmark\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/setup/benchmark\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/setup/benchmark\")\n
Option Mandatory Type Description io false boolean enable read and writes to the filesystem no-io false boolean disable read and writes to the filesystem seeds false numbers... seed for generating service templates (default: [10,250,500,1000,2500,5000,10000]) runs false number number of measurements for each test (default: 10) latex false boolean plot results as latex (default: false) markdown false boolean plot results as markdown (default: false)","tags":["Vintner"]},{"location":"interface/#vintner-setup-clean","title":"vintner setup clean","text":"

cleans up the filesystem

CLIcURLJavaScriptPythonKotlin
vintner setup clean 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/setup/clean\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/setup/clean\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/setup/clean\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/setup/clean\")\n
Option Mandatory Type Description force false boolean force clean up no-force false boolean","tags":["Vintner"]},{"location":"interface/#vintner-setup-code","title":"vintner setup code","text":"

opens the home directory in visual studio code

CLI
vintner setup code 
","tags":["Vintner"]},{"location":"interface/#vintner-setup-init","title":"vintner setup init","text":"

initialises the filesystem

CLIcURLJavaScriptPythonKotlin
vintner setup init 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/setup/init\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/setup/init\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/setup/init\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/setup/init\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-setup-open","title":"vintner setup open","text":"

opens the home directory

CLI
vintner setup open 
","tags":["Vintner"]},{"location":"interface/#vintner-setup-path","title":"vintner setup path","text":"

returns the path to the home directory

CLIcURLJavaScriptPythonKotlin
vintner setup path 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/setup/path\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/setup/path\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/setup/path\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/setup/path\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-setup-reset","title":"vintner setup reset","text":"

resets the filesystem

CLIcURLJavaScriptPythonKotlin
vintner setup reset 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/setup/reset\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/setup/reset\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/setup/reset\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/setup/reset\")\n
Option Mandatory Type Description force false boolean force clean up no-force false boolean","tags":["Vintner"]},{"location":"interface/#vintner-study-technology","title":"vintner study technology","text":"

conduct technology case study

CLIcURLJavaScriptPythonKotlin
vintner study technology --application ${APPLICATION} --experimental ${EXPERIMENTAL}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"application\": \"${APPLICATION}\", \"experimental\": \"${EXPERIMENTAL}\"}' \\\n${SERVER_ADDRESS}/study/technology\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/study/technology\", {\napplication: APPLICATION,\nexperimental: EXPERIMENTAL\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/study/technology\", json={\n\"application\": APPLICATION,\n\"experimental\": EXPERIMENTAL\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/study/technology\", json=mapOf(\n\"application\" to APPLICATION,\n\"experimental\" to EXPERIMENTAL\n))\n
Option Mandatory Type Description application true string application name, e.g., boutique or shop experimental true enable experimental feature","tags":["Vintner"]},{"location":"interface/#vintner-template-enrich","title":"vintner template enrich","text":"

enrich conditions

CLIcURLJavaScriptPythonKotlin
vintner template enrich --template ${TEMPLATE} --output ${OUTPUT}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"output\": \"${OUTPUT}\"}' \\\n${SERVER_ADDRESS}/template/enrich\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/enrich\", {\ntemplate: TEMPLATE,\noutput: OUTPUT\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/enrich\", json={\n\"template\": TEMPLATE,\n\"output\": OUTPUT\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/enrich\", json=mapOf(\n\"template\" to TEMPLATE,\n\"output\" to OUTPUT\n))\n
Option Mandatory Type Description template true string path to variable service template output true string path of the output","tags":["Vintner"]},{"location":"interface/#vintner-template-implement","title":"vintner template implement","text":"

implement node types

CLIcURLJavaScriptPythonKotlin
vintner template implement --dir ${DIR}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"dir\": \"${DIR}\"}' \\\n${SERVER_ADDRESS}/template/implement\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/implement\", {\ndir: DIR\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/implement\", json={\n\"dir\": DIR\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/implement\", json=mapOf(\n\"dir\" to DIR\n))\n
Option Mandatory Type Description dir true string path to service template directory orchestrator false string the orchestrator for which node type should be implemented (default: \"unfurl\")","tags":["Vintner"]},{"location":"interface/#vintner-template-init","title":"vintner template init","text":"

initializes a CSAR

CLIcURLJavaScriptPythonKotlin
vintner template init --path ${PATH} --template ${TEMPLATE} --vintner ${VINTNER}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"path\": \"${PATH}\", \"template\": \"${TEMPLATE}\", \"vintner\": \"${VINTNER}\"}' \\\n${SERVER_ADDRESS}/template/init\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/init\", {\npath: PATH,\ntemplate: TEMPLATE,\nvintner: VINTNER\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/init\", json={\n\"path\": PATH,\n\"template\": TEMPLATE,\n\"vintner\": VINTNER\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/init\", json=mapOf(\n\"path\" to PATH,\n\"template\" to TEMPLATE,\n\"vintner\" to VINTNER\n))\n
Option Mandatory Type Description path true string path of the directory template true string template name (default: directory name of --path) vintner true string vintner binary to execute (default: \"task cli --\") force false boolean force initialization, e.g., on non-empty directories no-force false boolean","tags":["Vintner"]},{"location":"interface/#vintner-template-inputs","title":"vintner template inputs","text":"

read and transforms inputs

CLIcURLJavaScriptPythonKotlin
vintner template inputs --path ${PATH} --output ${OUTPUT}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"path\": \"${PATH}\", \"output\": \"${OUTPUT}\"}' \\\n${SERVER_ADDRESS}/template/inputs\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/inputs\", {\npath: PATH,\noutput: OUTPUT\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/inputs\", json={\n\"path\": PATH,\n\"output\": OUTPUT\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/inputs\", json=mapOf(\n\"path\" to PATH,\n\"output\" to OUTPUT\n))\n
Option Mandatory Type Description path true string path to the variability inputs (supported: [YAML, FeatureIDE ExtendedXML]) output true string path of the output","tags":["Vintner"]},{"location":"interface/#vintner-template-normalize","title":"vintner template normalize","text":"

normalize service template

CLIcURLJavaScriptPythonKotlin
vintner template normalize --template ${TEMPLATE} --output ${OUTPUT}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"output\": \"${OUTPUT}\"}' \\\n${SERVER_ADDRESS}/template/normalize\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/normalize\", {\ntemplate: TEMPLATE,\noutput: OUTPUT\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/normalize\", json={\n\"template\": TEMPLATE,\n\"output\": OUTPUT\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/normalize\", json=mapOf(\n\"template\" to TEMPLATE,\n\"output\" to OUTPUT\n))\n
Option Mandatory Type Description template true string path to variable service template output true string path of the output","tags":["Vintner"]},{"location":"interface/#vintner-template-package","title":"vintner template package","text":"

packages a directory to a CSAR

CLIcURLJavaScriptPythonKotlin
vintner template package --template ${TEMPLATE} --output ${OUTPUT}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"output\": \"${OUTPUT}\"}' \\\n${SERVER_ADDRESS}/template/package\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/package\", {\ntemplate: TEMPLATE,\noutput: OUTPUT\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/package\", json={\n\"template\": TEMPLATE,\n\"output\": OUTPUT\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/package\", json=mapOf(\n\"template\" to TEMPLATE,\n\"output\" to OUTPUT\n))\n
Option Mandatory Type Description template true string path to variable service template output true string path of the output","tags":["Vintner"]},{"location":"interface/#vintner-template-pull","title":"vintner template pull","text":"

pull template dependencies

CLIcURLJavaScriptPythonKotlin
vintner template pull --dir ${DIR}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"dir\": \"${DIR}\"}' \\\n${SERVER_ADDRESS}/template/pull\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/pull\", {\ndir: DIR\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/pull\", json={\n\"dir\": DIR\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/pull\", json=mapOf(\n\"dir\" to DIR\n))\n
Option Mandatory Type Description dir true string path to service template directory link false boolean create symbolic links instead of copying files (default: false) no-link false boolean","tags":["Vintner"]},{"location":"interface/#vintner-template-puml-topology","title":"vintner template puml topology","text":"

plot topology as PlantUML

CLIcURLJavaScriptPythonKotlin
vintner template puml topology --path ${PATH}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"path\": \"${PATH}\"}' \\\n${SERVER_ADDRESS}/template/puml/topology\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/puml/topology\", {\npath: PATH\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/puml/topology\", json={\n\"path\": PATH\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/puml/topology\", json=mapOf(\n\"path\" to PATH\n))\n
Option Mandatory Type Description path true string path to service template output false string path of the output format false string output format (choices: [\"puml\",\"svg\"], default: \"puml\")","tags":["Vintner"]},{"location":"interface/#vintner-template-puml-types","title":"vintner template puml types","text":"

plot types as PlantUML (each entity types is plotted separately)

CLIcURLJavaScriptPythonKotlin
vintner template puml types --path ${PATH}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"path\": \"${PATH}\"}' \\\n${SERVER_ADDRESS}/template/puml/types\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/puml/types\", {\npath: PATH\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/puml/types\", json={\n\"path\": PATH\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/puml/types\", json=mapOf(\n\"path\" to PATH\n))\n
Option Mandatory Type Description path true string path to service template output false string path of the output directory (default: the directory of the service template) types false string... entity types to consider, e.g., \"node_types\" (default: Every defined entity type) format false string output format (choices: [\"puml\",\"svg\"], default: \"puml\")","tags":["Vintner"]},{"location":"interface/#vintner-template-quality","title":"vintner template quality","text":"

get quality of template

CLIcURLJavaScriptPythonKotlin
vintner template quality --template ${TEMPLATE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\"}' \\\n${SERVER_ADDRESS}/template/quality\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/quality\", {\ntemplate: TEMPLATE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/quality\", json={\n\"template\": TEMPLATE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/quality\", json=mapOf(\n\"template\" to TEMPLATE\n))\n
Option Mandatory Type Description template true string path to service template presets false string... names of variability presets(env: OPENTOSCA_VINTNER_VARIABILITY_PRESETS) (default: []) inputs false string path to the variability inputs (supported: [YAML, FeatureIDE ExtendedXML], env: OPENTOSCA_VINTNER_VARIABILITY_INPUT_${KEY})","tags":["Vintner"]},{"location":"interface/#vintner-template-query","title":"vintner template query","text":"

resolves all queries in a given service template

CLIcURLJavaScriptPythonKotlin
vintner template query --template ${TEMPLATE} --output ${OUTPUT}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"output\": \"${OUTPUT}\"}' \\\n${SERVER_ADDRESS}/template/query\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/query\", {\ntemplate: TEMPLATE,\noutput: OUTPUT\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/query\", json={\n\"template\": TEMPLATE,\n\"output\": OUTPUT\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/query\", json=mapOf(\n\"template\" to TEMPLATE,\n\"output\" to OUTPUT\n))\n
Option Mandatory Type Description template true string path to service template output true string path of the output","tags":["Vintner"]},{"location":"interface/#vintner-template-resolve","title":"vintner template resolve","text":"

resolves variability

CLIcURLJavaScriptPythonKotlin
vintner template resolve --template ${TEMPLATE} --output ${OUTPUT}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"output\": \"${OUTPUT}\"}' \\\n${SERVER_ADDRESS}/template/resolve\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/resolve\", {\ntemplate: TEMPLATE,\noutput: OUTPUT\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/resolve\", json={\n\"template\": TEMPLATE,\n\"output\": OUTPUT\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/resolve\", json=mapOf(\n\"template\" to TEMPLATE,\n\"output\" to OUTPUT\n))\n
Option Mandatory Type Description template true string path to variable service template presets false strings... names of variability presets (env: OPENTOSCA_VINTNER_VARIABILITY_PRESETS) (default: []) inputs false string path to the variability inputs (supported: [YAML, FeatureIDE ExtendedXML, env: OPENTOSCA_VINTNER_VARIABILITY_INPUT_) output true string path of the output","tags":["Vintner"]},{"location":"interface/#vintner-template-sign","title":"vintner template sign","text":"

signs a CSAR

CLIcURLJavaScriptPythonKotlin
vintner template sign --template ${TEMPLATE} --output ${OUTPUT} --key ${KEY}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"output\": \"${OUTPUT}\", \"key\": \"${KEY}\"}' \\\n${SERVER_ADDRESS}/template/sign\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/sign\", {\ntemplate: TEMPLATE,\noutput: OUTPUT,\nkey: KEY\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/sign\", json={\n\"template\": TEMPLATE,\n\"output\": OUTPUT,\n\"key\": KEY\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/sign\", json=mapOf(\n\"template\" to TEMPLATE,\n\"output\" to OUTPUT,\n\"key\" to KEY\n))\n
Option Mandatory Type Description template true string path to service template output true string path of the output (default: template path + \".asc\" ) key true string path of the key","tags":["Vintner"]},{"location":"interface/#vintner-template-stats","title":"vintner template stats","text":"

collects stats of a given service template (experimental)

CLIcURLJavaScriptPythonKotlin
vintner template stats --template ${TEMPLATE} --experimental ${EXPERIMENTAL}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"experimental\": \"${EXPERIMENTAL}\"}' \\\n${SERVER_ADDRESS}/template/stats\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/stats\", {\ntemplate: TEMPLATE,\nexperimental: EXPERIMENTAL\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/stats\", json={\n\"template\": TEMPLATE,\n\"experimental\": EXPERIMENTAL\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/stats\", json=mapOf(\n\"template\" to TEMPLATE,\n\"experimental\" to EXPERIMENTAL\n))\n
Option Mandatory Type Description template true strings... path to service template experimental true enable experimental feature","tags":["Vintner"]},{"location":"interface/#vintner-template-test","title":"vintner template test","text":"

runs tests defined in the CSAR

CLIcURLJavaScriptPythonKotlin
vintner template test --path ${PATH}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"path\": \"${PATH}\"}' \\\n${SERVER_ADDRESS}/template/test\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/test\", {\npath: PATH\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/test\", json={\n\"path\": PATH\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/test\", json=mapOf(\n\"path\" to PATH\n))\n
Option Mandatory Type Description path true string path or link to the extracted CSAR","tags":["Vintner"]},{"location":"interface/#vintner-template-unimplement","title":"vintner template unimplement","text":"

unimplement node types

CLIcURLJavaScriptPythonKotlin
vintner template unimplement --dir ${DIR}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"dir\": \"${DIR}\"}' \\\n${SERVER_ADDRESS}/template/unimplement\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/unimplement\", {\ndir: DIR\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/unimplement\", json={\n\"dir\": DIR\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/unimplement\", json=mapOf(\n\"dir\" to DIR\n))\n
Option Mandatory Type Description dir true string path to service template directory","tags":["Vintner"]},{"location":"interface/#vintner-template-unpackage","title":"vintner template unpackage","text":"

unpackages a CSAR

CLIcURLJavaScriptPythonKotlin
vintner template unpackage --template ${TEMPLATE} --output ${OUTPUT}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"output\": \"${OUTPUT}\"}' \\\n${SERVER_ADDRESS}/template/unpackage\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/unpackage\", {\ntemplate: TEMPLATE,\noutput: OUTPUT\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/unpackage\", json={\n\"template\": TEMPLATE,\n\"output\": OUTPUT\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/unpackage\", json=mapOf(\n\"template\" to TEMPLATE,\n\"output\" to OUTPUT\n))\n
Option Mandatory Type Description template true string path to variable service template output true string path of the output","tags":["Vintner"]},{"location":"interface/#vintner-template-unpull","title":"vintner template unpull","text":"

unpull template dependencies

CLIcURLJavaScriptPythonKotlin
vintner template unpull --dir ${DIR}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"dir\": \"${DIR}\"}' \\\n${SERVER_ADDRESS}/template/unpull\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/unpull\", {\ndir: DIR\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/unpull\", json={\n\"dir\": DIR\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/unpull\", json=mapOf(\n\"dir\" to DIR\n))\n
Option Mandatory Type Description dir true string path to service template directory","tags":["Vintner"]},{"location":"interface/#vintner-template-verify","title":"vintner template verify","text":"

verify a CSAR

CLIcURLJavaScriptPythonKotlin
vintner template verify --template ${TEMPLATE} --signature ${SIGNATURE} --key ${KEY}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"signature\": \"${SIGNATURE}\", \"key\": \"${KEY}\"}' \\\n${SERVER_ADDRESS}/template/verify\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/template/verify\", {\ntemplate: TEMPLATE,\nsignature: SIGNATURE,\nkey: KEY\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/template/verify\", json={\n\"template\": TEMPLATE,\n\"signature\": SIGNATURE,\n\"key\": KEY\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/template/verify\", json=mapOf(\n\"template\" to TEMPLATE,\n\"signature\" to SIGNATURE,\n\"key\" to KEY\n))\n
Option Mandatory Type Description template true string path to service template signature true string path of the signature (default: template path + \".asc\" ) key true string path of the key","tags":["Vintner"]},{"location":"interface/#vintner-templates-clean","title":"vintner templates clean","text":"

removes all templates

CLIcURLJavaScriptPythonKotlin
vintner templates clean 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/templates/clean\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/templates/clean\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/templates/clean\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/templates/clean\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-templates-code","title":"vintner templates code","text":"

opens the template directory in visual studio code

CLI
vintner templates code --template ${TEMPLATE}\n
Option Mandatory Type Description template true string template name","tags":["Vintner"]},{"location":"interface/#vintner-templates-delete","title":"vintner templates delete","text":"

deletes a template

CLIcURLJavaScriptPythonKotlin
vintner templates delete --template ${TEMPLATE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\"}' \\\n${SERVER_ADDRESS}/templates/delete\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/templates/delete\", {\ntemplate: TEMPLATE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/templates/delete\", json={\n\"template\": TEMPLATE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/templates/delete\", json=mapOf(\n\"template\" to TEMPLATE\n))\n
Option Mandatory Type Description template true string template name","tags":["Vintner"]},{"location":"interface/#vintner-templates-import","title":"vintner templates import","text":"

imports a new template

CLIcURLJavaScriptPythonKotlin
vintner templates import --template ${TEMPLATE} --path ${PATH}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\", \"path\": \"${PATH}\"}' \\\n${SERVER_ADDRESS}/templates/import\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/templates/import\", {\ntemplate: TEMPLATE,\npath: PATH\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/templates/import\", json={\n\"template\": TEMPLATE,\n\"path\": PATH\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/templates/import\", json=mapOf(\n\"template\" to TEMPLATE,\n\"path\" to PATH\n))\n
Option Mandatory Type Description template true string template name path true string path or link to the CSAR git-repository false string git repository git-checkout false string git checkout signature false path to the signature (default: template + \".asc\") key false assets name to verify the signature","tags":["Vintner"]},{"location":"interface/#vintner-templates-inspect","title":"vintner templates inspect","text":"

inspects the variable service template

CLIcURLJavaScriptPythonKotlin
vintner templates inspect --template ${TEMPLATE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\"}' \\\n${SERVER_ADDRESS}/templates/inspect\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/templates/inspect\", {\ntemplate: TEMPLATE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/templates/inspect\", json={\n\"template\": TEMPLATE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/templates/inspect\", json=mapOf(\n\"template\" to TEMPLATE\n))\n
Option Mandatory Type Description template true string template name","tags":["Vintner"]},{"location":"interface/#vintner-templates-list","title":"vintner templates list","text":"

lists all templates

CLIcURLJavaScriptPythonKotlin
vintner templates list 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/templates/list\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/templates/list\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/templates/list\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/templates/list\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-templates-open","title":"vintner templates open","text":"

opens template directory in a file browser

CLI
vintner templates open --template ${TEMPLATE}\n
Option Mandatory Type Description template true string template name","tags":["Vintner"]},{"location":"interface/#vintner-templates-path","title":"vintner templates path","text":"

returns the path to the template directory

CLIcURLJavaScriptPythonKotlin
vintner templates path --template ${TEMPLATE}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"template\": \"${TEMPLATE}\"}' \\\n${SERVER_ADDRESS}/templates/path\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/templates/path\", {\ntemplate: TEMPLATE\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/templates/path\", json={\n\"template\": TEMPLATE\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/templates/path\", json=mapOf(\n\"template\" to TEMPLATE\n))\n
Option Mandatory Type Description template true string template name","tags":["Vintner"]},{"location":"interface/#vintner-utils-key","title":"vintner utils key","text":"

generates a key

CLIcURLJavaScriptPythonKotlin
vintner utils key --key ${KEY}\n
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n--data '{\"key\": \"${KEY}\"}' \\\n${SERVER_ADDRESS}/utils/key\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/utils/key\", {\nkey: KEY\n})\n
import requests\nrequests.post(SERVER_ADDRESS + \"/utils/key\", json={\n\"key\": KEY\n})\n
import khttp.post\npost(SERVER_ADDRESS + \"/utils/key\", json=mapOf(\n\"key\" to KEY\n))\n
Option Mandatory Type Description key true string key name (must match /^[a-z-]+$/)","tags":["Vintner"]},{"location":"interface/#vintner-utils-nonce","title":"vintner utils nonce","text":"

generates a nonce

CLIcURLJavaScriptPythonKotlin
vintner utils nonce 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/utils/nonce\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/utils/nonce\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/utils/nonce\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/utils/nonce\")\n
","tags":["Vintner"]},{"location":"interface/#vintner-utils-normative","title":"vintner utils normative","text":"

returns normative types

CLIcURLJavaScriptPythonKotlin
vintner utils normative 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/utils/normative\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/utils/normative\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/utils/normative\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/utils/normative\")\n
Option Mandatory Type Description orchestrator false string orchestrator dialect profile false boolean include profile entry (default: true) no-profile false boolean base false boolean include base types (default: true) no-base false boolean extended false boolean include extended types (default: true) no-extended false boolean format false string output format (choices: [\"yaml\",\"json\"], default: \"yaml\")","tags":["Vintner"]},{"location":"interface/#vintner-utils-rules","title":"vintner utils rules","text":"

returns technology rules

CLIcURLJavaScriptPythonKotlin
vintner utils rules 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/utils/rules\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/utils/rules\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/utils/rules\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/utils/rules\")\n
Option Mandatory Type Description format false string output format (choices: [\"yaml\",\"json\",\"latex\"], default: \"yaml\")","tags":["Vintner"]},{"location":"interface/#vintner-utils-scenarios","title":"vintner utils scenarios","text":"

returns deployment scenarios

CLIcURLJavaScriptPythonKotlin
vintner utils scenarios 
curl --header \"Content-Type: application/json\" \\\n--request POST \\\n${SERVER_ADDRESS}/utils/scenarios\n
const axios = require(\"axios\")\nawait axios.post(SERVER_ADDRESS + \"/utils/scenarios\")\n
import requests\nrequests.post(SERVER_ADDRESS + \"/utils/scenarios\")\n
import khttp.post\npost(SERVER_ADDRESS + \"/utils/scenarios\")\n
Option Mandatory Type Description component false string component artifact false string artifact no-artifact false boolean technology false string technology hosting false string... hosting no-hosting false boolean quality false number format false string output format (choices: [\"yaml\",\"json\"], default: \"yaml\")","tags":["Vintner"]},{"location":"orchestrators/","title":"Orchestrators","text":"

This document holds information considering supported orchestrators. We currently support xOpera and Unfurl. Since both can only be installed on Linux, we implemented a WSL integration for both. To find out more about these orchestrators, checkout our TOSCA Orchestrator Selection Support System (TOSSS). Install, configure and enable your orchestrator as follows. For more information see Interface.

","tags":["Vintner","xOpera","Unfurl"]},{"location":"orchestrators/#xopera","title":"xOpera","text":"

We install xOpera using the following command. This will install xOpera v0.6.9 in a virtual environment. For a manual installation see the documentation.

vintner install xopera\n

Next, we configure Vintner to use xOpera.

vintner orchestrators init xopera\nvintner orchestrators enable --orchestrator xopera\n

Next, we attest that Vintner can correctly use xOpera.

vintner orchestrators attest --orchestrator xopera\n

If xOpera is running in WSL and Vintner on Windows, then configure Vintner as follows.

vintner orchestrators init xopera-wsl\nvintner orchestrators enable --orchestrator xopera-wsl\n

Next, we attest that Vintner can correctly use xOpera in WSL.

vintner orchestrators attest --orchestrator xopera-wsl\n
","tags":["Vintner","xOpera","Unfurl"]},{"location":"orchestrators/#unfurl","title":"Unfurl","text":"

We install Unfurl using the following command. This will install Unfurl v1.0.0 in a virtual environment. For a manual installation see the documentation.

vintner install unfurl\n

Next, we configure Vintner to use Unfurl.

vintner orchestrators init unfurl\nvintner orchestrators enable --orchestrator unfurl\n

Next, we attest that Vintner can correctly use Unfurl.

vintner orchestrators attest --orchestrator unfurl\n

If Unfurl is running in WSL and Vintner on Windows, then configure Vintner as follows.

vintner orchestrators init unfurl-wsl\nvintner orchestrators enable --orchestrator unfurl-wsl\n

To attest that Vintner can correctly use Unfurl, run the following command.

vintner orchestrators attest --orchestrator unfurl-wsl\n
","tags":["Vintner","xOpera","Unfurl"]},{"location":"orchestrators/#integrated-features","title":"Integrated Features","text":"

The following table describes which feature of the orchestrators are integrated. The orchestrators provide more features, see TOSSS.

Feature xOpera Unfurl Validate an application topology Deploy an application Access deployment outputs Continue the deployment of an application Update the service template of an application Undeploy an application Access node instance attributes","tags":["Vintner","xOpera","Unfurl"]},{"location":"orchestrators/#deployment-technologies","title":"Deployment Technologies","text":"

Under the scene, we are using the following deployment technologies.

Technology Version ansible (pip) 4.10.0 google-cloud-cli (apt) 432.0.0 kubernetes (pip) 24.2.0 openshift (pip) 0.13.2 openstacksdk (pip) 0.61 python-openstackclient (pip) 6.0.0 terraform (apt) 1.4.6","tags":["Vintner","xOpera","Unfurl"]},{"location":"orchestrators/#known-limitations","title":"Known Limitations","text":"
  • xOpera version 0.6.9 should be used. xOpera version 0.7.0 does not parse the templates as expected, see issues #257, #258, and #261.
  • xOpera deletes attribute assignments during updates, see issue #262.
","tags":["Vintner","xOpera","Unfurl"]},{"location":"publications/","title":"Publications","text":"

This document holds a list of selected publications.

","tags":["Misc","Publication","Zenodo"]},{"location":"publications/#hosting-aware-pruning-of-components-in-deployment-models","title":"Hosting-Aware Pruning of Components in Deployment Models","text":"
  • CLOSER 2024
  • https://doi.org/10.5220/0012671900003711
  • Step-by-Step Guide
  • Models of the Case Study (Relevant models start with \"unfurl-aware\")
  • GitHub Actions (Relevant jobs start with \"Unfurl Aware\")
  • GitHub Actions Raw Logs (Relevant jobs start with \"Unfurl Aware\")
  • Assets on Zenodo
  • @publication-stoetzner-2024-hosting-aware-pruning
@inproceedings{Stoetzner2024_HostingAwarePruning,\nTitle = {{Hosting-Aware Pruning of Components in Deployment Models}},\nAuthor = {St{\\\"o}tzner, Miles and Speth, Sandro and Becker, Steffen},\nYear = 2024,\nMonth = may,\nBooktitle = {Proceedings of the 14\\textsuperscript{th} International Conference on Cloud Computing and Services Science (CLOSER 2024)},\nPublisher = {SciTePress},\nPages = {149--158},\nDoi = {10.5220/0012671900003711},\nurl = {https://www.scitepress.org/Link.aspx?doi=10.5220/0012671900003711},\nprojects = {SofDCar,OpenTOSCA}\n}\n
","tags":["Misc","Publication","Zenodo"]},{"location":"publications/#pruning-modes-for-deployment-models-from-manual-modeling-to-automated-removal-of-elements-and-their-implications","title":"Pruning Modes for Deployment Models: From Manual Modeling to Automated Removal of Elements and Their Implications","text":"
  • CLOSER 2024
  • https://doi.org/10.5220/0012568300003711
  • Step-by-Step Guide
  • Models of the Experiments
  • Models of the Case Study (Relevant models start with \"xopera-pruning\")
  • GitHub Actions (Relevant jobs start with \"xOpera Pruning Mode\")
  • GitHub Actions Raw Logs (Relevant jobs start with \"xOpera Pruning Mode\")
  • Assets on Zenodo
  • @publication-stoetzner-2024-pruning-modes
@inproceedings{Stoetzner2024_PruningModes,\nTitle = {{Pruning Modes for Deployment Models: From Manual Modeling to Automated Removal of Elements and Their Implications}},\nAuthor = {St{\\\"o}tzner, Miles and Speth, Sandro and Becker, Steffen},\nYear = 2024,\nMonth = may,\nBooktitle = {Proceedings of the 14\\textsuperscript{th} International Conference on Cloud Computing and Services Science (CLOSER 2024)},\nPublisher = {SciTePress},\nPages = {65--76},\nDoi = {10.5220/0012568300003711},\nurl = {https://www.scitepress.org/Link.aspx?doi=10.5220/0012568300003711},\nprojects = {SofDCar,OpenTOSCA}\n}\n
","tags":["Misc","Publication","Zenodo"]},{"location":"publications/#a-systematic-technology-review-of-general-purpose-open-source-tosca-orchestrators","title":"A Systematic Technology Review of General-Purpose Open-Source TOSCA Orchestrators","text":"

St\u00f6tzner, M., Becker, S., Harzenetter, L., Leymann, F., Weder, B., Breitenb\u00fccher, U., Kopp, O., Klein, K., & Soldani, J. (2023, December). A Systematic Technology Review of General-Purpose Open-Source TOSCA Orchestrators. Proceedings of the IEEE/ACM 16th International Conference on Utility and Cloud Computing (UCC 2023), 1\u201311. doi:10.1145/3603166.3632130

  • UCC 2023
  • https://doi.org/10.1145/3603166.3632130
  • https://tosss.opentosca.org
  • https://github.com/OpenTOSCA/opentosca-tosss
  • Assets on Zenodo
@inproceedings{Stoetzner2023_TOSSS,\nTitle         = {{A Systematic Technology Review of General-Purpose Open-Source TOSCA Orchestrators}},\nAuthor        = {St\\\"{o}tzner, Miles and Becker, Steffen and Harzenetter, Lukas and Leymann, Frank and Weder, Benjamin and Breitenb\\\"{u}cher, Uwe and Kopp, Oliver and Klein, Kevin and Soldani, Jacopo},\nYear          = 2023,\nMonth         = dec,\nBooktitle     = {Proceedings of the IEEE/ACM 16th International Conference on Utility and Cloud Computing (UCC 2023)},\nPublisher     = {ACM},\nAddress       = {New York, NY, USA},\nPages         = {1--11},\narticleno     = {6},\nDoi           = {10.1145/3603166.3632130},\nisbn          = {9798400702341},\nurl           = {https://doi.org/10.1145/3603166.3632130},\nprojects      = {SofDCar,OpenTOSCA,EniQmA},\nnumpages      = {11},\nkeywords      = {TOSCA, orchestrator, systematic technology review, classification framework, general-purpose, open-source},\n}\n
","tags":["Misc","Publication","Zenodo"]},{"location":"publications/#enhancing-deployment-variability-management-by-pruning-elements-in-deployment-models","title":"Enhancing Deployment Variability Management by Pruning Elements in Deployment Models","text":"

St\u00f6tzner, M., Klinaku, F., Pesl, R. D., & Becker, S. (2023, December). Enhancing Deployment Variability Management by Pruning Elements in Deployment Models. Proceedings of the IEEE/ACM 16th International Conference on Utility and Cloud Computing (UCC 2023), 1\u201311. doi:10.1145/3603166.3632143

  • UCC 2023
  • https://doi.org/10.1145/3603166.3632143
  • Step-by-Step Guide
  • Model of the Motivating Scenario
  • Models of the Complexity Evaluation
  • GitHub Actions (Relevant jobs start with \"xOpera Pruning\")
  • GitHub Actions Raw Logs (Relevant jobs start with \"xOpera Pruning\")
  • Assets on Zenodo
  • @publication-stoetzner-2023-pruning
@inproceedings{Stoetzner2023_Pruning,\nTitle         = {{Enhancing Deployment Variability Management by Pruning Elements in Deployment Models}},\nAuthor        = {St\\\"{o}tzner, Miles and Klinaku, Floriment and Pesl, Robin Dominic and Becker, Steffen},\nYear          = 2023,\nMonth         = dec,\nBooktitle     = {Proceedings of the IEEE/ACM 16th International Conference on Utility and Cloud Computing (UCC 2023)},\nPublisher     = {ACM},\nAddress       = {New York, NY, USA},\nPages         = {1--11},\narticleno     = {18},\nDoi           = {10.1145/3603166.3632143},\nisbn          = {9798400702341},\nurl           = {https://doi.org/10.1145/3603166.3632143},\nprojects      = {SofDCar,OpenTOSCA},\nnumpages      = {11},\nkeywords      = {pruning, deployment models, variability management, TOSCA},\n}\n
","tags":["Misc","Publication","Zenodo"]},{"location":"publications/#using-variability4tosca-and-opentosca-vintner-for-holistically-managing-deployment-variability","title":"Using Variability4TOSCA and OpenTOSCA Vintner for Holistically Managing Deployment Variability","text":"

St\u00f6tzner, M., Breitenb\u00fccher, U., Pesl, R. D., & Becker, S. (2024). Using Variability4TOSCA and OpenTOSCA Vintner for Holistically Managing Deployment Variability. Proceedings of the Demonstration Track at International Conference on Cooperative Information Systems 2023, CoopIS 2023, Groningen, The Netherlands, October 30 - November 3, 2023, CEUR-WS.org, online https://ceur-ws.org/Vol-3552/paper-8.pdf

  • CoopIS 2023 Demo
  • https://ceur-ws.org/Vol-3552/paper-8.pdf
  • Step-by-Step Guide
  • Demo Video
  • Model of the Motivating Scenario
  • GitHub Actions (Relevant jobs start with \"Unfurl Artifacts\")
  • GitHub Actions Raw Logs (Relevant steps start with \"Unfurl Artifacts\")
  • Assets on Zenodo
  • @publication-stoetzner-2023-vdmm-v2-demo
@inproceedings{Stoetzner2023_VDMMv2Demo,\nTitle         = {{Using Variability4TOSCA and OpenTOSCA Vintner for Holistically Managing Deployment Variability}},\nAuthor        = {St{\\\"o}tzner, Miles and Breitenb{\\\"u}cher, Uwe and Pesl, Robin D. and Becker, Steffen},\nYear          = 2023,\nMonth         = oct,\nBooktitle     = {Proceedings of the Demonstration Track at International Conference on Cooperative Information Systems 2023},\nPublisher     = {{CEUR-WS.org}},\nPages         = {36--40},\nSeries        = {CEUR Workshop Proceedings},\nVolume        = {3552},\nurl           = {https://ceur-ws.org/Vol-3552/paper-8.pdf},\ntype          = {Demonstration},\nprojects      = {SofDCar,OpenTOSCA},\n}\n
","tags":["Misc","Publication","Zenodo"]},{"location":"publications/#managing-the-variability-of-component-implementations-and-their-deployment-configurations-across-heterogeneous-deployment-technologies","title":"Managing the Variability of Component Implementations and Their Deployment Configurations Across Heterogeneous Deployment Technologies","text":"

St\u00f6tzner, M., Breitenb\u00fccher, U., Pesl, R. D., & Becker, S. (2024). Managing the Variability of Component Implementations and Their Deployment Configurations Across Heterogeneous Deployment Technologies. Cooperative Information Systems, 61\u201378. doi:10.1007/978-3-031-46846-9_4

  • CoopIS 2023
  • https://doi.org/10.1007/978-3-031-46846-9_4
  • Step-by-Step Guide
  • Model of the Motivating Scenario
  • Models of the Complexity Evaluation
  • GitHub Actions (Relevant jobs start with \"Unfurl Artifacts\")
  • GitHub Actions Raw Logs (Relevant jobs start with \"Unfurl Artifacts\")
  • Assets on Zenodo
  • @publication-stoetzner-2023-vdmm-v2
@inproceedings{Stoetzner2023_VDMMv2,\nTitle         = {{Managing the Variability of Component Implementations and Their Deployment Configurations Across Heterogeneous Deployment Technologies}},\nAuthor        = {St{\\\"o}tzner, Miles and Breitenb{\\\"u}cher, Uwe and Pesl, Robin D. and Becker, Steffen},\nYear          = 2023,\nMonth         = oct,\nBooktitle     = {Cooperative Information Systems},\nPublisher     = {Springer Nature Switzerland},\nAddress       = {Cham},\nPages         = {61--78},\nDoi           = {10.1007/978-3-031-46846-9_4},\nisbn          = {978-3-031-46846-9},\nurl           = {https://link.springer.com/chapter/10.1007/978-3-031-46846-9_4},\nprojects      = {SofDCar,OpenTOSCA},\n}\n
","tags":["Misc","Publication","Zenodo"]},{"location":"publications/#developing-the-software-of-future-cars-a-car-devops-approach","title":"Developing the Software of Future Cars: A Car DevOps Approach","text":"

Weller, M., St\u00f6tzner, M., Klinaku, F., & Becker, S. (2023). Developing the Software of Future Cars: A Car DevOps Approach. Softwaretechnik-Trends, 43(2).

  • Softwaretechnik-Trends 2024
  • https://fb-swt.gi.de/publikationen/softwaretechnik-trends
@article{Weller2023_SofDCar,\nTitle         = {{Developing the Software of Future Cars: A Car DevOps Approach}},\nAuthor        = {Weller, Marcel and St{\\\"o}tzner, Miles and Klinaku, Floriment and Becker, Steffen},\nYear          = 2023,\nMonth         = may,\nJournal       = {Softwaretechnik-Trends},\nPublisher     = {Gesellschaft f{\\\"u}r Informatik},\nPages         = {3--10},\nVolume        = {43},\nNumber        = {2},\nissn          = {0720-8928},\nprojects      = {SofDCar,OpenTOSCA},\n}\n
","tags":["Misc","Publication","Zenodo"]},{"location":"publications/#modeling-different-deployment-variants-of-a-composite-application-in-a-single-declarative-deployment-model","title":"Modeling Different Deployment Variants of a Composite Application in a Single Declarative Deployment Model","text":"

St\u00f6tzner, M., Becker, S., Breitenb\u00fccher, U., K\u00e1lm\u00e1n, K., & Leymann, F. (2022). Modeling Different Deployment Variants of a Composite Application in a Single Declarative Deployment Model. Algorithms, 15(10), 382. doi:10.3390/a15100382

  • Algorithms 2022
  • https://doi.org/10.3390/a15100382
  • Step-by-Step Guide
  • Model of the Motivating Scenario using Unfurl
  • Model of the Motivating Scenario using xOpera
  • GitHub Actions (Relevant jobs start with \"Unfurl Motivation\" and \"xOpera Motivation\")
  • GitHub Actions Raw Logs (Relevant jobs start with \"Unfurl Motivation\" and \"xOpera Motivation\")
  • Assets on Zenodo
  • @publication-stoetzner-2022-vdmm
@article{Stoetzner2022_VDMM,\nTitle         = {{Modeling Different Deployment Variants of a Composite Application in a Single Declarative Deployment Model}},\nAuthor        = {St{\\\"o}tzner, Miles and Becker, Steffen and Breitenb{\\\"u}cher, Uwe and K{\\'a}lm{\\'a}n, K{\\'e}pes and Leymann, Frank},\nYear          = 2022,\nMonth         = oct,\nJournal       = {Algorithms},\nPublisher     = {MDPI},\nPages         = {1--25},\narticleno     = {382},\nVolume        = {15},\nNumber        = {10},\nDoi           = {10.3390/a15100382},\nurl           = {https://www.mdpi.com/1999-4893/15/10/382},\nprojects      = {SofDCar,OpenTOSCA},\n}\n
","tags":["Misc","Publication","Zenodo"]},{"location":"resources/","title":"Resources","text":"

This document holds a collection of interesting resources, such as the TOSCA specifications, introductions, popular orchestrators and TOSCA repositories.

","tags":["Misc"]},{"location":"resources/#specifications","title":"Specifications","text":"
  • TOSCA Version 1.0
  • TOSCA Simple Profile in YAML Version 1.3
  • TOSCA Version 2.0
  • Variability4TOSCA
  • Queries4TOSCA
  • TOSCA SofDCar Profile
","tags":["Misc"]},{"location":"resources/#introductions","title":"Introductions","text":"
  • Understanding OASIS TOSCA
  • Portable Cloud Services Using TOSCA
  • TOSCA: Portable Automated Deployment and Management of Cloud Applications
  • Unified Invocation of Scripts and Services for Provisioning, Deployment, and Management of Cloud Applications Based on TOSCA
  • Declarative vs. Imperative: Two Modeling Patterns for the Automated Deployment of Applications
  • TOSCA Primer Version 1.0
  • TOSCA Introduction
","tags":["Misc"]},{"location":"resources/#orchestrators","title":"Orchestrators","text":"
  • Cloudify (Getting Started) (Hello World Example)
  • OpenTOSCA (Getting Started)
  • Unfurl (Getting Started)
  • xOpera (Getting Started) (Hello World Example)
  • Yorc (Getting Started) (Guides)
","tags":["Misc"]},{"location":"resources/#other-interesting-tools","title":"Other Interesting Tools","text":"
  • Alien4Cloud (TOSCA management layer) (Getting Started)
  • Ansible (Popular deployment technology for implementation artifacts)
  • Eclipse Winery (TOSCA Modeling Tool)
","tags":["Misc"]},{"location":"resources/#tosca-repositories","title":"TOSCA Repositories","text":"
  • OpenTOSCA TOSCA Definitions Common (TOSCA 1.0) (Winery) (OpenTOSCA)
  • RADON Particles (TOSCA 1.3) (Winery) (xOpera)
  • Ystia Forge (TOSCA 1.3) (Yorc)
  • Yorc Samples (TOSCA 1.3) (Alien4Cloud) (Yorc)
  • Alien4Cloud CSAR Public Library (TOSCA 1.3) (Alien4Cloud) (Yorc)
  • Unfurl Examples (TOSCA 1.3) (Unfurl)
  • Unfurl Tests Examples (TOSCA 1.3) (Unfurl)
  • xOpera Examples (TOSCA 1.3) (xOpera)
","tags":["Misc"]},{"location":"resources/#other-resources","title":"Other Resources","text":"
  • IAAS TOSCA-Related Research
  • OASIS Known TOSCA Implementations
  • OpenTOSCA Resources
","tags":["Misc"]},{"location":"uninstallation/","title":"Uninstallation","text":"

Warning

Undeploy all applications first.

This document holds instructions on uninstalling Vintner.

Depending on the installation method, uninstall Vintner as follows.

Script/ ManualNPMYarn (Classic)Docker
vintner setup clean --force\nrm \"$(which vintner)\"\n
vintner setup clean --force\nnpm uninstall --global opentosca-vintner\n
vintner setup clean --force\nyarn global remove opentosca-vintner\n
docker stop vintner\ndocker remove vintner\n

Next, remove the directories used to persists container data on the docker host.

","tags":["Vintner","Docker"]},{"location":"usage/","title":"Usage","text":"

This document holds instructions on using Vintner.

","tags":["Vintner"]},{"location":"usage/#use-the-cli","title":"Use the CLI","text":"

First, we ensure that Vintner can be executed.

vintner --version\n

From there on use the help command. See Interface for a complete interface specification.

vintner --help\n
","tags":["Vintner"]},{"location":"usage/#enable-an-orchestrator","title":"Enable an Orchestrator","text":"

Vintner requires an orchestrator for the deployment. See Orchestrators for a complete interface specification.

First, we initialize the config.

vintner orchestrators init ${ORCHESTRATOR_NAME}\n

Next, we enable the orchestrator.

vintner orchestrators enable ${ORCHESTRATOR_NAME}\n
","tags":["Vintner"]},{"location":"usage/#deploy-an-application","title":"Deploy an Application","text":"

First, we import the Variability4TOSCA template.

vintner templates import --template ${TEMPLATE_NAME} --path ${TEMPLATE_PATH}\n

Next, we initialize an application instance.

vintner instances init --instance ${INSTANCE_NAME} --template ${TEMPLATE_NAME}\n

Next, we specify variability inputs.

Next, we resolve the variability.

vintner instances resolve --instance ${INSTANCE_NAME} --inputs ${VARIABILITY_INPUTS}\n

Next, we specify deployment inputs.

Next, we deploy the application.

vintner instances deploy --instance ${INSTANCE_NAME} --inputs ${DEPLOYMENT_INPUTS_PATH}\n
","tags":["Vintner"]},{"location":"usage/#undeploy-an-application","title":"Undeploy an Application","text":"

Eventually, we undeploy the application.

vintner instances undeploy --instance ${INSTANCE_NAME}\n
","tags":["Vintner"]},{"location":"usage/#configuration","title":"Configuration","text":"

The following environment variables can be used for configuration.

Environment Variable Default Description OPENTOSCA_VINTNER_HOME_DIR ${HOME_DIR}/.opentosca_vintner Configures the home directory of Vintner.","tags":["Vintner"]},{"location":"usage/#start-the-server","title":"Start the Server","text":"

Vintner can be used as server. To start the server, run the following command.

vintner server start\n
","tags":["Vintner"]},{"location":"versions/","title":"Versions","text":"

This document holds information about the versioning concept of Vintner.

Vintner uses full commit hashes as version numbers. The current version can be accessed using vintner --version.

Vintner is a research prototype. There exists only a single GitHub release. Older releases are removed when a new GitHub release is published. Vintner versions used in publications are archived using Zenodo.

For each GitHub release, there exists a Docker Image. These images are not removed.

The versions used in package managers, such as npm, use semantic versioning.

Package Version Vintner Version 0.1.7 a3d1b58a49a02a274bc5c5124e44eca4a1b2b7a3 0.1.5 0ca9400c337530d629125c2080db3710824f77ad 0.1.4 5e5e3bca56ad702ec0d3c3561a1eac3363576a3c 0.1.3 b75c2fdb75334a7f6ff531ad8b4e47bd188b964a","tags":["Vintner"]},{"location":"about-us/","title":"About Us","text":"

This project is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Misc"]},{"location":"about-us/#license","title":"License","text":"

This project is licensed under Apache-2.0.

","tags":["Misc"]},{"location":"about-us/#haftungsausschluss","title":"Haftungsausschluss","text":"

Dies ist ein Forschungsprototyp. Die Haftung f\u00fcr entgangenen Gewinn, Produktionsausfall, Betriebsunterbrechung, entgangene Nutzungen, Verlust von Daten und Informationen, Finanzierungsaufwendungen sowie sonstige Verm\u00f6gens- und Folgesch\u00e4den ist, au\u00dfer in F\u00e4llen von grober Fahrl\u00e4ssigkeit, Vorsatz und Personensch\u00e4den ausgeschlossen.

","tags":["Misc"]},{"location":"about-us/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Misc"]},{"location":"contributing/code-of-conduct/","title":"Contributor Covenant Code of Conduct","text":"","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#our-pledge","title":"Our Pledge","text":"

We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.

","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#our-standards","title":"Our Standards","text":"

Examples of behavior that contributes to a positive environment for our community include:

  • Demonstrating empathy and kindness toward other people
  • Being respectful of differing opinions, viewpoints, and experiences
  • Giving and gracefully accepting constructive feedback
  • Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
  • Focusing on what is best not just for us as individuals, but for the overall community

Examples of unacceptable behavior include:

  • The use of sexualized language or imagery, and sexual attention or advances of any kind
  • Trolling, insulting or derogatory comments, and personal or political attacks
  • Public or private harassment
  • Publishing others' private information, such as a physical or email address, without their explicit permission
  • Other conduct which could reasonably be considered inappropriate in a professional setting
","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#enforcement-responsibilities","title":"Enforcement Responsibilities","text":"

Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.

Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.

","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#scope","title":"Scope","text":"

This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.

","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#enforcement","title":"Enforcement","text":"

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at miles.stoetzner@iste.uni-stuttgart.de. All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the reporter of any incident.

","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#enforcement-guidelines","title":"Enforcement Guidelines","text":"

Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:

","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#1-correction","title":"1. Correction","text":"

Community Impact: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.

Consequence: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.

","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#2-warning","title":"2. Warning","text":"

Community Impact: A violation through a single incident or series of actions.

Consequence: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.

","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#3-temporary-ban","title":"3. Temporary Ban","text":"

Community Impact: A serious violation of community standards, including sustained inappropriate behavior.

Consequence: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.

","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#4-permanent-ban","title":"4. Permanent Ban","text":"

Community Impact: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.

Consequence: A permanent ban from any sort of public interaction within the community.

","tags":["Contributing"]},{"location":"contributing/code-of-conduct/#attribution","title":"Attribution","text":"

This Code of Conduct is adapted from the Contributor Covenant, version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by Mozilla's code of conduct enforcement ladder.

For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.

","tags":["Contributing"]},{"location":"contributing/development/","title":"Development","text":"

This document holds instructions on developing Vintner.

","tags":["Contributing"]},{"location":"contributing/development/#github-flow","title":"GitHub Flow","text":"

Our branching workflow follows GitHub Flow.

","tags":["Contributing"]},{"location":"contributing/development/#branch-naming-convention","title":"Branch Naming Convention","text":"

Branches should be names as follows.

  • feature-short-title for features.
  • fix-short-title for bug fixes.
  • refactor-short-title for refactoring.
  • chore-short-title for chores.
  • docs-short-title for documentations.
  • project-short-title for project, such as thesis, EnPro, StuPro ...
","tags":["Contributing"]},{"location":"contributing/development/#squash-and-merge","title":"Squash and Merge","text":"

Squash your commits into a single commit with a short but meaningful message. The commit message should have a link to the merge request. The branch is automatically deleted once merged.

","tags":["Contributing"]},{"location":"contributing/development/#tags","title":"Tags","text":"

A tag must be created for each publication, thesis, etc. For example, the following commands create and push the tag for the publication \"Modeling Different Deployment Variants of a Composite Application in a Single Declarative Deployment Model\" published by St\u00f6tzner et al. in 2022.

git tag -s publication-stoetzner-2022-vdmm -m \"Modeling Different Deployment Variants of a Composite Application in a Single Declarative Deployment Model\"\ngit push origin publication-stoetzner-2022-vdmm\n
","tags":["Contributing"]},{"location":"contributing/development/#command-line-interface","title":"Command Line Interface","text":"

Info

./task cli uses src/cli/index.ts while ./task vintner uses build/cli/index.js. Therefore, run ./task cli to execute the current code without building it first.

We use commander.js to implement the CLI. The entry point is src/cli/index.ts. Execute a CLI command during development as follows.

./task cli -- [command] [options]\n
","tags":["Contributing"]},{"location":"contributing/development/#server","title":"Server","text":"

We use express to implement the server. The entry point is src/server/index.ts. Run a development server on http://localhost:3000 with live-reload as follows.

./task server:serve\n
","tags":["Contributing"]},{"location":"contributing/development/#tests","title":"Tests","text":"

We use mocha, chai, and nyc for testing. Respective tests are inside the tests directory. Run the tests as follows.

./task test\n

On pushes to the main branch or on pull requests, the tests workflow is triggered. This workflow runs the tests.

","tags":["Contributing"]},{"location":"contributing/development/#lint","title":"Lint","text":"

We use ESLint for code linting. Lint typescript as follows.

./task lint:check\n

Fix lint problems as follows.

./task lint:fix\n
","tags":["Contributing"]},{"location":"contributing/development/#code-style","title":"Code Style","text":"

We use Prettier for code formatting. Check the code style as follows.

./task style:check\n

Fix code style problems as follows.

./task style:fix\n
","tags":["Contributing"]},{"location":"contributing/development/#benchmark","title":"Benchmark","text":"

Run the following command, to run to benchmark the variability resolving.

./task benchmark\n
","tags":["Contributing"]},{"location":"contributing/development/#dependencies","title":"Dependencies","text":"

We use license-checker to handle licenses of (transitive) dependencies. Check that (transitive) dependencies are licensed as expected as follows. This check is also executed inside workflows.

./task licenses:check\n
","tags":["Contributing"]},{"location":"contributing/development/#patch-packages","title":"Patch Packages","text":"

We use patch-package to fix dependencies. For example, adding logic-solver.d.ts to logic-solver. Therefore, proceed as follows.

First, make changes to the package inside node_modules. Then, create the patch.

yarn patch-package --exclude 'nothing' ${package-name}\n
","tags":["Contributing"]},{"location":"contributing/development/#night","title":"Night","text":"

The Night workflow is scheduled for every tuesday at 420. This workflow ensures that the latest release is correctly signed and can be executed. Moreover, integration tests are executed, which use xOpera, Unfurl, and GCP.

","tags":["Contributing"]},{"location":"contributing/documentation/","title":"Documentation","text":"

This document holds instructions on writing the documentation.

","tags":["Contributing"]},{"location":"contributing/documentation/#guidelines","title":"Guidelines","text":"

We follow the following guidelines when writing documentation.

  • start a document with \"This document holds ...\"
  • use \"we\" instead of \"you\" or imperative
  • use \"Next, we\" instead of \"Then, we ...\", \"We then ...\", etc.
  • use \", see\" instead of \"..., as given in ...\", \"..., as presented in ...\", etc.
  • use the step-by-step guide template in docs/templates/guide
  • use the specification template in docs/templates/specification
  • use \"as follows\" instead of \"in the following\"
","tags":["Contributing"]},{"location":"contributing/documentation/#mkdocs","title":"MkDocs","text":"

Warning

This only works on Linux.

We use Material for MkDocs as documentation system. The files are located in the docs directory. Custom macros are implemented in docs/macros.py using mkdocs-macros.

First, install all dependencies. This will install several apt packages on the system and mkdocs in a virtual environment.

./task docs:install\n

Next, reload your session.

Next, start a local development server on http://localhost:8000.

./task docs:serve\n

Next, open the docs in your browser.

./task docs:open\n
","tags":["Contributing"]},{"location":"contributing/documentation/#autogenerated-markdown","title":"Autogenerated Markdown","text":"

Some Markdown files are autogenerated, e.g., Dependencies or Interface. Changes must be made in the respective template files. Files are generated during the Release workflow and overwrite committed files. To warn the developer, include the following custom marco at the top of the template.

{{ autogenerated_notice('./task docs:generate:dependencies') }}\n

This will render the following warning, if the docs are served using ./task docs:serve but not when built.

Warning

Do not edit! This file is autogenerated using ./task docs:generate:dependencies and will be overwritten during the Release workflow! (This warning is not shown once deployed)

","tags":["Contributing"]},{"location":"contributing/documentation/#casts","title":"Casts","text":"

Warning

This only works on Linux.

The docs contain recorded demos. We use the following tools.

  • asciinema to record a terminal session.
  • demo-magic to automate the terminal session.
  • asciinema-player to embed casts in a standalone manner.

Casts are not recorded during any workflow. The following command can be used to record the home cast for the landing page.

./task docs:record:home\n

A cast can be embedded using the custom macro asciinema_player inside a Markdown file.

{{ asciinema_player('getting-started') }}\n

This will embed the cast docs/docs/assets/casts/getting-started.cast inside the page as follows.

","tags":["Contributing"]},{"location":"contributing/documentation/#export","title":"Export","text":"

Warning

This only works on Linux.

To export registered pages as PDF, run the following command. The PDFs are stored in dist-docs.

./task docs:export\n

By default, https://vintner.opentosca.org is used. To export pages of http://localhost:8000, run the following command.

./task docs:export:local\n
","tags":["Contributing"]},{"location":"contributing/documentation/#interface","title":"Interface","text":"

To generate the documentation for the CLI and REST API, run the following command. This command is also executed during the Release workflow and overwrites committed files.

./task docs:generate:interface\n
","tags":["Contributing"]},{"location":"contributing/documentation/#dependencies","title":"Dependencies","text":"

To generate a list of licenses for all (transitive) dependencies, run the following command This command is also executed during the Release workflow and overwrites committed files.

./task docs:generate:dependencies\n

The list includes information, such as package name, version, license, etc., and is written to a CSV file. At the same time, the Dependencies page is generated.

","tags":["Contributing"]},{"location":"contributing/documentation/#puccini","title":"Puccini","text":"

Warning

This only works on Linux.

We use puccini to validate a service template. Therefore, run the following command.

./task puccini:check:single path/to/service-template.yaml\n

To validate all registered service templates, run the following command.

./task puccini:check\n
","tags":["Contributing"]},{"location":"contributing/documentation/#plantuml","title":"PlantUML","text":"

We use PlantUML for visualizing UML diagrams. Read PlantUML Guide for modeling instructions. We use mkdocs_build_plantuml to plot PlantUML to SVGs when building the documentation. Note, we use the public PlantUML server https://www.plantuml.com/plantuml for plotting SVGs.

","tags":["Contributing"]},{"location":"contributing/documentation/#queries4tosca","title":"Queries4TOSCA","text":"

To generate the conformance tests for Queries4TOSCA, run the following command. This command is also executed during the Release workflow and overwrites committed files.

./task docs:generate:query\n
","tags":["Contributing"]},{"location":"contributing/documentation/#tosca-sofdcar-profile","title":"TOSCA SofDCar Profile","text":"

To generate the TOSCA SofDCar Profile, run the following command. This command is also executed during the Release workflow and overwrites committed files.

./task docs:generate:query\n
","tags":["Contributing"]},{"location":"contributing/documentation/#variability4tosca","title":"Variability4TOSCA","text":"

To generate the conformance tests for Variability4TOSCA, run the following command. This command is also executed during the Release workflow and overwrites committed files.

./task docs:generate:query\n
","tags":["Contributing"]},{"location":"contributing/documentation/#limitations","title":"Limitations","text":"
  • Performance is suffering due to the heavy use of plugins.
  • It is not possible to configure which release should be shown in the navigation bar. The latest release is always use which is in general correct.
","tags":["Contributing"]},{"location":"contributing/notes/","title":"Notes","text":"

This document holds a collection of arbitrary notes.

","tags":["Contributing"]},{"location":"contributing/notes/#filesystem","title":"Filesystem","text":"","tags":["Contributing"]},{"location":"contributing/notes/#home-directory","title":"Home Directory","text":"
${vintner_home}/\n\u251c\u2500 templates/\n\u251c\u2500 instances/\n\u251c\u2500 assets/\n\u251c\u2500 plugins.yaml\n
","tags":["Contributing"]},{"location":"contributing/notes/#instance-directory","title":"Instance Directory","text":"
${vintner_home}/\n\u251c\u2500 instances/\n\u2502  \u251c\u2500 ${instance-name}/\n\u2502  \u2502  \u251c\u2500 data/\n\u2502  \u2502  \u251c\u2500 service-inputs/\n\u2502  \u2502  \u2502  \u251c\u2500 ${timestamp}.yaml\n\u2502  \u2502  \u251c\u2500 templates/\n\u2502  \u2502  \u2502  \u251c\u2500 ${timestamp}/\n\u2502  \u2502  \u2502  \u2502  \u251c\u2500 service-template.${timestamp}.yaml\n\u2502  \u2502  \u2502  \u2502  \u251c\u2500 variability-inputs.${timestamp}.yaml\n\u2502  \u2502  \u2502  \u2502  \u251c\u2500 variable-service-template.yaml\n\u2502  \u2502  \u2502  \u2502  \u251c\u2500 ...\n\u2502  \u2502  \u251c\u2500 info.yaml\n\u2502  \u2502  \u251c\u2500 ...\n\u2502  \u251c\u2500 ...\n\u251c\u2500 ...\n
","tags":["Contributing"]},{"location":"contributing/notes/#instance-info","title":"Instance Info","text":"Keyname Mandatory Type Description name true String Instance name state true String Instance state creation_timestamp true Number ISO milliseconds of creation date resolved_timestamp false Number ISO milliseconds of latest variablity inputs and variability-resolved service template template_timestamp true Number ISO milliseconds of latest variable service template service_inputs_timestamp false Number ISO milliseconds of latest service inputs","tags":["Contributing"]},{"location":"contributing/notes/#instance-state-machine","title":"Instance State Machine","text":"","tags":["Contributing"]},{"location":"contributing/notes/#template-config","title":"Template Config","text":"

A template might have a config.yaml at root of the following type.

export type Config = {\ndependencies: Dependencies\n}\nexport type Dependencies = TemplateDependency[]\nexport type TemplateDependency = {\nsource: string\ntarget?: string\n}\n
","tags":["Contributing"]},{"location":"contributing/notes/#workflows","title":"Workflows","text":"","tags":["Contributing"]},{"location":"contributing/notes/#initialize-a-new-instance","title":"Initialize a new Instance","text":"

vintner instances init

  1. Instance directory is created.
  2. Extracted CSAR (Template) is copied into instance template directory.
  3. Instance info is updated
","tags":["Contributing"]},{"location":"contributing/notes/#resolve-the-variability-of-an-instance","title":"Resolve the Variability of an Instance","text":"

vintner instances resolve

  1. Variability inputs are stored in the instance template directory.
  2. Variability in variable service template is resolved based on given variability inputs.
  3. Variability-resolved service template is stored in instance template directory.
","tags":["Contributing"]},{"location":"contributing/notes/#deploy-an-instance","title":"Deploy an Instance","text":"

vintner instances deploy

  1. Deployment inputs are copied to the service inputs directory.
  2. Deployment command is sent to orchestrator. Variability-resolved service template is used.
","tags":["Contributing"]},{"location":"contributing/notes/#continue-an-instance-deployment","title":"Continue an Instance Deployment","text":"

vintner instances continue

  1. Continue deployment command is sent to the orchestrator. Variability-resolve service templated is used. For example, to rerun a failed deployment.
","tags":["Contributing"]},{"location":"contributing/notes/#swap-an-instance-template","title":"Swap an Instance Template","text":"

vintner instances swap

  1. New template is copied into (new) instance template directory
  2. Instance info is updated
","tags":["Contributing"]},{"location":"contributing/notes/#update-an-instance","title":"Update an Instance","text":"

vintner instances update

  1. Deployment inputs are copied to the service inputs directory.
  2. Instance info is updated.
  3. Update command is sent to orchestrator. Variability-resolved service template is used.

Note, requires to resolve variability first. In contrast to deploying an instance, deployment inputs can be changed and the update command instead of the deploy command is sent to the orchestrator.

","tags":["Contributing"]},{"location":"contributing/notes/#adapt-an-instance","title":"Adapt an Instance","text":"

vintner instances adapt

  1. Sensor data is collected and stored as variability inputs.
  2. Variability is resolved based on the new variability inputs.
  3. Instance is updated based on the new variability-resolved topology template.
  4. Instance info is updated.

In contrast to updating an instance template, adapting an instance regenerates the variability-resolve topology template and does not swap the variable topology template. In contrast to updating an instance, variability inputs change and variability is resolved.

","tags":["Contributing"]},{"location":"contributing/notes/#undeploy-an-instance","title":"Undeploy an Instance","text":"

vintner instances undeploy

  1. Undeployment command is sent to orchestrator.
","tags":["Contributing"]},{"location":"contributing/notes/#delete-an-instance","title":"Delete an Instance","text":"

vintner instances delete

  1. Instance directory is deleted.

Note, this does not undeploy the instance.

","tags":["Contributing"]},{"location":"contributing/notes/#conventions","title":"Conventions","text":"
  • get${data} returns path to the data, e.g., Instance#getServiceInputs.
  • load${data} returns data loaded from the filesystem, e.g. Instance#loadServiceInputs.
  • set${data} writes data to filesystem, e.g. Instance#setService.
","tags":["Contributing"]},{"location":"contributing/notes/#general-helpful-tools-on-linux","title":"General Helpful Tools on Linux","text":"
sudo apt-get update -y && sudo apt-get install sudo unzip tree nano wget jq net-tools curl git stress nmap -y\n
","tags":["Contributing"]},{"location":"contributing/notes/#put-some-stress-on-cpu-and-memory","title":"Put Some Stress on CPU and Memory","text":"
stress --cpu 18 --vm 36 --vm-bytes 1024M\n
","tags":["Contributing"]},{"location":"contributing/notes/#reverse-ssh-tunnel","title":"Reverse SSH Tunnel","text":"
ssh -N -R 2999:192.168.178.46:3001 pi\n
","tags":["Contributing"]},{"location":"contributing/notes/#executable-file-under-windows","title":"Executable File under Windows","text":"
git update-index --chmod=+x <path to file>\n
","tags":["Contributing"]},{"location":"contributing/notes/#bwcloud-blocked-ports","title":"bwCloud Blocked Ports","text":"

Some ports are blocked when using bwCloud: https://www.bw-cloud.org/de/bwcloud_scope/netzwerk

","tags":["Contributing"]},{"location":"contributing/notes/#naming-convention","title":"Naming Convention","text":"

Types should be named according to the following pattern.

type     = [domain]+.entity[.Name]+\nentity   = \"nodes\" | \"relationships\" | \"capabilities\" | \"artifacts\" | \"datatypes\" | \"groups\n         | \"policies\" | \"interfaces\"\nword     = (\"a\" ... \"z\" | \"A\" ... \"Z\")[word]\n*        = word\n
","tags":["Contributing"]},{"location":"contributing/notes/#environment","title":"Environment","text":"

All environment variables are prefixed by OPENTOSCA_VINTNER_. When the following environment variables are read, they are tried to be parsed as JSON. If they cannot be parsed, they are treated as string.

  • OPENTOSCA_VINTNER_VARIABILITY_PRESETS
  • OPENTOSCA_VINTNER_VARIABILITY_INPUT_${KEY}
  • OPENTOSCA_VINTNER_DEPLOYMENT_INPUT_${KEY}

These environment variables should be used with caution.

","tags":["Contributing"]},{"location":"contributing/notes/#lines-of-code","title":"Lines of Code","text":"

Run the following command, to count the lines of code in the src folder.

cloc src\n

The following output has been generated for the commit 3c6d29df6b7fb52b39d46ffe179e6800b60c4398 on September 5th, 2024.

     376 text files.\n     339 unique files.                                          \n      39 files ignored.\n\ngithub.com/AlDanial/cloc v 1.98  T=0.12 s (2936.0 files/s, 260917.4 lines/s)\n-------------------------------------------------------------------------------\nLanguage                     files          blank        comment           code\n-------------------------------------------------------------------------------\nTypeScript                     301           3529           2116          23146\nYAML                             9             79              0            757\nBourne Shell                    21             77             80            250\nEJS                              6             11              0             66\nPython                           1              4              0             10\nCSV                              1              0              0              1\n-------------------------------------------------------------------------------\nSUM:                           339           3700           2196          24230\n-------------------------------------------------------------------------------\n
","tags":["Contributing"]},{"location":"contributing/notes/#adding-a-new-publication","title":"Adding a New Publication","text":"
  1. Step-by-step guide
  2. Zenodo
  3. Integration tests
  4. Entry in Publications
  5. Git tag
  6. Add used links
","tags":["Contributing"]},{"location":"contributing/notes/#used-links","title":"Used Links","text":"

The following links are used in publications.

  • https://github.com/opentosca/opentosca-vintner
  • https://github.com/OpenTOSCA/opentosca-vintner/actions/runs/6100939642/job/16556255878
  • https://vintner.opentosca.org
  • https://vintner.opentosca.org/variability4tosca/specification
  • https://vintner.opentosca.org/variability4tosca/guides/artifacts
  • https://vintner.opentosca.org/variability4tosca/guides/pruning
  • https://vintner.opentosca.org/variability4tosca/guides/modes
","tags":["Contributing"]},{"location":"contributing/notes/#typical-reasons-for-unsat","title":"Typical Reasons for UNSAT","text":"
  1. Technology constraint; can be disabled by technology_constraint: false
  2. Artifact constraint; can be disabled by required_artifact_constraint: false
  3. Required incoming relation constraint; can be disabled by required_incoming_relation_constraint: false
  4. Due to some bug a node type or artifact type is not defined but a corresponding error is not thrown.
","tags":["Contributing"]},{"location":"contributing/notes/#limitations","title":"Limitations","text":"

We briefly discuss limitations of our prototypical implementation.

  1. We expect that each relationship templates is used exactly once.
  2. We expect that relationship at requirement assignments is a string.
  3. We expect that names of hosting relations match /^(.*_)?host(_.*)?$/ since we do not implement the TOSCA type system.
  4. We expect that names of connection relations match /^(.*_)?connection(_.*)?$/ since we do not implement the TOSCA type system.
  5. We only support simple consumers, i.e., directly accessed by properties.
  6. We only support simple producers, i.e., directly accessing the property of a node, using Unfurl eval Jinja filter, Unfurl eval intrinsic function, and TOSCA get_property intrinsic function, and assume that if the property is not found that it is either produced by an undefined property with a default value or by an attribute.
  7. We only support Boolean variability inputs in variability input constraints.
  8. We do not support default expressions of variability inputs in variability input constraints.
","tags":["Contributing"]},{"location":"contributing/release/","title":"Release","text":"

This document holds information about building and publishing a new release.

","tags":["Contributing"]},{"location":"contributing/release/#build","title":"Build","text":"

To locally build the project, run the following command. This will transpile Javascript inside the /build directory. During the build, the string __VERSION__ inside a Javascript file is replace with the current commit hash. The current version can be checked using vintner --version.

./task build\n
","tags":["Contributing"]},{"location":"contributing/release/#package","title":"Package","text":"

Warning

This only works on Linux.

To locally package the project, run the following command. This will package the previously transpiled Javascript using pkg and generate binaries inside the /dist directory.

./task package\n

The issue considering the failed bytecode generation of MiniSat is known and can be ignored in our case.

","tags":["Contributing"]},{"location":"contributing/release/#github","title":"GitHub","text":"

Vintner is available as GitHub release. On pushes to the main branch, the Release workflow is triggered. This workflow runs several tests, builds binaries, signs binaries, creates a new GitHub release, and deploys the documentation. An already existing GitHub release and latest tag is deleted. There is only one release at total.

However, there is also the Build workflow. This workflow basically has the same steps as the Release workflow but does create his own GitHub release and does not deploy the docs.

","tags":["Contributing"]},{"location":"contributing/release/#npm","title":"NPM","text":"

Vintner is available as npm package opentosca-vintner. New versions are published manually. To publish a new version, first update the version number in package.json and then run

./task release:npm\n
","tags":["Contributing"]},{"location":"contributing/release/#docker","title":"Docker","text":"

Vintner is available as Docker image on https://github.com/OpenTOSCA/opentosca-vintner/pkgs/container/opentosca-vintner. They are automatically build and pushed during the Release workflow.

Locally build the image as follows.

docker build -t opentosca/opentosca-vintner:local -f docker/Dockerfile .\n
","tags":["Contributing"]},{"location":"contributing/release/#choco","title":"Choco","text":"

There is also a choco package opentosca-vintner. New versions are published manually. See https://docs.chocolatey.org/en-us/create/create-packages-quick-start for more information.

First, log into the choco account.

choco apikey --api-key [API_KEY_HERE] --source https://push.chocolatey.org\n

Publish a new version as follows. This will use the latest release.

./task release:choco\n
","tags":["Contributing"]},{"location":"contributing/release/#zenodo","title":"Zenodo","text":"

Vintner is available on Zenodo with unique DOI https://doi.org/10.5281/zenodo.10155277. New versions are published manually.

To publish a new version, run the Zenodo workflow on GitHub. This workflow will create a draft of a new version based on the latest GitHub release. The version must be manually published on Zenodo.

","tags":["Contributing"]},{"location":"contributing/setup/","title":"Setup","text":"

This document holds instructions on the development setup.

","tags":["Contributing"]},{"location":"contributing/setup/#nodejs","title":"Node.js","text":"

We use Node.js version 18.15.0. To install node, use nvm or nvm-windows.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash\nsource ~/.bashrc\n\nnvm install 18.15.0\nnvm use 18.15.0\n
","tags":["Contributing"]},{"location":"contributing/setup/#yarn","title":"Yarn","text":"

We use Yarn 2 (Modern). Install it as follows.

corepack enable\n
","tags":["Contributing"]},{"location":"contributing/setup/#tasks","title":"Tasks","text":"

We use ./task as build tool.

","tags":["Contributing"]},{"location":"contributing/setup/#using-tasks","title":"Using Tasks","text":"

Execute a task as follows. On Windows, execute it using, e.g., Git Bash.

./task [task]\n

Get an overview of tasks as follows.

./task tasks:list\n

Get help for a specific task as follows.

./task tasks:help [task]\n
","tags":["Contributing"]},{"location":"contributing/setup/#writing-tasks","title":"Writing Tasks","text":"

Tasks can be written in Bash, Typescript, and Python and are located in ./tasks/some/command/task{.sh,.ts,.py}. The following environment variables are available.

Environment Description TASK_BINARY The absolute path of ./task. TASK_ROOT_DIR The absolute path of the root directory of the project. TASK_TASK_DIR The absolute path of the directory in which the task is located.

Some hints:

  • There is no need to include #!/usr/bin/bash or set -e in Bash tasks.
  • Bash tasks are executed from TASK_ROOT_DIR.
  • To add a summary, place a single line in ${TASK_TASK_DIR}/summary.
  • To add a help text for a task, place the text in ${TASK_TASK_DIR}/help.
  • Always add a new line at the end of every file.
","tags":["Contributing"]},{"location":"contributing/setup/#repository","title":"Repository","text":"

The repository is a monorepo consisting of the CLI, server, docs, tests, etc. Clone it as follows.

git clone https://github.com/opentosca/opentosca-vintner.git\ncd opentosca-vintner\ngit lfs install\ngit lfs pull\n./task install\n./task tasks:build\n./task examples:pull:link\n
","tags":["Contributing"]},{"location":"contributing/setup/#large-files","title":"Large Files","text":"

Larges files, such as binaries or archives used in examples, are added using git lfs. This includes the file extensions .bin, .gz, .tar, .zip, .xz, and .jar.

","tags":["Contributing"]},{"location":"contributing/setup/#signed-commits","title":"Signed Commits","text":"

Commits are required to be signed. Therefore, register a signing key as follows.

  • Generating a new GPG key
  • Adding a GPG key to your GitHub account
  • Telling Git About Your Signing Key
  • Signing Commits

Enable auto-signing inside the repository.

git config commit.gpgsign true\n
","tags":["Contributing"]},{"location":"contributing/setup/#jetbrains","title":"JetBrains","text":"

Warning

WebStorm Version 2022.3.3 seems to have problems with breakpoints when src/resolver/graph.ts is involved. However, WebStorm Version 2022.3.2 works fine.

We use WebStorm, which is free for students. Install Webstorm using JetBrains Toolbox.

","tags":["Contributing"]},{"location":"contributing/setup/#eslint","title":"ESLint","text":"

Open the Project Settings using Ctrl + Alt + S. ESLint should be configured as given in the figure below with the following pattern.

{**/*,*}.{ts}\n

Figure 1: IntelliJ ESLint Settings","tags":["Contributing"]},{"location":"contributing/setup/#prettier","title":"Prettier","text":"

Open the Project Settings using Ctrl + Alt + S. Prettier should be configured as given in the figure below with the following pattern.

{**/*,*}.{ts,json,yaml,yml}\n

Figure 2: IntelliJ Prettier Settings","tags":["Contributing"]},{"location":"contributing/setup/#excluded-directories","title":"Excluded Directories","text":"

The following directories should be excluded from search by the IDE.

  • .nyc_output
  • docs/.venv
  • build
  • build-tasks
  • coverage
  • yarn
  • dist
  • dist-docs
  • node_modules
","tags":["Contributing"]},{"location":"edmm/","title":"EDMM Compliance Specification 1.0 Release Candidate","text":"

Warning

This specification is experimental.

This document specifies how to achieve EDMM compliance when modeling and gives additional insights. This document does not specify how to achieve EDMM compatibility on a technical level. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["EDMM","Specification"]},{"location":"edmm/#general","title":"General","text":"
  1. Must use only features as defined by TOSCA Light extended by Variability4TOSCA.
","tags":["EDMM","Specification"]},{"location":"edmm/#node-types","title":"Node Types","text":"

A built-in type must not be compliant with EDMM restrictions since such a type is internally used for our implementation of the EDMM-DTSM mapping.

  1. A built-in and abstract node type is a normative type, which cannot be instantiated since it is missing, e.g., its management operations or deployment artifact.
  2. A built-in and concrete node type is a normative type, which can be instantiated.
  3. A custom and abstract type is a user-defined type, which cannot be instantiated since it is missing, e.g., its management operations or deployment artifact.
  4. A custom and concrete type is a user-defined type, which can be instantiated.
","tags":["EDMM","Specification"]},{"location":"edmm/#management-operations","title":"Management Operations","text":"
  1. A node type might define the create, configure, create, stop, and delete operation of the Management interface using management as interface name.
  2. A management operation is an inline bash script, which is executed in the root of the application directory.
  3. A built-in node type defines its management operations in its node type, e.g., node.service.application.
  4. A custom and abstract node type defines its management operations in its node type.
  5. A custom and concrete node type defines its management operations in its node template, e.g., shop.component derived from node.application.
","tags":["EDMM","Specification"]},{"location":"edmm/#implementations","title":"Implementations","text":"
  1. A node type t might have node type implementations which are node types that (i) are derived from t and (ii) implement the tosca.interfaces.node.lifecycle.Standard interface.
  2. A node type implementation is generated and not manually defined.
  3. A node type implementation might call operations of the Management interface.
  4. A node type implementation represent the EDMM-DTSM mapping.
","tags":["EDMM","Specification"]},{"location":"edmm/#property-assignments","title":"Property Assignments","text":"
  1. A built-in node type can define property assignments.
  2. A custom and abstract node type can define property assignments.
  3. A custom and concrete node type must not define property assignments.
  4. Only use strings as data types.
  5. Always quote string values.
","tags":["EDMM","Specification"]},{"location":"edmm/#attributes","title":"Attributes","text":"

The prototype currently does not support custom template attributes, i.e., writing back outputs from management operations.

","tags":["EDMM","Specification"]},{"location":"edmm/#application-directory","title":"Application Directory","text":"
  1. A software.application node template hosted on a remote.machine node template has its own dedicated application directory.
  2. The .vintner directory is a reserved directory in the application directory.
","tags":["EDMM","Specification"]},{"location":"edmm/#deployment-artifacts","title":"Deployment Artifacts","text":"
  1. A node template can have conditional deployment artifacts.
  2. A node type cannot have conditional deployment artifacts.
  3. A custom node type cannot have deployment artifacts.
  4. A deployment artifact must be named by its artifact type but any . replaced with _.
","tags":["EDMM","Specification"]},{"location":"edmm/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["EDMM","Specification"]},{"location":"edmm/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["EDMM","Specification"]},{"location":"edmm/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["EDMM","Specification"]},{"location":"normative/","title":"TOSCA Vintner Profile","text":"","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#tosca-vintner-profile-10-release-candidate","title":"TOSCA Vintner Profile 1.0 Release Candidate","text":"

This document specifies the TOSCA Vintner profile. This profile includes normative TOSCA types for the domain of cloud computing. Standardizing such normative TOSCA types improves interoperability. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#tosca-vintner-core-profile","title":"TOSCA Vintner Core Profile","text":"

The core normative TOSCA type definitions contain high-level type definitions.

","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#metadata","title":"Metadata","text":"

We define the following metadata.

Metadata Description vintner_ignore Flag for ignoring an entity (type) during generation, e.g., to omit a property from the environment. vintner_name Overrides the original name, e.g., override a property name with its correct environment name. vintner_generated Flag for marking an entity (type) that has been generated. vintner_orchestrator Orchestrator name for which the entity (type) has been generated. vintner_abstract Flag for marking an entity type as abstract. vintner_normative Flag for marking an entity type as normative (considering this specification). vintner_link URL which points, e.g., to the documentation page of the entity type.","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#artifact-types","title":"Artifact Types","text":"

We specify the following normative artifact types. An overview is given in Figure tosca-vintner-profile-core1.

Figure C1: TOSCA Vintner Core Artifact Types","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#artifact","title":"artifact","text":"
artifact:\nderived_from: tosca.artifacts.Root\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#sourcearchive","title":"source.archive","text":"

application packaged as archive

source.archive:\nderived_from: artifact\nmetadata:\nvintner_normative: 'true'\nproperties:\nextra_opts:\ntype: list\nentry_schema:\ntype: string\nrequired: false\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#systempackage","title":"system.package","text":"
system.package:\nderived_from: artifact\nmetadata:\nvintner_normative: 'true'\nproperties:\nscript:\ntype: string\nrequired: false\ndescription: URL of an installation script\nrepository:\ntype: string\nrequired: false\ndescription: name of the repository (required if source is set)\nkey:\ntype: string\nrequired: false\ndescription: URL of the apt key which signs the apt repository (required if source is set)\nsource:\ntype: string\nrequired: false\ndescription: source of the repository\ndependencies:\ntype: string\nrequired: false\ndescription: Comma separated list of apt packages that are additionally installed\nenv:\ntype: string\nrequired: false\ndescription: Space separated env variables\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#containerimage","title":"container.image","text":"

expects image reference in \"file\"

container.image:\nderived_from: artifact\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#machineimage","title":"machine.image","text":"

expects image reference in \"file\"

machine.image:\nderived_from: artifact\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#dbmsimage","title":"dbms.image","text":"

expects image reference in \"file\"

dbms.image:\nderived_from: artifact\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#cacheimage","title":"cache.image","text":"

expects image reference in \"file\"

cache.image:\nderived_from: artifact\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#interface-types","title":"Interface Types","text":"

We specify the following normative interface types. An overview is given in Figure tosca-vintner-profile-core2.

Figure C2: TOSCA Vintner Core Interface Types","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#interface","title":"interface","text":"
interface:\nderived_from: tosca.interfaces.Root\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#management","title":"management","text":"
management:\nderived_from: interface\nmetadata:\nvintner_normative: 'true'\noperations:\ncreate:\ndescription: management lifecycle create operation.\nconfigure:\ndescription: management lifecycle configure operation.\nstart:\ndescription: management lifecycle start operation.\nstop:\ndescription: management lifecycle stop operation.\ndelete:\ndescription: management lifecycle delete operation.\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#node-types","title":"Node Types","text":"

We specify the following normative node types. An overview is given in Figure tosca-vintner-profile-core3.

Figure C3: TOSCA Vintner Core Node Types","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#node","title":"node","text":"
node:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#cloudprovider","title":"cloud.provider","text":"
cloud.provider:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#cloudservice","title":"cloud.service","text":"
cloud.service:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#softwareapplication","title":"software.application","text":"
software.application:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_name:\ntype: string\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\ninterfaces:\nmanagement:\ntype: management\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#serviceapplication","title":"service.application","text":"
service.application:\nderived_from: software.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\napplication_port:\ntype: string\nmetadata:\nvintner_name: PORT\napplication_protocol:\ntype: string\nattributes:\napplication_address:\ntype: string\napplication_endpoint:\ntype: string\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#softwareruntime","title":"software.runtime","text":"
software.runtime:\nderived_from: software.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#containerruntime","title":"container.runtime","text":"
container.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#machine","title":"machine","text":"
machine:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\nmachine_name:\ntype: string\nattributes:\napplication_address:\ntype: string\nmanagement_address:\ntype: string\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#localmachine","title":"local.machine","text":"
local.machine:\nderived_from: machine\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#remotemachine","title":"remote.machine","text":"
remote.machine:\nderived_from: machine\nmetadata:\nvintner_normative: 'true'\nproperties:\nmachine_name:\ntype: string\nports:\ntype: list\nentry_schema:\ntype: string\nflavor:\ntype: string\ndefault: m1.medium\nnetwork:\ntype: string\nssh_user:\ntype: string\nssh_key_name:\ntype: string\nssh_key_file:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#virtualmachine","title":"virtual.machine","text":"
virtual.machine:\nderived_from: remote.machine\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#physicalmachine","title":"physical.machine","text":"
physical.machine:\nderived_from: remote.machine\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#database","title":"database","text":"
database:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#relationaldatabase","title":"relational.database","text":"
relational.database:\nderived_from: database\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#dbms","title":"dbms","text":"
dbms:\nderived_from: software.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#relationaldbms","title":"relational.dbms","text":"
relational.dbms:\nderived_from: dbms\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#cache","title":"cache","text":"
cache:\nderived_from: software.application\nproperties:\ncache_name:\ntype: string\ncache_port:\ntype: string\nattributes:\napplication_endpoint:\ntype: string\napplication_address:\ntype: string\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#storage","title":"storage","text":"
storage:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#blockstorage","title":"block.storage","text":"
block.storage:\nderived_from: storage\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#objectstorage","title":"object.storage","text":"
object.storage:\nderived_from: storage\nmetadata:\nvintner_normative: 'true'\nproperties:\nstorage_name:\ntype: string\nstorage_dialect:\ntype: string\nstorage_user:\ntype: string\nstorage_token:\ntype: string\nattributes:\nstorage_endpoint:\ntype: string\nstorage_token:\ntype: string\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#filestorage","title":"file.storage","text":"
file.storage:\nderived_from: storage\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#ingress","title":"ingress","text":"
ingress:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\napplication_port:\ntype: string\napplication_protocol:\ntype: string\nattributes:\napplication_address:\ntype: string\nrequirements:\n- application:\ncapability: tosca.capabilities.Endpoint\nrelationship: tosca.relationships.ConnectsTo\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#tosca-vintner-extended-profile","title":"TOSCA Vintner Extended Profile","text":"

The extended normative TOSCA type definitions contain additional provider-specific type definitions which are derived from the core type definitions.

","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#artifact-types_1","title":"Artifact Types","text":"

We specify the following normative artifact types. An overview is given in Figure tosca-vintner-profile-extended1.

Figure E1: Artifact Types","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#dockerimage","title":"docker.image","text":"

expects image reference in \"file\"

docker.image:\nderived_from: container.image\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#ziparchive","title":"zip.archive","text":"
zip.archive:\nderived_from: source.archive\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#tararchive","title":"tar.archive","text":"
tar.archive:\nderived_from: source.archive\nmetadata:\nvintner_normative: 'true'\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#aptpackage","title":"apt.package","text":"
apt.package:\nderived_from: system.package\nmetadata:\nvintner_normative: 'true'\nproperties:\nscript:\ntype: string\nrequired: false\ndescription: URL of an installation script\nrepository:\ntype: string\nrequired: false\ndescription: name of the repository (required if source is set)\nkey:\ntype: string\nrequired: false\ndescription: URL of the apt key which signs the apt repository (required if source is set)\nsource:\ntype: string\nrequired: false\ndescription: source of the repository\ndependencies:\ntype: string\nrequired: false\ndescription: Comma separated list of apt packages that are additionally installed\nenv:\ntype: string\nrequired: false\ndescription: Space separated env variables\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#node-types_1","title":"Node Types","text":"

We specify the following normative node types. An overview is given in Figure tosca-vintner-profile-extended2.

Figure E2: Node Types","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#nodejsruntime","title":"nodejs.runtime","text":"
nodejs.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\ndefault: nodejs\nartifacts:\napt_package:\ntype: apt.package\nfile: nodejs\nproperties:\nscript: https://deb.nodesource.com/setup_18.x\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#nodejsserviceapplication","title":"nodejs.service.application","text":"
nodejs.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: nodejs18\ninterfaces:\nmanagement:\ntype: management\noperations:\nconfigure: npm ci\nstart: npm start\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#reactjsserviceapplication","title":"reactjs.service.application","text":"
reactjs.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: nodejs18\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#pythonruntime","title":"python.runtime","text":"
python.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nartifacts:\napt_package:\ntype: apt.package\nfile: python-is-python3\nproperties:\ndependencies:\ntype: string\ndefault: python3 python3-pip python3-venv\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#pythonserviceapplication","title":"python.service.application","text":"
python.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: python3\ninterfaces:\nmanagement:\ntype: management\noperations:\nconfigure: pip install -r requirements.txt\nstart: python main.py\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#goserviceapplication","title":"go.service.application","text":"
go.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: go122\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#javaruntime","title":"java.runtime","text":"
java.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\ndefault: java\nartifacts:\napt_package:\ntype: apt.package\nfile: openjdk-18-jre-headless\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#javaserviceapplication","title":"java.service.application","text":"
java.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: java21\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#dotnetruntime","title":"dotnet.runtime","text":"
dotnet.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\ndefault: java\nartifacts:\napt_package:\ntype: apt.package\nfile: dotnet-sdk-8.0\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#csharpserviceapplication","title":"csharp.service.application","text":"
csharp.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: dotnet8\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#binaryserviceapplication","title":"binary.service.application","text":"
binary.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: binary\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpprovider","title":"gcp.provider","text":"
gcp.provider:\nderived_from: cloud.provider\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\n_hosting:\ntype: string\ndefault: gcp\ngcp_region:\ntype: string\ngcp_service_account_file:\ntype: string\ngcp_project:\ntype: string\ninterfaces:\nStandard:\noperations:\ncreate: exit 0\ndelete: exit 0\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpservice","title":"gcp.service","text":"
gcp.service:\nderived_from: cloud.service\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\n_hosting:\ntype: string\ndefault: gcp\ngcp_service:\ntype: string\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpcloudrun","title":"gcp.cloudrun","text":"
gcp.cloudrun:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: run.googleapis.com\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpcloudsql","title":"gcp.cloudsql","text":"
gcp.cloudsql:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: sqladmin.googleapis.com\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpappengine","title":"gcp.appengine","text":"
gcp.appengine:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: appengine.googleapis.com\nrequirements:\n- build:\ncapability: tosca.capabilities.Root\nrelationship: tosca.relationships.DependsOn\n- reporting:\ncapability: tosca.capabilities.Root\nrelationship: tosca.relationships.DependsOn\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpappenginereporting","title":"gcp.appenginereporting","text":"
gcp.appenginereporting:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: appenginereporting.googleapis.com\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpcloudbuild","title":"gcp.cloudbuild","text":"
gcp.cloudbuild:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: cloudbuild.googleapis.com\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpkubernetesengine","title":"gcp.kubernetesengine","text":"
gcp.kubernetesengine:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: container.googleapis.com\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpcloudstorage","title":"gcp.cloudstorage","text":"
gcp.cloudstorage:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: storage.googleapis.com\nattributes:\nstorage_dialect:\ntype: string\ndefault: gcp\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#gcpmemorystore","title":"gcp.memorystore","text":"
gcp.memorystore:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: redis.googleapis.com\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#dockerengine","title":"docker.engine","text":"

Installs Docker Engine listening on the unix socket as well as on tcp://0.0.0.0:2375

docker.engine:\nderived_from: container.runtime\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\ndefault: docker\n_hosting:\ntype: string\ndefault: docker\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#kubernetescluster","title":"kubernetes.cluster","text":"
kubernetes.cluster:\nderived_from: cloud.service\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\n_hosting:\ntype: string\ndefault: kubernetes\nk8s_host:\ntype: string\nk8s_ca_cert_file:\ntype: string\nk8s_client_cert_file:\ntype: string\nk8s_client_key_file:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\ninterfaces:\nStandard:\noperations:\ncreate: exit 0\ndelete: exit 0\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#openstackprovider","title":"openstack.provider","text":"
openstack.provider:\nderived_from: cloud.provider\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\n_hosting:\ntype: string\ndefault: openstack\nos_region_name:\ntype: string\nos_auth_type:\ntype: string\nos_auth_url:\ntype: string\nos_identity_api_version:\ntype: string\nos_interface:\ntype: string\nos_application_credential_id:\ntype: string\nos_application_credential_secret:\ntype: string\ninterfaces:\nStandard:\noperations:\ncreate: exit 0\ndelete: exit 0\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#mysqldbms","title":"mysql.dbms","text":"
mysql.dbms:\nderived_from: relational.dbms\nmetadata:\nvintner_normative: 'true'\nproperties:\ndbms_name:\ntype: string\napplication_name:\ntype: string\ndbms_password:\ntype: string\ndbms_ssl_mode:\ntype: string\ndefault: None\nattributes:\napplication_address:\ntype: string\napplication_port:\ntype: string\nmanagement_address:\ntype: string\nmanagement_port:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#mysqldatabase","title":"mysql.database","text":"
mysql.database:\nderived_from: relational.database\nmetadata:\nvintner_normative: 'true'\nproperties:\ndatabase_name:\ntype: string\ndatabase_user:\ntype: string\ndatabase_password:\ntype: string\nattributes:\napplication_address:\ntype: string\napplication_port:\ntype: string\ncapabilities:\ndatabase:\ntype: tosca.capabilities.Endpoint.Database\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#minioserver","title":"minio.server","text":"
minio.server:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nproperties:\naccess_key:\ntype: string\nmetadata:\nvintner_name: MINIO_ROOT_USER\nsecret_key:\ntype: string\nmetadata:\nvintner_name: MINIO_ROOT_PASSWORD\nattributes:\nstorage_dialect:\ntype: string\ndefault: minio\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#redisserver","title":"redis.server","text":"
redis.server:\nderived_from: cache\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_protocol:\ntype: string\ndefault: redis\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#appendix-a-tosca-vintner-profile","title":"Appendix A \"TOSCA Vintner Profile\"","text":"

This appendix contains the TOSCA Vintner profile. The profile is also available as download.

tosca_definitions_version: tosca_simple_yaml_1_3\ndescription: TOSCA Profile for OpenTOSCA Vintner\nmetadata:\nvintner_normative: 'true'\ntemplate_name: TOSCA Vintner Profile\ntemplate_author: Miles St\u00f6tzner\ntemplate_contact: miles.stoetzner@iste.uni-stuttgart.de\ntemplate_link: https://vintner.opentosca.org\ntemplate_version: 1.0.0-draft\ntemplate_id: tosca-vintner-profile\ntemplate_license: https://www.apache.org/licenses/LICENSE-2.0\nacknowledgments: Partially funded by the [German Federal Ministry for Economic Affairs and Climate Action (BMWK)](https://www.bmwk.de) as part of the research project [SofDCar (19S21002)](https://sofdcar.de).\nimports:\n- ./tosca-vintner-profile-core.yaml\n- ./tosca-vintner-profile-extended.yaml\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#appendix-b-tosca-vintner-core-profile","title":"Appendix B \"TOSCA Vintner Core Profile\"","text":"

This appendix contains the TOSCA Vintner Core profile. The profile is also available as download.

tosca_definitions_version: tosca_simple_yaml_1_3\ndescription: TOSCA Profile for OpenTOSCA Vintner (Core)\nmetadata:\nvintner_normative: 'true'\ntemplate_name: TOSCA Vintner Profile (Core)\ntemplate_author: Miles St\u00f6tzner\ntemplate_contact: miles.stoetzner@iste.uni-stuttgart.de\ntemplate_link: https://vintner.opentosca.org\ntemplate_version: 1.0.0-draft\ntemplate_id: tosca-vintner-profile\ntemplate_license: https://www.apache.org/licenses/LICENSE-2.0\nacknowledgments: Partially funded by the [German Federal Ministry for Economic Affairs and Climate Action (BMWK)](https://www.bmwk.de) as part of the research project [SofDCar (19S21002)](https://sofdcar.de).\nartifact_types:\nartifact:\nderived_from: tosca.artifacts.Root\nmetadata:\nvintner_normative: 'true'\nsource.archive:\nderived_from: artifact\ndescription: application packaged as archive\nmetadata:\nvintner_normative: 'true'\nproperties:\nextra_opts:\ntype: list\nentry_schema:\ntype: string\nrequired: false\nsystem.package:\nderived_from: artifact\nmetadata:\nvintner_normative: 'true'\nproperties:\nscript:\ntype: string\nrequired: false\ndescription: URL of an installation script\nrepository:\ntype: string\nrequired: false\ndescription: name of the repository (required if source is set)\nkey:\ntype: string\nrequired: false\ndescription: URL of the apt key which signs the apt repository (required if source is set)\nsource:\ntype: string\nrequired: false\ndescription: source of the repository\ndependencies:\ntype: string\nrequired: false\ndescription: Comma separated list of apt packages that are additionally installed\nenv:\ntype: string\nrequired: false\ndescription: Space separated env variables\ncontainer.image:\nderived_from: artifact\ndescription: expects image reference in \"file\"\nmetadata:\nvintner_normative: 'true'\nmachine.image:\nderived_from: artifact\ndescription: expects image reference in \"file\"\nmetadata:\nvintner_normative: 'true'\ndbms.image:\nderived_from: artifact\ndescription: expects image reference in \"file\"\nmetadata:\nvintner_normative: 'true'\ncache.image:\nderived_from: artifact\ndescription: expects image reference in \"file\"\nmetadata:\nvintner_normative: 'true'\ninterface_types:\ninterface:\nderived_from: tosca.interfaces.Root\nmetadata:\nvintner_normative: 'true'\nmanagement:\nderived_from: interface\nmetadata:\nvintner_normative: 'true'\noperations:\ncreate:\ndescription: management lifecycle create operation.\nconfigure:\ndescription: management lifecycle configure operation.\nstart:\ndescription: management lifecycle start operation.\nstop:\ndescription: management lifecycle stop operation.\ndelete:\ndescription: management lifecycle delete operation.\nnode_types:\nnode:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncloud.provider:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\ncloud.service:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\nsoftware.application:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_name:\ntype: string\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\ninterfaces:\nmanagement:\ntype: management\nservice.application:\nderived_from: software.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\napplication_port:\ntype: string\nmetadata:\nvintner_name: PORT\napplication_protocol:\ntype: string\nattributes:\napplication_address:\ntype: string\napplication_endpoint:\ntype: string\nsoftware.runtime:\nderived_from: software.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\ncontainer.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nmachine:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\nmachine_name:\ntype: string\nattributes:\napplication_address:\ntype: string\nmanagement_address:\ntype: string\nlocal.machine:\nderived_from: machine\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nremote.machine:\nderived_from: machine\nmetadata:\nvintner_normative: 'true'\nproperties:\nmachine_name:\ntype: string\nports:\ntype: list\nentry_schema:\ntype: string\nflavor:\ntype: string\ndefault: m1.medium\nnetwork:\ntype: string\nssh_user:\ntype: string\nssh_key_name:\ntype: string\nssh_key_file:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nvirtual.machine:\nderived_from: remote.machine\nphysical.machine:\nderived_from: remote.machine\ndatabase:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\nrelational.database:\nderived_from: database\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ndbms:\nderived_from: software.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nrelational.dbms:\nderived_from: dbms\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\ncache:\nderived_from: software.application\nproperties:\ncache_name:\ntype: string\ncache_port:\ntype: string\nattributes:\napplication_endpoint:\ntype: string\napplication_address:\ntype: string\nstorage:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nblock.storage:\nderived_from: storage\nmetadata:\nvintner_normative: 'true'\nobject.storage:\nderived_from: storage\nmetadata:\nvintner_normative: 'true'\nproperties:\nstorage_name:\ntype: string\nstorage_dialect:\ntype: string\nstorage_user:\ntype: string\nstorage_token:\ntype: string\nattributes:\nstorage_endpoint:\ntype: string\nstorage_token:\ntype: string\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\nfile.storage:\nderived_from: storage\nmetadata:\nvintner_normative: 'true'\ningress:\nderived_from: node\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\napplication_port:\ntype: string\napplication_protocol:\ntype: string\nattributes:\napplication_address:\ntype: string\nrequirements:\n- application:\ncapability: tosca.capabilities.Endpoint\nrelationship: tosca.relationships.ConnectsTo\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#appendix-c-tosca-vintner-extended-profile","title":"Appendix C \"TOSCA Vintner Extended Profile\"","text":"

This appendix contains the TOSCA Vintner Extended profile. The profile is also available as download.

tosca_definitions_version: tosca_simple_yaml_1_3\ndescription: TOSCA Profile for OpenTOSCA Vintner (Extended)\nmetadata:\nvintner_normative: 'true'\ntemplate_name: TOSCA Vintner Profile (Extended)\ntemplate_author: Miles St\u00f6tzner\ntemplate_contact: miles.stoetzner@iste.uni-stuttgart.de\ntemplate_link: https://vintner.opentosca.org\ntemplate_version: 1.0.0-draft\ntemplate_id: tosca-vintner-profile\ntemplate_license: https://www.apache.org/licenses/LICENSE-2.0\nacknowledgments: Partially funded by the [German Federal Ministry for Economic Affairs and Climate Action (BMWK)](https://www.bmwk.de) as part of the research project [SofDCar (19S21002)](https://sofdcar.de).\nimports:\n- tosca-vintner-profile-core.yaml\nartifact_types:\ndocker.image:\nderived_from: container.image\ndescription: expects image reference in \"file\"\nmetadata:\nvintner_normative: 'true'\nzip.archive:\nderived_from: source.archive\nmetadata:\nvintner_normative: 'true'\ntar.archive:\nderived_from: source.archive\nmetadata:\nvintner_normative: 'true'\napt.package:\nderived_from: system.package\nmetadata:\nvintner_normative: 'true'\nproperties:\nscript:\ntype: string\nrequired: false\ndescription: URL of an installation script\nrepository:\ntype: string\nrequired: false\ndescription: name of the repository (required if source is set)\nkey:\ntype: string\nrequired: false\ndescription: URL of the apt key which signs the apt repository (required if source is set)\nsource:\ntype: string\nrequired: false\ndescription: source of the repository\ndependencies:\ntype: string\nrequired: false\ndescription: Comma separated list of apt packages that are additionally installed\nenv:\ntype: string\nrequired: false\ndescription: Space separated env variables\nnode_types:\nnodejs.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\ndefault: nodejs\nartifacts:\napt_package:\ntype: apt.package\nfile: nodejs\nproperties:\nscript: https://deb.nodesource.com/setup_18.x\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nnodejs.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: nodejs18\ninterfaces:\nmanagement:\ntype: management\noperations:\nconfigure: npm ci\nstart: npm start\nreactjs.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: nodejs18\npython.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nartifacts:\napt_package:\ntype: apt.package\nfile: python-is-python3\nproperties:\ndependencies:\ntype: string\ndefault: python3 python3-pip python3-venv\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\npython.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: python3\ninterfaces:\nmanagement:\ntype: management\noperations:\nconfigure: pip install -r requirements.txt\nstart: python main.py\ngo.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: go122\njava.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\ndefault: java\nartifacts:\napt_package:\ntype: apt.package\nfile: openjdk-18-jre-headless\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\njava.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: java21\ndotnet.runtime:\nderived_from: software.runtime\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\ndefault: java\nartifacts:\napt_package:\ntype: apt.package\nfile: dotnet-sdk-8.0\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\ncsharp.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: dotnet8\nbinary.service.application:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\napplication_language:\ntype: string\ndefault: binary\ngcp.provider:\nderived_from: cloud.provider\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\n_hosting:\ntype: string\ndefault: gcp\ngcp_region:\ntype: string\ngcp_service_account_file:\ntype: string\ngcp_project:\ntype: string\ninterfaces:\nStandard:\noperations:\ncreate: exit 0\ndelete: exit 0\ngcp.service:\nderived_from: cloud.service\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\n_hosting:\ntype: string\ndefault: gcp\ngcp_service:\ntype: string\ngcp.cloudrun:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: run.googleapis.com\ngcp.cloudsql:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: sqladmin.googleapis.com\ngcp.appengine:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: appengine.googleapis.com\nrequirements:\n- build:\ncapability: tosca.capabilities.Root\nrelationship: tosca.relationships.DependsOn\n- reporting:\ncapability: tosca.capabilities.Root\nrelationship: tosca.relationships.DependsOn\ngcp.appenginereporting:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: appenginereporting.googleapis.com\ngcp.cloudbuild:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: cloudbuild.googleapis.com\ngcp.kubernetesengine:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: container.googleapis.com\ngcp.cloudstorage:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: storage.googleapis.com\nattributes:\nstorage_dialect:\ntype: string\ndefault: gcp\ngcp.memorystore:\nderived_from: gcp.service\nmetadata:\nvintner_normative: 'true'\nproperties:\ngcp_service:\ntype: string\ndefault: redis.googleapis.com\ndocker.engine:\nderived_from: container.runtime\ndescription: Installs Docker Engine listening on the unix socket as well as on tcp://0.0.0.0:2375\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_name:\ntype: string\ndefault: docker\n_hosting:\ntype: string\ndefault: docker\nattributes:\nmanagement_address:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nkubernetes.cluster:\nderived_from: cloud.service\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\n_hosting:\ntype: string\ndefault: kubernetes\nk8s_host:\ntype: string\nk8s_ca_cert_file:\ntype: string\nk8s_client_cert_file:\ntype: string\nk8s_client_key_file:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\ninterfaces:\nStandard:\noperations:\ncreate: exit 0\ndelete: exit 0\nopenstack.provider:\nderived_from: cloud.provider\nmetadata:\nvintner_normative: 'true'\nvintner_abstract: 'true'\nproperties:\n_hosting:\ntype: string\ndefault: openstack\nos_region_name:\ntype: string\nos_auth_type:\ntype: string\nos_auth_url:\ntype: string\nos_identity_api_version:\ntype: string\nos_interface:\ntype: string\nos_application_credential_id:\ntype: string\nos_application_credential_secret:\ntype: string\ninterfaces:\nStandard:\noperations:\ncreate: exit 0\ndelete: exit 0\nmysql.dbms:\nderived_from: relational.dbms\nmetadata:\nvintner_normative: 'true'\nproperties:\ndbms_name:\ntype: string\napplication_name:\ntype: string\ndbms_password:\ntype: string\ndbms_ssl_mode:\ntype: string\ndefault: None\nattributes:\napplication_address:\ntype: string\napplication_port:\ntype: string\nmanagement_address:\ntype: string\nmanagement_port:\ntype: string\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\nmysql.database:\nderived_from: relational.database\nmetadata:\nvintner_normative: 'true'\nproperties:\ndatabase_name:\ntype: string\ndatabase_user:\ntype: string\ndatabase_password:\ntype: string\nattributes:\napplication_address:\ntype: string\napplication_port:\ntype: string\ncapabilities:\ndatabase:\ntype: tosca.capabilities.Endpoint.Database\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\nminio.server:\nderived_from: service.application\nmetadata:\nvintner_normative: 'true'\nproperties:\naccess_key:\ntype: string\nmetadata:\nvintner_name: MINIO_ROOT_USER\nsecret_key:\ntype: string\nmetadata:\nvintner_name: MINIO_ROOT_PASSWORD\nattributes:\nstorage_dialect:\ntype: string\ndefault: minio\nredis.server:\nderived_from: cache\nmetadata:\nvintner_normative: 'true'\nproperties:\napplication_protocol:\ntype: string\ndefault: redis\n
","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Vintner","Normative","Profile","Specification"]},{"location":"normative/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Vintner","Normative","Profile","Specification"]},{"location":"queries4tosca/getting-started/","title":"Getting Started","text":"

There is no standardized way to query TOSCA repositories or instance data. Therefore, we introduce Queries4TOSCA which defined a query language for TOSCA. This language provides a graph-based query language which includes path expressions, filters, and pattern matching. This section will give a quick introduction to Queries4TOSCA.

","tags":["Queries4TOSCA","Guide"]},{"location":"queries4tosca/getting-started/#preparation","title":"Preparation","text":"

To run the example queries, we need to install OpenTOSCA Vintner and have a resolved instance of the \"Getting Started\" template. First, clone the repository.

git clone https://github.com/OpenTOSCA/opentosca-vintner.git\ncd opentosca-vintner\ngit lfs install\ngit lfs pull\n./task install\n./task tasks:build\n./task examples:pull:link\n

Then import the template, create an instance, and resolve the variability.

vintner templates import --template getting-started --path examples/xopera-getting-started\nvintner instances init --instance getting-started --template getting-started\nvintner instances resolve --instance getting-started --presets first\n
","tags":["Queries4TOSCA","Guide"]},{"location":"queries4tosca/getting-started/#example-queries","title":"Example Queries","text":"

Queries start with a FROM statement, followed by either templates or instances and the name of the template or the name of the instance, respectively. Inside a SELECT statement, we can enter a path to the data that we want to return.

To get the entire contents of the template, run the following command.

QueryResult
vintner query --query \"\\\n    FROM templates.getting-started \\\n    SELECT .\"\n
tosca_definitions_version: tosca_simple_yaml_1_3\nnode_types:\ntextfile:\nderived_from: tosca.nodes.SoftwareComponent\nproperties:\ncontent:\ntype: string\ninterfaces:\nStandard:\ninputs:\ncontent:\nvalue:\nget_property:\n- SELF\n- content\ntype: string\noperations:\ncreate: create.yaml\ndelete: delete.yaml\ntopology_template:\nnode_templates:\nlocalhost:\ntype: tosca.nodes.Compute\nattributes:\nprivate_address: localhost\npublic_address: localhost\nfirst:\ntype: textfile\nproperties:\ncontent: First Textfile has been selected!\nrequirements:\n- host:\nnode: localhost\n

We can return specific elements by specifying their path. Note, that topology_template can be omitted at the start. The following command returns the contents of the localhost node.

QueryResult
vintner query --query \"\\\n    FROM templates.getting-started \\\n    SELECT node_templates.localhost\"\n
type: tosca.nodes.Compute\nattributes:\nprivate_address: localhost\npublic_address: localhost\n

We can use an asterisk as a wildcard operator to get all child elements. The following command returns a list of all nodes.

QueryResult
vintner query --query \"\\\n    FROM templates.getting-started \\\n    SELECT node_templates.*\"\n
- type: tosca.nodes.Compute\nattributes:\nprivate_address: localhost\npublic_address: localhost\n- type: textfile\nproperties:\ncontent: First Textfile has been selected!\nrequirements:\n- host:\nnode: localhost\n

We can also specify a predicate in square brackets after any part of the path expression to filter elements. The following command will return only nodes of type textfile.

QueryResult
vintner query --query \"\\\n    FROM templates.getting-started \\\n    SELECT node_templates.*[type='textfile']\"\n
type: textfile\nproperties:\ncontent: First Textfile has been selected!\nrequirements:\n- host:\nnode: localhost\n

In cases where we are only interested in some elements of a node, we can use a return structure to restrict the output to certain variables. To do this, put curly braces with key-value pairs behind your path expression. The following command will return only the content property of the first node.

QueryResult
vintner query --query \"\\\n    FROM templates.getting-started \\\n    SELECT node_templates.first{'Type': type, 'Text': properties.content}\"\n
Type: textfile\nText: First Textfile has been selected!\n

This also works on arrays. The following command returns an array that consists of the name and type of each node. Note the lack of quotation marks - we are using a value from the template for both key and value of the return object.

QueryResult
vintner query --query \"\\\n    FROM templates.getting-started \\\n    SELECT node_templates.*{name: type}\"\n
- localhost: tosca.nodes.Compute\n- first: textfile\n

MATCH statements are used to match patterns in the topology of a template. We can \"draw\" the pattern by surrounding nodes with parentheses and connect them to other nodes via arrows. The following statement will return all nodes that have a requirement fulfilled by localhost.

QueryResult
vintner query --query \"\\\n    FROM templates.getting-started \\\n    MATCH ([name='localhost'])<--(node) \\\n    SELECT node\"\n
first:\ntype: textfile\nproperties:\ncontent: First Textfile has been selected!\nrequirements:\n- host:\nnode: localhost\n

This is just a simple example. In a more complex scenario, it would be possible, e.g., to dynamically access the public address of a virtual machine which hosts a database to which a specific component connects.

","tags":["Queries4TOSCA","Guide"]},{"location":"queries4tosca/specification/","title":"Specification","text":"","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#queries4tosca-specification-10-release-candidate","title":"Queries4TOSCA Specification 1.0 Release Candidate","text":"

This document specifies a Query Language for TOSCA (Queries4TOSCA) inspired by XPath and Cypher. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#queries4tosca","title":"Queries4TOSCA","text":"

The following statements can be used inside a query.

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#from","title":"FROM","text":"

A FROM statement is used to denote which templates or instances the query should be executed on. It starts with the literal FROM, followed by a space and the keyword templates or instances. Afterward, either a file path needs to be provided, or an asterisk can be used to select all service templates or instances, respectively.

From = \"FROM\" (\"instances\" | \"templates\") (\"/\" | \".\") (\"*\" | filePath)\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#select","title":"SELECT","text":"

SELECT statements are used to select elements from a template. They are denoted by the keyword SELECT, followed by one or more path expressions separated by a comma. Path expressions are described in detail later. They can start with the special keywords Group or Policy, the name of an element, or a dot to select everything. Afterward, a series of mapping steps, filters, or array accesses can be used. Lastly, there is an optional return structure.

Select = \"SELECT\" Path (\",\" Path)*\nPath = (Group | Policy | Step | \".\") (ArrayAccess | Map | Filter)* ReturnClause?\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#match","title":"MATCH","text":"

MATCH statements are used to search for a pattern inside the nodes of a service template. A pattern consists of at least one node, along with any number of additional nodes and relationships. The syntax for denoting nodes and relationships is described in detail later.

Match = \"MATCH\" Node (Relationship Node)*\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#comments","title":"Comments","text":"

Single-line comments begin with two forward slashes and extend to the end of the current line. Multi-line comments begin with a forward slash and an asterisk and end with another asterisk and slash and can be inserted anywhere. Here are some examples.

// single-line comment\n/* multi-line\ncomment */\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#paths4tosca","title":"Paths4TOSCA","text":"

Paths4TOSCA is a path expression syntax that can navigate the various parts of a service template. Paths are separated by dots. All parts of a topology template (node_templates, inputs, etc...) can be accessed directly. The following expressions can be used.

Symbol Meaning Description name Literal Used to access an element at the current position by its name. . Path Separator Mapping step. * Wildcard Matches any child element. SELF Current Element Matches the element that contains the query (inside templates only). [Condition] Filter Evaluates the predicate inside the brackets for every current element. [Integer] Array Access Returns the element at the specified position. GROUP(name) Group Members Returns the set of nodes that belong to the group with the specified name. POLICY(name) Policy Targets Returns the set of nodes that are targeted by the policy with the specified name. @ Attributes Shortcut for attributes. # Properties Shortcut for properties. $ Requirements Shortcut for requirements. % Capabilities Shortcut for capabilities.

Here are some examples.

node_templates.localhost       // Selecting a node directly by name\nnode_templates.localhost.#     // Selecting attributes of a node\nnode_templates.*               // Selecting all nodes\nGROUP(my-group)                // Selecting all nodes in group 'my-group'\nPOLICY(my-policy)              // Selecting all nodes targeted by policy 'my-policy'\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#predicates","title":"Predicates","text":"

Elements can be filtered by putting a condition in square brackets. Strings need to be surrounded by single or double quotes, and may use regular expressions to find multiple possible matches. If a filter only consists of a single variable with no comparison operator, it will return true if the current element has a matching child element. Putting an exclamation mark before a condition negates it. The following operators can be used.

Symbol Description ! Negation = Equality != Inequality > Greater than < Less than >= Greater than or equal <= Less than or equal =~ Matches regular expression

Here are some examples.

node_templates.*[type='textfile']       // equality\nnode_templates.*[name!='localhost']     // inequality\nnode_templates.*[name=~'^local']        // regular expression\nnode_templates.*[properties]            // existence of field properties\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#array-access","title":"Array Access","text":"

Accessing an element of an array can be accomplished by putting an integer inside square brackets after the path of the array. If the value inside the brackets is an integer, it is interpreted as an array access, otherwise, it is interpreted as a filter. Attempting to access non-existent array indices will return an empty result.

node_templates.*[0]                         // Selecting the first node template\nnode_templates.localhost.requirements[1]    // Selecting the second requirement of a node\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#boolean-operators","title":"Boolean Operators","text":"

Boolean operators can be used in predicates to link two or more conditions. AND returns true if both predicates evaluate to true, OR returns true if at least one of the predicates evaluates to true.

node_templates.*[type='textfile' AND name='first']\nnode_templates.*[name='first' OR name='second']\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#return-structures","title":"Return Structures","text":"

By default, the output that is returned will always consist of the value at the current context specified by the path expression. However, it is possible to define the shape of the returned data. This can be done by putting curly braces with comma-separated key-value pairs at the end of a path expression. Both key and value can either be a literal or a variable. When a variable is used as a key, it needs to evaluate to a string. Instead of a key-value pair, it is also possible to only specify the name of a value, in which case it will automatically be used as the name for the key.

The expression in the first line returns a list of objects comprised of the keys Node Name and Node Type mapped to the names and types of individual nodes. The second expression also returns a list of objects, but their keys are named directly after the values, namely name and type. The expression in the last line returns a list of objects consisting of only a single key-value pair, with the name of each individual node as the key, and the corresponding type as the value.

node_templates.*{'Node Name': name, 'Node Type': type}  // Using custom key names\nnode_templates.*{name, type}                            // Short form\nnode_templates.*{name: type}                            // List of node names mapped to type\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#patterns","title":"Patterns","text":"

The following sections describes how to define patterns, which can be matched using a MATCH statement.

Nodes are denoted by a pair of parentheses. Inside those parentheses, a variable name can be given to the node, otherwise they are anonymous and cannot be referenced in the SELECT clause.

()  // anonymous node template\n(n) // node template with variable n\n

Nodes can optionally contain a filter in square brackets that allows the same predicate syntax described above. Selecting a node template can be seen as the equivalent of a SELECT clause that implicitly starts at the path node_templates.*.

([type='textfile'])   // anonymous node template with filter\n(n [type='textfile']) // node template with variable n and filter\n

Relationships can be specified between nodes. They are connected to nodes via dashes or arrows to denote undirected or directed relationships, respectively. An incoming relationship means that the requirement of another node is fulfilled by a capability of the current node, while an outgoing relationship means that a requirement of the current node is fulfilled by the capability of the other node. An undirected relationship applies to both of these scenarios.

(a)-->(b)   // a has requirement fulfilled by capability of b\n(a)<--(b)   // a has capability that fulfills requirement of b\n(a)--(b)    // a and b have any relationship\n

Like node templates, relationships can be given a variable name, and their types can be specified using the same filter syntax. In order to do this, they need to be surrounded by curly braces inserted in the middle of the arrow.

(a)-{r}->(b)                // relationship with variable r\n(a)-{r [name='host']}->(b)  // relationship with symbolic name host and variable r\n

It is also possible to search for node templates connected over multiple relationships by specifying a cardinality. This can be accomplished by putting an asterisk at the end of a relationship, followed optionally by a number or a range.

(a)-{*2}->(b)       // exactly two hops between a and b\n(a)-{*2..5}->(b)    // between two and five hops\n(a)-{*2..}->(b)     // at least two hops\n(a)-{*..5}->(b)     // at most five hops\n(a)-{*}->(b)        // any amount of hops\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#appendix-a-grammar","title":"Appendix A \"Grammar\"","text":"

This appendix contains the Ohm grammar of Queries4TOSCA.

Query {\n  Main = (Expression | MatchExpression) end\n  Expression = FromExpression Select\n  MatchExpression = FromExpression Match Select\n\n  FromExpression = \"FROM\" (\"instances\" | \"templates\") (\"/\" | \".\") (asterisk | filePath)\n\n  Select = \"SELECT\" Path (\",\" Path)*\n  Path = (Group | Policy | Step | \".\") (ArrayAccess | Map | Filter)* ReturnClause?\n  Map = \".\" Step\n  Filter = PredicateExpression\n  Step = shortcut? (asterisk | ident)\n  ArrayAccess = \"[\" integer \"]\"\n  ReturnClause = \"{\" KeyValuePair (\",\" KeyValuePair)* \"}\"\n  KeyValuePair = Variable \":\" Variable --complex\n               | Variable              --simple\n  Group = \"GROUP\" \"(\" ident \")\"\n  Policy = \"POLICY\" \"(\" ident \")\"\n\n  PredicateExpression = \"[\" Predicate \"]\"\n  Predicate = Predicate logic Predicate -- multi\n            | Condition -- single\n  Condition = negation Value comparison literal -- comparison\n            | negation Value -- existence\n\n  Match = \"MATCH\" Node (Relationship Node)*\n  Node = \"(\" ident? PredicateExpression? \")\"\n  Relationship = arrowLeft arrowRight --simple\n               | arrowLeft \"{\" ident? PredicateExpression? Cardinality? \"}\" arrowRight --cond\n  Cardinality = asterisk integer \"..\" integer --range\n              | asterisk \"..\" integer --max\n              | asterisk integer \"..\" --min\n              | asterisk integer --exact\n              | asterisk --unlimited\n  Variable = literal | path | ident\n  Value = shortcut? (path | literal)\n\n  negation = \"!\" | \"\"\n  arrowLeft = \"<-\" | \"-\"\n  arrowRight = \"->\" | \"-\"\n  asterisk = \"*\"\n  comparison = \"=~\" | \"=\" | \"!=\" | \">=\" | \"<=\" | \">\" | \"<\"\n  ident = letter (alnum | \"_\" | \"-\")*\n  logic = \"AND\" | \"OR\"\n  path = letter (alnum | \"_\" | \"-\" | \".\")*\n  filePath = (~space any)*\n  literal = string | float | integer | bool\n  bool = \"true\" | \"false\" | \"TRUE\" | \"FALSE\"\n  shortcut = \"@\" | \"#\" | \"$\" | \"%\"\n  string\n    = \"'\" (~\"'\" any)* \"'\"\n    | \"\\\"\" (~\"\\\"\" any)* \"\\\"\"\n  integer = digit+\n  float   = digit? \".\" digit+\n  singleComment = \"//\" (~\"\\n\" any)*\n  multiComment = \"/*\" (~\"*/\" any)* \"*/\"\n  space := singleComment | multiComment | ...\n}\n
","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#reference-implementation","title":"Reference Implementation","text":"

We provide a reference implementation for this specification as part of OpenTOSCA Vintner. OpenTOSCA Vintner is a TOSCA preprocessing and management layer. The project is open-source, licensed under Apache-2.0, and publicly available at GitHub.

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/specification/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/tests/introduction/","title":"Introduction","text":"","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/tests/introduction/#queries4tosca-conformance-test-suite-10-release-candidate","title":"Queries4TOSCA Conformance Test Suite 1.0 Release Candidate","text":"

This document specifies the conformance test suite for the Queries4TOSCA specification which can be used to evaluate Query4TOSCA implementations. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/tests/introduction/#conformance-tests","title":"Conformance Tests","text":"

Each test is described on a separate page. The description includes typically a service template, a query, expected results and so on along with an explanation about the expected processing.

ID Test 1 all 2 array-access 3 boolean-and 4 boolean-or 5 filter-equals 6 filter-existence 7 filter-negation 8 filter-nested 9 filter-regex 10 group 11 match-length-any 12 match-length-range 13 match-next 14 match-previous 15 match-rel-filter 16 match-single 17 node-template 18 policy 19 resolve-chain 20 resolve-loop 21 resolve-self 22 resolve-simple 23 result-structure-complex 24 result-structure-simple 25 shortcut-property","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/tests/introduction/#reference-implementation","title":"Reference Implementation","text":"

We provide a reference implementation for this specification as part of OpenTOSCA Vintner. OpenTOSCA Vintner is a TOSCA preprocessing and management layer. The project is open-source, licensed under Apache-2.0, and publicly available at GitHub.

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/tests/introduction/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/tests/introduction/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/tests/introduction/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Queries4TOSCA","Specification"]},{"location":"queries4tosca/tests/test-all/","title":"all","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-all/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-all/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT .\n
"},{"location":"queries4tosca/tests/test-all/#query-result","title":"Query Result","text":"

The following query result is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-array-access/","title":"array-access","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-array-access/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-array-access/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.webapp.requirements[1]\n
"},{"location":"queries4tosca/tests/test-array-access/#query-result","title":"Query Result","text":"

The following query result is expected.

host: tomcat\n
"},{"location":"queries4tosca/tests/test-boolean-and/","title":"boolean-and","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-boolean-and/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-boolean-and/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.*[name=\"dbms\" AND type=\"DBMS\"]\n
"},{"location":"queries4tosca/tests/test-boolean-and/#query-result","title":"Query Result","text":"

The following query result is expected.

type: DBMS\nrequirements:\n- host: vm_2\n
"},{"location":"queries4tosca/tests/test-boolean-or/","title":"boolean-or","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-boolean-or/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-boolean-or/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.*[type=\"Database\" OR type=\"DBMS\"]\n
"},{"location":"queries4tosca/tests/test-boolean-or/#query-result","title":"Query Result","text":"

The following query result is expected.

- type: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\n- type: DBMS\nrequirements:\n- host: vm_2\n
"},{"location":"queries4tosca/tests/test-filter-equals/","title":"filter-equals","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-filter-equals/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-filter-equals/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.*[type=\"VirtualMachine\"].name\n
"},{"location":"queries4tosca/tests/test-filter-equals/#query-result","title":"Query Result","text":"

The following query result is expected.

- vm_1\n- vm_2\n
"},{"location":"queries4tosca/tests/test-filter-existence/","title":"filter-existence","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-filter-existence/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-filter-existence/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.*[properties.num_cpus].name\n
"},{"location":"queries4tosca/tests/test-filter-existence/#query-result","title":"Query Result","text":"

The following query result is expected.

- vm_1\n- vm_2\n
"},{"location":"queries4tosca/tests/test-filter-negation/","title":"filter-negation","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-filter-negation/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-filter-negation/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.*[!type=\"VirtualMachine\"].name\n
"},{"location":"queries4tosca/tests/test-filter-negation/#query-result","title":"Query Result","text":"

The following query result is expected.

- webapp\n- tomcat\n- mysql_database\n- dbms\n- openstack\n
"},{"location":"queries4tosca/tests/test-filter-nested/","title":"filter-nested","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-filter-nested/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-filter-nested/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.*[properties.port=3306]\n
"},{"location":"queries4tosca/tests/test-filter-nested/#query-result","title":"Query Result","text":"

The following query result is expected.

type: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\n
"},{"location":"queries4tosca/tests/test-filter-regex/","title":"filter-regex","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-filter-regex/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-filter-regex/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.*[name=~\"vm_\"]\n
"},{"location":"queries4tosca/tests/test-filter-regex/#query-result","title":"Query Result","text":"

The following query result is expected.

- type: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\n- type: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\n
"},{"location":"queries4tosca/tests/test-group/","title":"group","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-group/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-group/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT GROUP(database_group)\n
"},{"location":"queries4tosca/tests/test-group/#query-result","title":"Query Result","text":"

The following query result is expected.

mysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\n
"},{"location":"queries4tosca/tests/test-match-length-any/","title":"match-length-any","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-match-length-any/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-match-length-any/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml MATCH ([type=\"WebApplication\"])-{*}->(node[type=\"OpenStack\"]) SELECT node\n
"},{"location":"queries4tosca/tests/test-match-length-any/#query-result","title":"Query Result","text":"

The following query result is expected.

openstack:\ntype: OpenStack\n
"},{"location":"queries4tosca/tests/test-match-length-range/","title":"match-length-range","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-match-length-range/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-match-length-range/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml MATCH ([type=\"Tomcat\"])-{*1..2}->(node) SELECT node.*.name\n
"},{"location":"queries4tosca/tests/test-match-length-range/#query-result","title":"Query Result","text":"

The following query result is expected.

- vm_1\n- openstack\n
"},{"location":"queries4tosca/tests/test-match-next/","title":"match-next","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-match-next/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-match-next/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml MATCH ([type=\"Tomcat\"])-->(node) SELECT node\n
"},{"location":"queries4tosca/tests/test-match-next/#query-result","title":"Query Result","text":"

The following query result is expected.

vm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\n
"},{"location":"queries4tosca/tests/test-match-previous/","title":"match-previous","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-match-previous/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-match-previous/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml MATCH (node)<--([type=\"Tomcat\"]) SELECT node\n
"},{"location":"queries4tosca/tests/test-match-previous/#query-result","title":"Query Result","text":"

The following query result is expected.

vm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\n
"},{"location":"queries4tosca/tests/test-match-rel-filter/","title":"match-rel-filter","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-match-rel-filter/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-match-rel-filter/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml MATCH ()-{[type=\"ConnectsTo\"]}->(node2) SELECT node2\n
"},{"location":"queries4tosca/tests/test-match-rel-filter/#query-result","title":"Query Result","text":"

The following query result is expected.

dbms:\ntype: DBMS\nrequirements:\n- host: vm_2\n
"},{"location":"queries4tosca/tests/test-match-single/","title":"match-single","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-match-single/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-match-single/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml MATCH (node[type=\"WebApplication\"]) SELECT node\n
"},{"location":"queries4tosca/tests/test-match-single/#query-result","title":"Query Result","text":"

The following query result is expected.

webapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\n
"},{"location":"queries4tosca/tests/test-node-template/","title":"node-template","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-node-template/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-node-template/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.webapp\n
"},{"location":"queries4tosca/tests/test-node-template/#query-result","title":"Query Result","text":"

The following query result is expected.

type: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\n
"},{"location":"queries4tosca/tests/test-policy/","title":"policy","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-policy/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-policy/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT POLICY(placement_policy)\n
"},{"location":"queries4tosca/tests/test-policy/#query-result","title":"Query Result","text":"

The following query result is expected.

vm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\n
"},{"location":"queries4tosca/tests/test-resolve-chain/","title":"resolve-chain","text":"

This test is of type template.

"},{"location":"queries4tosca/tests/test-resolve-chain/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/resolve-chain/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username: executeQuery(SELECT node_templates.webapp.properties.db_password)\ndb_password: executeQuery(SELECT node_templates.mysql_database.properties.password)\nport:\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: user\npassword: password\nrequirements:\n- my_db_connection: dbms\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nopenstack:\ntype: Compute\ncapabilities:\nhost:\nproperties:\nnum_cpus: 1\nmem_size: 2 GB\nos:\nproperties:\ntype: linux\ndistribution: ubuntu\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\n
"},{"location":"queries4tosca/tests/test-resolve-chain/#query-result","title":"Query Result","text":"

The following query result is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username: password\ndb_password: password\nport:\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: user\npassword: password\nrequirements:\n- my_db_connection: dbms\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nopenstack:\ntype: Compute\ncapabilities:\nhost:\nproperties:\nnum_cpus: 1\nmem_size: 2 GB\nos:\nproperties:\ntype: linux\ndistribution: ubuntu\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\n
"},{"location":"queries4tosca/tests/test-resolve-loop/","title":"resolve-loop","text":"

This test is of type template.

"},{"location":"queries4tosca/tests/test-resolve-loop/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/resolve-loop/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username: executeQuery(SELECT node_templates.webapp.properties.db_password)\ndb_password: executeQuery(SELECT node_templates.webapp.properties.db_username)\nport:\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: user\npassword: password\nrequirements:\n- my_db_connection: dbms\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nopenstack:\ntype: Compute\ncapabilities:\nhost:\nproperties:\nnum_cpus: 1\nmem_size: 2 GB\nos:\nproperties:\ntype: linux\ndistribution: ubuntu\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\n
"},{"location":"queries4tosca/tests/test-resolve-loop/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown.

Circular dependencies detected. Unable to resolve queries in your template.\n
"},{"location":"queries4tosca/tests/test-resolve-self/","title":"resolve-self","text":"

This test is of type template.

"},{"location":"queries4tosca/tests/test-resolve-self/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/resolve-self/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username: executeQuery(SELECT SELF.properties.db_password)\ndb_password: mypassword\nport:\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: user\npassword: password\nrequirements:\n- my_db_connection: dbms\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nopenstack:\ntype: Compute\ncapabilities:\nhost:\nproperties:\nnum_cpus: 1\nmem_size: 2 GB\nos:\nproperties:\ntype: linux\ndistribution: ubuntu\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\n
"},{"location":"queries4tosca/tests/test-resolve-self/#query-result","title":"Query Result","text":"

The following query result is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username: mypassword\ndb_password: mypassword\nport:\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: user\npassword: password\nrequirements:\n- my_db_connection: dbms\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nopenstack:\ntype: Compute\ncapabilities:\nhost:\nproperties:\nnum_cpus: 1\nmem_size: 2 GB\nos:\nproperties:\ntype: linux\ndistribution: ubuntu\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\n
"},{"location":"queries4tosca/tests/test-resolve-simple/","title":"resolve-simple","text":"

This test is of type template.

"},{"location":"queries4tosca/tests/test-resolve-simple/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/resolve-simple/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username: executeQuery(SELECT node_templates.mysql_database.properties.username)\ndb_password: executeQuery(SELECT node_templates.mysql_database.properties.password)\nport:\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: user\npassword: password\nrequirements:\n- my_db_connection: dbms\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nopenstack:\ntype: Compute\ncapabilities:\nhost:\nproperties:\nnum_cpus: 1\nmem_size: 2 GB\nos:\nproperties:\ntype: linux\ndistribution: ubuntu\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\n
"},{"location":"queries4tosca/tests/test-resolve-simple/#query-result","title":"Query Result","text":"

The following query result is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username: user\ndb_password: password\nport:\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: user\npassword: password\nrequirements:\n- my_db_connection: dbms\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nrequirements:\n- host: openstack\nopenstack:\ntype: Compute\ncapabilities:\nhost:\nproperties:\nnum_cpus: 1\nmem_size: 2 GB\nos:\nproperties:\ntype: linux\ndistribution: ubuntu\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\n
"},{"location":"queries4tosca/tests/test-result-structure-complex/","title":"result-structure-complex","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-result-structure-complex/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-result-structure-complex/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.*{\"Node Name\": name, \"Node Type\": type}\n
"},{"location":"queries4tosca/tests/test-result-structure-complex/#query-result","title":"Query Result","text":"

The following query result is expected.

- Node Name: webapp\nNode Type: WebApplication\n- Node Name: tomcat\nNode Type: Tomcat\n- Node Name: mysql_database\nNode Type: Database\n- Node Name: dbms\nNode Type: DBMS\n- Node Name: vm_1\nNode Type: VirtualMachine\n- Node Name: vm_2\nNode Type: VirtualMachine\n- Node Name: openstack\nNode Type: OpenStack\n
"},{"location":"queries4tosca/tests/test-result-structure-simple/","title":"result-structure-simple","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-result-structure-simple/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-result-structure-simple/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.webapp{name, type}\n
"},{"location":"queries4tosca/tests/test-result-structure-simple/#query-result","title":"Query Result","text":"

The following query result is expected.

name: webapp\ntype: WebApplication\n
"},{"location":"queries4tosca/tests/test-shortcut-property/","title":"shortcut-property","text":"

This test is of type default.

"},{"location":"queries4tosca/tests/test-shortcut-property/#service-template","title":"Service Template","text":"

The following service template is used.

tests/query/template.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nwebapp:\ntype: WebApplication\nproperties:\ndb_username:\nget_property:\n- mysql_database\n- username\ndb_password:\nget_property:\n- mysql_database\n- password\nport: 3306\nrequirements:\n- database_endpoint: mysql_database\n- host: tomcat\ntomcat:\ntype: Tomcat\nrequirements:\n- host: vm_1\nmysql_database:\ntype: Database\nproperties:\nusername: dbuser\npassword: dbpwd\nrequirements:\n- my_db_connection:\nnode: dbms\nrelationship: my_db_connection\ndbms:\ntype: DBMS\nrequirements:\n- host: vm_2\nvm_1:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nvm_2:\ntype: VirtualMachine\nproperties:\nnum_cpus: 2\nmem_size: 4 GB\nrequirements:\n- host: openstack\nopenstack:\ntype: OpenStack\ngroups:\ndatabase_group:\ntype: tosca.groups.Root\nmembers:\n- mysql_database\n- dbms\npolicies:\n- placement_policy:\ntype: tosca.policies.placement\ntargets:\n- vm_1\n- vm_2\nrelationship_templates:\nmy_db_connection:\ntype: ConnectsTo\ninterfaces:\nConfigure:\npre_configure_source: scripts/wp_db_configure.sh\n
"},{"location":"queries4tosca/tests/test-shortcut-property/#query","title":"Query","text":"

The following query is executed.

FROM templates/tests/query/template.yaml SELECT node_templates.webapp.#port\n
"},{"location":"queries4tosca/tests/test-shortcut-property/#query-result","title":"Query Result","text":"

The following query result is expected.

3306\n
"},{"location":"scsar/","title":"Secure CSAR","text":"","tags":["Specification"]},{"location":"scsar/#secure-cloud-service-archive-10-release-candidate","title":"Secure Cloud Service Archive 1.0 Release Candidate","text":"

This document specifies the concept of a Secure Cloud Service Archive (sCSAR). The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Specification"]},{"location":"scsar/#secure-cloud-service-archive","title":"Secure Cloud Service Archive","text":"

Sign the CSAR using RSA with SHA256 and place the signature under the name of the CSAR appended with .asc. For example, if the CSAR is named example.csar, then the signature file is named example.csar.asc. An RSA key length of 4096 is adviced. The CSAR and signature might be distributed in a ZIP file with the extension .scsar having the following structure.

File Description <CSAR Name>.csar The CSAR. <CSAR Name>.csar.asc The signature of the CSAR (encoded as HEX) certificate.pem The certificate (encoded as PEM) of the signature key used for verifying the signature. certificate-chain.pem The certificate chain (encoded as PEM).","tags":["Specification"]},{"location":"scsar/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Specification"]},{"location":"scsar/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Specification"]},{"location":"scsar/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Specification"]},{"location":"sofdcar/profile/","title":"Profile","text":"","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#tosca-software-defined-car-sofdcar-profile-10-release-candidate","title":"TOSCA Software-Defined Car (SofDCar) Profile 1.0 Release Candidate","text":"

This document specifies the TOSCA Software-Defined Car (SofDCar) profile. This profile includes normative TOSCA types for the domain of software-defined cars. Standardizing such normative TOSCA types improves interoperability. For example, an ECU supplier can model and distribute the deployment and management of their ECUs using these types. Various OEMs can then import provided models and integrate them into their cars. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#tosca-sofdcar-core-profile","title":"TOSCA SofDCar Core Profile","text":"

The core normative TOSCA type definitions contain high-level type definitions which are mainly derived from the normative TOSCA type definitions of the TOSCA Simple Profile in YAML 1.3. These types mainly concern the following topics.

  • Hardware and software of electronic computing units (ECUs) which are typically microcontrollers
  • Hardware and software of high performance computing platforms (HPCs) which are typically microprocessors
  • Sensors and actuators
  • Communication channels

Considering the modeling communication, the TOSCA modeling approach is application centric meaning that, e.g., a CAN communication is modeled by relationships between the communicating software components. Thus, no (physical) CAN bus is modeled between the ECUs. However, this might not provide all required information. This issue is also discussed in the networking section of the TOSCA specification. In this section, the authors of TOSCA propose to have a TOSCA model for the application and a second separate one for the networking. Therefore, we provide type definitions to model such an automotive TOSCA networking model which includes, e.g., a physical CAN bus.

","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#artifact-types","title":"Artifact Types","text":"

We specify the following normative artifact types. An overview is given in Figure tosca-sofdcar-profile-core1.

Figure C1: TOSCA SofDCar Core Artifact Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarartifactsroot","title":"sofdcar.artifacts.Root","text":"

The artifact all other artifacts are derived from.

sofdcar.artifacts.Root:\nderived_from: tosca.artifacts.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarartifactsdeployment","title":"sofdcar.artifacts.Deployment","text":"

The artifact all other deployment artifacts are derived from.

sofdcar.artifacts.Deployment:\nderived_from: tosca.artifacts.Deployment\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarartifactsimplementation","title":"sofdcar.artifacts.Implementation","text":"

The artifact all other implementation artifacts are derived from.

sofdcar.artifacts.Implementation:\nderived_from: tosca.artifacts.Implementation\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#capability-types","title":"Capability Types","text":"

We specify the following normative capability types. An overview is given in Figure tosca-sofdcar-profile-core2.

Figure C2: TOSCA SofDCar Core Capability Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesroot","title":"sofdcar.capabilities.Root","text":"

The capability all other capabilities are derived from.

sofdcar.capabilities.Root:\nderived_from: tosca.capabilities.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitieshostecusoftware","title":"sofdcar.capabilities.Host.ECU.Software","text":"

The capability to host an ECU software.

sofdcar.capabilities.Host.ECU.Software:\nderived_from: tosca.capabilities.Container\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesoperatingsystemrealtime","title":"sofdcar.capabilities.OperatingSystem.RealTime","text":"

The capability to provide a real-time operating system.

sofdcar.capabilities.OperatingSystem.RealTime:\nderived_from: tosca.capabilities.OperatingSystem\nproperties:\ntime_guarantee:\ntype: integer\nrequired: false\nguarantee_type:\ntype: string\nconstraints:\n- valid_values:\n- hard\n- firm\n- soft\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpoint","title":"sofdcar.capabilities.Endpoint","text":"

The capability to provide an endpoint to which a client can connect to.

sofdcar.capabilities.Endpoint:\nderived_from: sofdcar.capabilities.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#data-types","title":"Data Types","text":"

We specify the following normative data types. An overview is given in Figure tosca-sofdcar-profile-core3.

Figure C3: TOSCA SofDCar Core Data Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcardataroot","title":"sofdcar.data.Root","text":"

The data all other data are derived from.

sofdcar.data.Root:\nderived_from: tosca.datatypes.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#group-types","title":"Group Types","text":"

We specify the following normative group types. An overview is given in Figure tosca-sofdcar-profile-core4.

Figure C4: TOSCA SofDCar Core Group Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcargroupsroot","title":"sofdcar.groups.Root","text":"

The group all other groups are derived from.

sofdcar.groups.Root:\nderived_from: tosca.groups.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcargroupslocation","title":"sofdcar.groups.Location","text":"

The geographical location of nodes.

sofdcar.groups.Location:\nderived_from: sofdcar.groups.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcargroupsdomain","title":"sofdcar.groups.Domain","text":"

The domain in a domain-oriented architecture.

sofdcar.groups.Domain:\nderived_from: sofdcar.groups.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcargroupszone","title":"sofdcar.groups.Zone","text":"

The zone in a zone-oriented architecture.

sofdcar.groups.Zone:\nderived_from: sofdcar.groups.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#interface-types","title":"Interface Types","text":"

We specify the following normative interface types. An overview is given in Figure tosca-sofdcar-profile-core5.

Figure C5: TOSCA SofDCar Core Interface Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarinterfacesroot","title":"sofdcar.interfaces.Root","text":"

The interface all other interfaces are derived from.

sofdcar.interfaces.Root:\nderived_from: tosca.interfaces.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarinterfacesnodes","title":"sofdcar.interfaces.Nodes","text":"

The standard management interface of nodes.

sofdcar.interfaces.Nodes:\nderived_from: tosca.interfaces.node.lifecycle.Standard\noperations:\nbuild:\ndescription: Builds deployment artifacts.\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarinterfacesrelationship","title":"sofdcar.interfaces.Relationship","text":"

The standard management interface for relationships.

sofdcar.interfaces.Relationship:\nderived_from: tosca.interfaces.relationship.Configure\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#node-types","title":"Node Types","text":"

We specify the following normative node types. An overview is given in Figure tosca-sofdcar-profile-core6.

Figure C6: TOSCA SofDCar Core Node Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesroot","title":"sofdcar.nodes.Root","text":"

The node all other nodes are derived from.

sofdcar.nodes.Root:\nderived_from: tosca.nodes.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesvehicle","title":"sofdcar.nodes.Vehicle","text":"

The node all other vehicles are derived from.

sofdcar.nodes.Vehicle:\nderived_from: sofdcar.nodes.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodescloud","title":"sofdcar.nodes.Cloud","text":"

The node all other clouds are derived from.

sofdcar.nodes.Cloud:\nderived_from: sofdcar.nodes.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesecuhardware","title":"sofdcar.nodes.ECU.Hardware","text":"

The hardware of an ECU.

sofdcar.nodes.ECU.Hardware:\nderived_from: sofdcar.nodes.Root\ncapabilities:\nhost:\ntype: sofdcar.capabilities.Host.ECU.Software\nvalid_source_types:\n- sofdcar.nodes.ECU.Software\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesecusoftware","title":"sofdcar.nodes.ECU.Software","text":"

The software running on an ECU.

sofdcar.nodes.ECU.Software:\nderived_from: sofdcar.nodes.Root\nrequirements:\n- host:\ncapability: sofdcar.capabilities.Host.ECU.Software\nrelationship: tosca.relationships.HostedOn\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesecuruntime","title":"sofdcar.nodes.ECU.Runtime","text":"

The runtime for an ECU software.

sofdcar.nodes.ECU.Runtime:\nderived_from: sofdcar.nodes.ECU.Software\ncapabilities:\nhost:\ntype: sofdcar.capabilities.Host.ECU.Software\nvalid_source_types:\n- sofdcar.nodes.ECU.Software\nrequirements:\n- host:\ncapability: sofdcar.capabilities.Host.ECU.Software\nrelationship: tosca.relationships.HostedOn\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodeshpcsoftware","title":"sofdcar.nodes.HPC.Software","text":"

The software running on an HPC.

sofdcar.nodes.HPC.Software:\nderived_from: tosca.nodes.SoftwareComponent\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodeshpchardware","title":"sofdcar.nodes.HPC.Hardware","text":"

The hardware of an HPC.

sofdcar.nodes.HPC.Hardware:\nderived_from: sofdcar.nodes.Root\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nvalid_source_types:\n- tosca.nodes.SoftwareComponent\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesactuator","title":"sofdcar.nodes.Actuator","text":"

The node all other actuators are derived from.

sofdcar.nodes.Actuator:\nderived_from: sofdcar.nodes.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesaccelerator","title":"sofdcar.nodes.Accelerator","text":"

The node all other accelerators are derived from.

sofdcar.nodes.Accelerator:\nderived_from: sofdcar.nodes.Actuator\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesbrake","title":"sofdcar.nodes.Brake","text":"

The node all other brakes are derived from.

sofdcar.nodes.Brake:\nderived_from: sofdcar.nodes.Actuator\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodessteering","title":"sofdcar.nodes.Steering","text":"

The node all other steerings are derived from.

sofdcar.nodes.Steering:\nderived_from: sofdcar.nodes.Actuator\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodeslight","title":"sofdcar.nodes.Light","text":"

The node all other lights are derived from.

sofdcar.nodes.Light:\nderived_from: sofdcar.nodes.Actuator\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodescooling","title":"sofdcar.nodes.Cooling","text":"

The node all other coolings are derived from.

sofdcar.nodes.Cooling:\nderived_from: sofdcar.nodes.Actuator\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesairbag","title":"sofdcar.nodes.Airbag","text":"

The node all other airbags are derived from.

sofdcar.nodes.Airbag:\nderived_from: sofdcar.nodes.Actuator\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodessensor","title":"sofdcar.nodes.Sensor","text":"

The node all other sensors are derived from.

sofdcar.nodes.Sensor:\nderived_from: sofdcar.nodes.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesradar","title":"sofdcar.nodes.RADAR","text":"

The node all other RADAR are derived from.

sofdcar.nodes.RADAR:\nderived_from: sofdcar.nodes.Sensor\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodescamera","title":"sofdcar.nodes.Camera","text":"

The node all other cameras are derived from.

sofdcar.nodes.Camera:\nderived_from: sofdcar.nodes.Sensor\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodeslidar","title":"sofdcar.nodes.LIDAR","text":"

The node all other LIDAR are derived from.

sofdcar.nodes.LIDAR:\nderived_from: sofdcar.nodes.Sensor\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesultrasonic","title":"sofdcar.nodes.Ultrasonic","text":"

The node all other ultrasonics are derived from.

sofdcar.nodes.Ultrasonic:\nderived_from: sofdcar.nodes.Sensor\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesmicrophone","title":"sofdcar.nodes.Microphone","text":"

The node all other microphones are derived from.

sofdcar.nodes.Microphone:\nderived_from: sofdcar.nodes.Sensor\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodeschannel","title":"sofdcar.nodes.Channel","text":"

The node all other communication channels are derived from.

sofdcar.nodes.Channel:\nderived_from: sofdcar.nodes.Root\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint\noccurrences:\n- 0\n- UNBOUNDED\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesbattery","title":"sofdcar.nodes.Battery","text":"

The node all other batteries are derived from.

sofdcar.nodes.Battery:\nderived_from: sofdcar.nodes.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesfeature","title":"sofdcar.nodes.Feature","text":"

The node all other features are derived from.

sofdcar.nodes.Feature:\nderived_from: sofdcar.nodes.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#policy-types","title":"Policy Types","text":"

We specify the following normative policy types. An overview is given in Figure tosca-sofdcar-profile-core7.

Figure C7: TOSCA SofDCar Core Policy Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarpoliciesroot","title":"sofdcar.policies.Root","text":"

The policy all other policies are derived from.

sofdcar.policies.Root:\nderived_from: tosca.policies.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarpoliciessecurity","title":"sofdcar.policies.Security","text":"

The policy all other security-related policies are derived from.

sofdcar.policies.Security:\nderived_from: sofdcar.policies.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarpoliciessafety","title":"sofdcar.policies.Safety","text":"

The policy all other safety-related policies are derived from.

sofdcar.policies.Safety:\nderived_from: sofdcar.policies.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#relationship-types","title":"Relationship Types","text":"

We specify the following normative relationship types. An overview is given in Figure tosca-sofdcar-profile-core8.

Figure C8: TOSCA SofDCar Core Relationship Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipsroot","title":"sofdcar.relationships.Root","text":"

The relationship all other relationships are derived from.

sofdcar.relationships.Root:\nderived_from: tosca.relationships.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#tosca-sofdcar-extended-profile","title":"TOSCA SofDCar Extended Profile","text":"

The extended normative TOSCA type definitions contain additional high-level type definitions which are derived from the core type definitions. These types mainly concern specific communications, such as CAN or FlexRay, but also ECUs and HPCs, such as Arduino or Raspberry Pi.

","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#capability-types_1","title":"Capability Types","text":"

We specify the following normative capability types. An overview is given in Figure tosca-sofdcar-profile-extended1.

Figure E1: Capability Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpointcan","title":"sofdcar.capabilities.Endpoint.CAN","text":"

The capability to provide a CAN endpoint.

sofdcar.capabilities.Endpoint.CAN:\nderived_from: sofdcar.capabilities.Endpoint\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpointcan-fd","title":"sofdcar.capabilities.Endpoint.CAN-FD","text":"

The capability to provide a CAN-FD endpoint.

sofdcar.capabilities.Endpoint.CAN-FD:\nderived_from: sofdcar.capabilities.Endpoint.CAN\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpointlin","title":"sofdcar.capabilities.Endpoint.LIN","text":"

The capability to provide a LIN endpoint.

sofdcar.capabilities.Endpoint.LIN:\nderived_from: sofdcar.capabilities.Endpoint\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpointmost","title":"sofdcar.capabilities.Endpoint.MOST","text":"

The capability to provide a MOST endpoint.

sofdcar.capabilities.Endpoint.MOST:\nderived_from: sofdcar.capabilities.Endpoint\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpointgpio","title":"sofdcar.capabilities.Endpoint.GPIO","text":"

The capability to provide a GPIO endpoint.

sofdcar.capabilities.Endpoint.GPIO:\nderived_from: sofdcar.capabilities.Endpoint\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpointflexray","title":"sofdcar.capabilities.Endpoint.FlexRay","text":"

The capability to provide a FlexRay endpoint.

sofdcar.capabilities.Endpoint.FlexRay:\nderived_from: sofdcar.capabilities.Endpoint\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpointethernet","title":"sofdcar.capabilities.Endpoint.Ethernet","text":"

The capability to provide an Ethernet endpoint.

sofdcar.capabilities.Endpoint.Ethernet:\nderived_from: sofdcar.capabilities.Endpoint\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpointobd","title":"sofdcar.capabilities.Endpoint.OBD","text":"

The capability to provide an OBD endpoint.

sofdcar.capabilities.Endpoint.OBD:\nderived_from: sofdcar.capabilities.Endpoint.CAN\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarcapabilitiesendpointsomeip","title":"sofdcar.capabilities.Endpoint.SOME/IP","text":"

The capability to provide a SOME/IP endpoint.

sofdcar.capabilities.Endpoint.SOME/IP:\nderived_from: sofdcar.capabilities.Endpoint.Ethernet\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#data-types_1","title":"Data Types","text":"

We specify the following normative data types. An overview is given in Figure tosca-sofdcar-profile-extended2.

Figure E2: Data Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcardatagpiopin","title":"sofdcar.data.GPIO.Pin","text":"

The GPIO pin used, e.g., when connecting using GPIO.

sofdcar.data.GPIO.Pin:\nderived_from: sofdcar.data.Root\nproperties:\npin:\ntype: integer\ndirection:\ntype: string\nconstraints:\n- valid_values:\n- in\n- out\n- in/out\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#node-types_1","title":"Node Types","text":"

We specify the following normative node types. An overview is given in Figure tosca-sofdcar-profile-extended3.

Figure E3: Node Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodescan","title":"sofdcar.nodes.CAN","text":"

The CAN channel all other CAN channels are derived from.

sofdcar.nodes.CAN:\nderived_from: sofdcar.nodes.Channel\nproperties:\nbitrate:\ntype: integer\nrequired: false\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.CAN\noccurrences:\n- 0\n- UNBOUNDED\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodescan-fd","title":"sofdcar.nodes.CAN-FD","text":"

The CAN-FD channel all other CAN-FD channels are derived from.

sofdcar.nodes.CAN-FD:\nderived_from: sofdcar.nodes.CAN\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.CAN-FD\noccurrences:\n- 0\n- UNBOUNDED\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodeslin","title":"sofdcar.nodes.LIN","text":"

The LIN channel all other LIN channels are derived from.

sofdcar.nodes.LIN:\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.LIN\noccurrences:\n- 0\n- UNBOUNDED\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesmost","title":"sofdcar.nodes.MOST","text":"

The MOST channel all other MOST channels are derived from.

sofdcar.nodes.MOST:\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.MOST\noccurrences:\n- 0\n- UNBOUNDED\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesgpio","title":"sofdcar.nodes.GPIO","text":"

The GIP channel all other GIP channels are derived from.

sofdcar.nodes.GPIO:\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.GPIO\noccurrences:\n- 2\n- 2\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesflexray","title":"sofdcar.nodes.FlexRay","text":"

The FlexRay channel all other FlexRay channels are derived from.

sofdcar.nodes.FlexRay:\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.FlexRay\noccurrences:\n- 0\n- UNBOUNDED\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesethernet","title":"sofdcar.nodes.Ethernet","text":"

The ethernet channel all other ethernet channels are derived from.

sofdcar.nodes.Ethernet:\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.Ethernet\noccurrences:\n- 2\n- 2\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodessomeip","title":"sofdcar.nodes.SOME/IP","text":"

The SOME/IP channel all other SOME/IP channels are derived from.

sofdcar.nodes.SOME/IP:\nderived_from: sofdcar.nodes.Ethernet\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.SOME/IP\noccurrences:\n- 2\n- 2\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodespythonapplication","title":"sofdcar.nodes.Python.Application","text":"

Non-normative python application running on an HPC. This application requires a python runtime.

sofdcar.nodes.Python.Application:\nderived_from: sofdcar.nodes.HPC.Software\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodespythonruntime","title":"sofdcar.nodes.Python.Runtime","text":"

Non-normative python runtime running on an HPC. This runtime is able to host python applications and requires a host.

sofdcar.nodes.Python.Runtime:\nderived_from: sofdcar.nodes.HPC.Software\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nvalid_source_types:\n- sofdcar.nodes.Python.Application\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesraspberrypihardware","title":"sofdcar.nodes.RaspberryPi.Hardware","text":"

The hardware of a Raspberry Pi serving as an HPC hardware. This Raspberry Pi is able to host HPC software. Furthermore, the Raspberry Pi is able to directly host python applications without explicit python runtime since a python runtime is already installed on the Raspberry Pi.

sofdcar.nodes.RaspberryPi.Hardware:\nderived_from: sofdcar.nodes.HPC.Hardware\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nvalid_source_types:\n- sofdcar.nodes.HPC.Software\n- sofdcar.nodes.Python.Application\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesarduinosoftware","title":"sofdcar.nodes.Arduino.Software","text":"

The software running on an Arduino.

sofdcar.nodes.Arduino.Software:\nderived_from: sofdcar.nodes.ECU.Software\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesarduinosoftwarec","title":"sofdcar.nodes.Arduino.Software.C++","text":"

C++ software running on an Arduino.

sofdcar.nodes.Arduino.Software.C++:\nderived_from: sofdcar.nodes.Arduino.Software\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarnodesarduinohardware","title":"sofdcar.nodes.Arduino.Hardware","text":"

The hardware of an Arduino serving as ECU hardware. The Arduino is able to host Arduino software.

sofdcar.nodes.Arduino.Hardware:\nderived_from: sofdcar.nodes.ECU.Hardware\ncapabilities:\nhost:\ntype: sofdcar.capabilities.Host.ECU.Software\nvalid_source_types:\n- sofdcar.nodes.Arduino.Software\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#policy-types_1","title":"Policy Types","text":"

We specify the following normative policy types. An overview is given in Figure tosca-sofdcar-profile-extended4.

Figure E4: Policy Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarpoliciesasil","title":"sofdcar.policies.ASIL","text":"

The policy that all other ASIL policies are derived from.

sofdcar.policies.ASIL:\nderived_from: sofdcar.policies.Safety\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarpoliciesasila","title":"sofdcar.policies.ASIL.A","text":"

The policy that represents the ASIL level A.

sofdcar.policies.ASIL.A:\nderived_from: sofdcar.policies.ASIL\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarpoliciesasilb","title":"sofdcar.policies.ASIL.B","text":"

The policy that represents the ASIL level B.

sofdcar.policies.ASIL.B:\nderived_from: sofdcar.policies.ASIL\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarpoliciesasilc","title":"sofdcar.policies.ASIL.C","text":"

The policy that represents the ASIL level C.

sofdcar.policies.ASIL.C:\nderived_from: sofdcar.policies.ASIL\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarpoliciesasild","title":"sofdcar.policies.ASIL.D","text":"

The policy that represents the ASIL level D.

sofdcar.policies.ASIL.D:\nderived_from: sofdcar.policies.ASIL\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#relationship-types_1","title":"Relationship Types","text":"

We specify the following normative relationship types. An overview is given in Figure tosca-sofdcar-profile-extended5.

Figure E5: Relationship Types","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipscan","title":"sofdcar.relationships.CAN","text":"

The relationship for CAN connections.

sofdcar.relationships.CAN:\nderived_from: sofdcar.relationships.Root\nproperties:\ninterface:\ntype: string\ndescription: The interface name at the source at which the CAN bus is available.\ndefault: can0\ntarget_interface:\ntype: string\ndescription: The interface name at the target at which the CAN bus is available.\nrequired: false\nbitrate:\ntype: integer\ndescription: The bitrate of the CAN bus.\nrequired: false\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipscan-fd","title":"sofdcar.relationships.CAN-FD","text":"

The relationship for CAN-FD connections.

sofdcar.relationships.CAN-FD:\nderived_from: sofdcar.relationships.CAN\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipslin","title":"sofdcar.relationships.LIN","text":"

The relationship for LIN connections.

sofdcar.relationships.LIN:\nderived_from: sofdcar.relationships.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipsmost","title":"sofdcar.relationships.MOST","text":"

The relationships for MOST connections.

sofdcar.relationships.MOST:\nderived_from: sofdcar.relationships.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipsgpio","title":"sofdcar.relationships.GPIO","text":"

The relationship for GPIO connections.

sofdcar.relationships.GPIO:\nderived_from: sofdcar.relationships.Root\nproperties:\npins:\ntype: list\nentry_schema:\ntype: sofdcar.data.GPIO.Pin\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipsflexray","title":"sofdcar.relationships.FlexRay","text":"

The relationship for FlexRay connections.

sofdcar.relationships.FlexRay:\nderived_from: sofdcar.relationships.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipsethernet","title":"sofdcar.relationships.Ethernet","text":"

The relationship for Ethernet connections.

sofdcar.relationships.Ethernet:\nderived_from: sofdcar.relationships.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipsobd","title":"sofdcar.relationships.OBD","text":"

The relationship for OBD connections.

sofdcar.relationships.OBD:\nderived_from: sofdcar.relationships.CAN\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#sofdcarrelationshipssomeip","title":"sofdcar.relationships.SOME/IP","text":"

The relationship for SOME/IP connections.

sofdcar.relationships.SOME/IP:\nderived_from: sofdcar.relationships.Ethernet\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#appendix-a-tosca-sofdcar-profile","title":"Appendix A \"TOSCA SofDCar Profile\"","text":"

This appendix contains the TOSCA SofDCar profile. The profile is also available as download.

tosca_definitions_version: tosca_simple_yaml_1_3\ndescription: TOSCA Profile for Software-Defined Cars.\nmetadata:\ntemplate_name: TOSCA SofDCar Profile\ntemplate_author: Miles St\u00f6tzner\ntemplate_contact: miles.stoetzner@iste.uni-stuttgart.de\ntemplate_link: https://vintner.opentosca.org\ntemplate_version: 1.0.0-draft\ntemplate_id: tosca-sofdcar-profile\ntemplate_license: https://www.apache.org/licenses/LICENSE-2.0\nacknowledgments: Partially funded by the [German Federal Ministry for Economic Affairs and Climate Action (BMWK)](https://www.bmwk.de) as part of the research project [SofDCar (19S21002)](https://sofdcar.de).\nimports:\n- ./tosca-sofdcar-profile-core.yaml\n- ./tosca-sofdcar-profile-extended.yaml\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#appendix-b-tosca-sofdcar-core-profile","title":"Appendix B \"TOSCA SofDCar Core Profile\"","text":"

This appendix contains the TOSCA SofDCar Core profile. The profile is also available as download.

tosca_definitions_version: tosca_simple_yaml_1_3\ndescription: TOSCA Profile for Software-Defined Cars (Core).\nmetadata:\ntemplate_name: TOSCA SofDCar Profile (Core)\ntemplate_author: Miles St\u00f6tzner\ntemplate_contact: miles.stoetzner@iste.uni-stuttgart.de\ntemplate_link: https://vintner.opentosca.org\ntemplate_version: 1.0.0-draft\ntemplate_id: tosca-sofdcar-profile-core\ntemplate_license: https://www.apache.org/licenses/LICENSE-2.0\nabbreviations: |\n- ASIL: Automotive Safety Integrity Level\n- CAN: Controller Area Network\n- CAN-FD: Controller Area Network Flexible Data-Rate\n- ECU: Electronic Control Unit\n- GPIO: General-Purpose Input/ Output\n- HPC: High Performance Computer\n- LIDAR: Light Detection and Ranging\n- LIN: Local Interconnect Network\n- MOST: Media-Oriented Systems Transport\n- OBD: On-Board Diagnostics\n- RADAR: Radio Detection and Ranging\n- SOME/IP: Scalable Service-Oriented Middleware over IP\nacknowledgments: Partially funded by the [German Federal Ministry for Economic Affairs and Climate Action (BMWK)](https://www.bmwk.de) as part of the research project [SofDCar (19S21002)](https://sofdcar.de).\nartifact_types:\nsofdcar.artifacts.Root:\ndescription: The artifact all other artifacts are derived from.\nderived_from: tosca.artifacts.Root\nsofdcar.artifacts.Deployment:\ndescription: The artifact all other deployment artifacts are derived from.\nderived_from: tosca.artifacts.Deployment\nsofdcar.artifacts.Implementation:\ndescription: The artifact all other implementation artifacts are derived from.\nderived_from: tosca.artifacts.Implementation\ncapability_types:\nsofdcar.capabilities.Root:\ndescription: The capability all other capabilities are derived from.\nderived_from: tosca.capabilities.Root\nsofdcar.capabilities.Host.ECU.Software:\ndescription: The capability to host an ECU software.\nderived_from: tosca.capabilities.Container\nsofdcar.capabilities.OperatingSystem.RealTime:\ndescription: The capability to provide a real-time operating system.\nderived_from: tosca.capabilities.OperatingSystem\nproperties:\ntime_guarantee:\ntype: integer\nrequired: false\nguarantee_type:\ntype: string\nconstraints:\n- valid_values:\n- hard\n- firm\n- soft\nsofdcar.capabilities.Endpoint:\ndescription: The capability to provide an endpoint to which a client can connect to.\nderived_from: sofdcar.capabilities.Root\ndata_types:\nsofdcar.data.Root:\ndescription: The data all other data are derived from.\nderived_from: tosca.datatypes.Root\ngroup_types:\nsofdcar.groups.Root:\ndescription: The group all other groups are derived from.\nderived_from: tosca.groups.Root\nsofdcar.groups.Location:\ndescription: The geographical location of nodes.\nderived_from: sofdcar.groups.Root\nsofdcar.groups.Domain:\ndescription: The domain in a domain-oriented architecture.\nderived_from: sofdcar.groups.Root\nsofdcar.groups.Zone:\ndescription: The zone in a zone-oriented architecture.\nderived_from: sofdcar.groups.Root\ninterface_types:\nsofdcar.interfaces.Root:\ndescription: The interface all other interfaces are derived from.\nderived_from: tosca.interfaces.Root\nsofdcar.interfaces.Nodes:\ndescription: The standard management interface of nodes.\nderived_from: tosca.interfaces.node.lifecycle.Standard\noperations:\nbuild:\ndescription: Builds deployment artifacts.\nsofdcar.interfaces.Relationship:\ndescription: The standard management interface for relationships.\nderived_from: tosca.interfaces.relationship.Configure\nnode_types:\nsofdcar.nodes.Root:\ndescription: The node all other nodes are derived from.\nderived_from: tosca.nodes.Root\nsofdcar.nodes.Vehicle:\ndescription: The node all other vehicles are derived from.\nderived_from: sofdcar.nodes.Root\nsofdcar.nodes.Cloud:\ndescription: The node all other clouds are derived from.\nderived_from: sofdcar.nodes.Root\nsofdcar.nodes.ECU.Hardware:\ndescription: The hardware of an ECU.\nderived_from: sofdcar.nodes.Root\ncapabilities:\nhost:\ntype: sofdcar.capabilities.Host.ECU.Software\nvalid_source_types: [sofdcar.nodes.ECU.Software]\nsofdcar.nodes.ECU.Software:\ndescription: The software running on an ECU.\nderived_from: sofdcar.nodes.Root\nrequirements:\n- host:\ncapability: sofdcar.capabilities.Host.ECU.Software\nrelationship: tosca.relationships.HostedOn\nsofdcar.nodes.ECU.Runtime:\ndescription: The runtime for an ECU software.\nderived_from: sofdcar.nodes.ECU.Software\ncapabilities:\nhost:\ntype: sofdcar.capabilities.Host.ECU.Software\nvalid_source_types: [sofdcar.nodes.ECU.Software]\nrequirements:\n- host:\ncapability: sofdcar.capabilities.Host.ECU.Software\nrelationship: tosca.relationships.HostedOn\nsofdcar.nodes.HPC.Software:\ndescription: The software running on an HPC.\nderived_from: tosca.nodes.SoftwareComponent\nsofdcar.nodes.HPC.Hardware:\ndescription: The hardware of an HPC.\nderived_from: sofdcar.nodes.Root\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nvalid_source_types: [tosca.nodes.SoftwareComponent]\nsofdcar.nodes.Actuator:\ndescription: The node all other actuators are derived from.\nderived_from: sofdcar.nodes.Root\nsofdcar.nodes.Accelerator:\ndescription: The node all other accelerators are derived from.\nderived_from: sofdcar.nodes.Actuator\nsofdcar.nodes.Brake:\ndescription: The node all other brakes are derived from.\nderived_from: sofdcar.nodes.Actuator\nsofdcar.nodes.Steering:\ndescription: The node all other steerings are derived from.\nderived_from: sofdcar.nodes.Actuator\nsofdcar.nodes.Light:\ndescription: The node all other lights are derived from.\nderived_from: sofdcar.nodes.Actuator\nsofdcar.nodes.Cooling:\ndescription: The node all other coolings are derived from.\nderived_from: sofdcar.nodes.Actuator\nsofdcar.nodes.Airbag:\ndescription: The node all other airbags are derived from.\nderived_from: sofdcar.nodes.Actuator\nsofdcar.nodes.Sensor:\ndescription: The node all other sensors are derived from.\nderived_from: sofdcar.nodes.Root\nsofdcar.nodes.RADAR:\ndescription: The node all other RADAR are derived from.\nderived_from: sofdcar.nodes.Sensor\nsofdcar.nodes.Camera:\ndescription: The node all other cameras are derived from.\nderived_from: sofdcar.nodes.Sensor\nsofdcar.nodes.LIDAR:\ndescription: The node all other LIDAR are derived from.\nderived_from: sofdcar.nodes.Sensor\nsofdcar.nodes.Ultrasonic:\ndescription: The node all other ultrasonics are derived from.\nderived_from: sofdcar.nodes.Sensor\nsofdcar.nodes.Microphone:\ndescription: The node all other microphones are derived from.\nderived_from: sofdcar.nodes.Sensor\nsofdcar.nodes.Channel:\ndescription: The node all other communication channels are derived from.\nderived_from: sofdcar.nodes.Root\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint\noccurrences: [0, UNBOUNDED]\nsofdcar.nodes.Battery:\ndescription: The node all other batteries are derived from.\nderived_from: sofdcar.nodes.Root\nsofdcar.nodes.Feature:\ndescription: The node all other features are derived from.\nderived_from: sofdcar.nodes.Root\npolicy_types:\nsofdcar.policies.Root:\ndescription: The policy all other policies are derived from.\nderived_from: tosca.policies.Root\nsofdcar.policies.Security:\ndescription: The policy all other security-related policies are derived from.\nderived_from: sofdcar.policies.Root\nsofdcar.policies.Safety:\ndescription: The policy all other safety-related policies are derived from.\nderived_from: sofdcar.policies.Root\nrelationship_types:\nsofdcar.relationships.Root:\ndescription: The relationship all other relationships are derived from.\nderived_from: tosca.relationships.Root\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#appendix-c-tosca-sofdcar-extended-profile","title":"Appendix C \"TOSCA SofDCar Extended Profile\"","text":"

This appendix contains the TOSCA SofDCar Extended profile. The profile is also available as download.

tosca_definitions_version: tosca_simple_yaml_1_3\ndescription: TOSCA Profile for Software-Defined Cars (Extended).\nmetadata:\ntemplate_name: TOSCA SofDCar Profile (Extended)\ntemplate_author: Miles St\u00f6tzner\ntemplate_contact: miles.stoetzner@iste.uni-stuttgart.de\ntemplate_link: https://vintner.opentosca.org\ntemplate_version: 1.0.0-draft\ntemplate_id: tosca-sofdcar-profile-extended\ntemplate_license: https://www.apache.org/licenses/LICENSE-2.0\nabbreviations: |\n- ASIL: Automotive Safety Integrity Level\n- CAN: Controller Area Network\n- CAN-FD: Controller Area Network Flexible Data-Rate\n- ECU: Electronic Control Unit\n- GPIO: General-Purpose Input/ Output\n- HPC: High Performance Computer\n- LIDAR: Light Detection and Ranging\n- LIN: Local Interconnect Network\n- MOST: Media-Oriented Systems Transport\n- OBD: On-Board Diagnostics\n- RADAR: Radio Detection and Ranging\n- SOME/IP: Scalable Service-Oriented Middleware over IP\nacknowledgments: Partially funded by the [German Federal Ministry for Economic Affairs and Climate Action (BMWK)](https://www.bmwk.de) as part of the research project [SofDCar (19S21002)](https://sofdcar.de).\nimports:\n- ./tosca-sofdcar-profile-core.yaml\ncapability_types:\nsofdcar.capabilities.Endpoint.CAN:\ndescription: The capability to provide a CAN endpoint.\nderived_from: sofdcar.capabilities.Endpoint\nsofdcar.capabilities.Endpoint.CAN-FD:\ndescription: The capability to provide a CAN-FD endpoint.\nderived_from: sofdcar.capabilities.Endpoint.CAN\nsofdcar.capabilities.Endpoint.LIN:\ndescription: The capability to provide a LIN endpoint.\nderived_from: sofdcar.capabilities.Endpoint\nsofdcar.capabilities.Endpoint.MOST:\ndescription: The capability to provide a MOST endpoint.\nderived_from: sofdcar.capabilities.Endpoint\nsofdcar.capabilities.Endpoint.GPIO:\ndescription: The capability to provide a GPIO endpoint.\nderived_from: sofdcar.capabilities.Endpoint\nsofdcar.capabilities.Endpoint.FlexRay:\ndescription: The capability to provide a FlexRay endpoint.\nderived_from: sofdcar.capabilities.Endpoint\nsofdcar.capabilities.Endpoint.Ethernet:\ndescription: The capability to provide an Ethernet endpoint.\nderived_from: sofdcar.capabilities.Endpoint\nsofdcar.capabilities.Endpoint.OBD:\ndescription: The capability to provide an OBD endpoint.\nderived_from: sofdcar.capabilities.Endpoint.CAN\nsofdcar.capabilities.Endpoint.SOME/IP:\ndescription: The capability to provide a SOME/IP endpoint.\nderived_from: sofdcar.capabilities.Endpoint.Ethernet\ndata_types:\nsofdcar.data.GPIO.Pin:\ndescription: The GPIO pin used, e.g., when connecting using GPIO.\nderived_from: sofdcar.data.Root\nproperties:\npin:\ntype: integer\ndirection:\ntype: string\nconstraints:\n- valid_values:\n- in\n- out\n- in/out\nnode_types:\nsofdcar.nodes.CAN:\ndescription: The CAN channel all other CAN channels are derived from.\nderived_from: sofdcar.nodes.Channel\nproperties:\nbitrate:\ntype: integer\nrequired: false\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.CAN\noccurrences: [0, UNBOUNDED]\nsofdcar.nodes.CAN-FD:\ndescription: The CAN-FD channel all other CAN-FD channels are derived from.\nderived_from: sofdcar.nodes.CAN\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.CAN-FD\noccurrences: [0, UNBOUNDED]\nsofdcar.nodes.LIN:\ndescription: The LIN channel all other LIN channels are derived from.\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.LIN\noccurrences: [0, UNBOUNDED]\nsofdcar.nodes.MOST:\ndescription: The MOST channel all other MOST channels are derived from.\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.MOST\noccurrences: [0, UNBOUNDED]\nsofdcar.nodes.GPIO:\ndescription: The GIP channel all other GIP channels are derived from.\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.GPIO\noccurrences: [2, 2]\nsofdcar.nodes.FlexRay:\ndescription: The FlexRay channel all other FlexRay channels are derived from.\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.FlexRay\noccurrences: [0, UNBOUNDED]\nsofdcar.nodes.Ethernet:\ndescription: The ethernet channel all other ethernet channels are derived from.\nderived_from: sofdcar.nodes.Channel\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.Ethernet\noccurrences: [2, 2]\nsofdcar.nodes.SOME/IP:\ndescription: The SOME/IP channel all other SOME/IP channels are derived from.\nderived_from: sofdcar.nodes.Ethernet\ncapabilities:\nendpoint:\ntype: sofdcar.capabilities.Endpoint.SOME/IP\noccurrences: [2, 2]\nsofdcar.nodes.Python.Application:\ndescription: >\nNon-normative python application running on an HPC.\nThis application requires a python runtime.\nderived_from: sofdcar.nodes.HPC.Software\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\nsofdcar.nodes.Python.Runtime:\ndescription: >\nNon-normative python runtime running on an HPC.\nThis runtime is able to host python applications and requires a host.\nderived_from: sofdcar.nodes.HPC.Software\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nvalid_source_types: [sofdcar.nodes.Python.Application]\nrequirements:\n- host:\ncapability: tosca.capabilities.Compute\nrelationship: tosca.relationships.HostedOn\nsofdcar.nodes.RaspberryPi.Hardware:\ndescription: >\nThe hardware of a Raspberry Pi serving as an HPC hardware.\nThis Raspberry Pi is able to host HPC software.\nFurthermore, the Raspberry Pi is able to directly host python applications without explicit python runtime since a python runtime is already installed on the Raspberry Pi.\nderived_from: sofdcar.nodes.HPC.Hardware\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nvalid_source_types: [sofdcar.nodes.HPC.Software, sofdcar.nodes.Python.Application]\nsofdcar.nodes.Arduino.Software:\ndescription: The software running on an Arduino.\nderived_from: sofdcar.nodes.ECU.Software\nsofdcar.nodes.Arduino.Software.C++:\ndescription: C++ software running on an Arduino.\nderived_from: sofdcar.nodes.Arduino.Software\nsofdcar.nodes.Arduino.Hardware:\ndescription: >\nThe hardware of an Arduino serving as ECU hardware.\nThe Arduino is able to host Arduino software.\nderived_from: sofdcar.nodes.ECU.Hardware\ncapabilities:\nhost:\ntype: sofdcar.capabilities.Host.ECU.Software\nvalid_source_types: [sofdcar.nodes.Arduino.Software]\npolicy_types:\nsofdcar.policies.ASIL:\ndescription: The policy that all other ASIL policies are derived from.\nderived_from: sofdcar.policies.Safety\nsofdcar.policies.ASIL.A:\ndescription: The policy that represents the ASIL level A.\nderived_from: sofdcar.policies.ASIL\nsofdcar.policies.ASIL.B:\ndescription: The policy that represents the ASIL level B.\nderived_from: sofdcar.policies.ASIL\nsofdcar.policies.ASIL.C:\ndescription: The policy that represents the ASIL level C.\nderived_from: sofdcar.policies.ASIL\nsofdcar.policies.ASIL.D:\ndescription: The policy that represents the ASIL level D.\nderived_from: sofdcar.policies.ASIL\nrelationship_types:\nsofdcar.relationships.CAN:\ndescription: The relationship for CAN connections.\nderived_from: sofdcar.relationships.Root\nproperties:\ninterface:\ntype: string\ndescription: The interface name at the source at which the CAN bus is available.\ndefault: can0\ntarget_interface:\ntype: string\ndescription: The interface name at the target at which the CAN bus is available.\nrequired: false\nbitrate:\ntype: integer\ndescription: The bitrate of the CAN bus.\nrequired: false\nsofdcar.relationships.CAN-FD:\ndescription: The relationship for CAN-FD connections.\nderived_from: sofdcar.relationships.CAN\nsofdcar.relationships.LIN:\ndescription: The relationship for LIN connections.\nderived_from: sofdcar.relationships.Root\nsofdcar.relationships.MOST:\ndescription: The relationships for MOST connections.\nderived_from: sofdcar.relationships.Root\nsofdcar.relationships.GPIO:\ndescription: The relationship for GPIO connections.\nderived_from: sofdcar.relationships.Root\nproperties:\npins:\ntype: list\nentry_schema:\ntype: sofdcar.data.GPIO.Pin\nsofdcar.relationships.FlexRay:\ndescription: The relationship for FlexRay connections.\nderived_from: sofdcar.relationships.Root\nsofdcar.relationships.Ethernet:\ndescription: The relationship for Ethernet connections.\nderived_from: sofdcar.relationships.Root\nsofdcar.relationships.OBD:\ndescription: The relationship for OBD connections.\nderived_from: sofdcar.relationships.CAN\nsofdcar.relationships.SOME/IP:\ndescription: The relationship for SOME/IP connections.\nderived_from: sofdcar.relationships.Ethernet\n
","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/profile/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["SofDCar","Normative","Profile","Specification"]},{"location":"sofdcar/guides/location/","title":"Distributed Locations","text":"

This document holds an example of two geographically distributed ECUs using the TOSCA SofDCar profile.

","tags":["SofDCar","Guide"]},{"location":"sofdcar/guides/location/#scenario","title":"Scenario","text":"

In this example, there are two ECUs. These two ECUs communicate via CAN which is bridged over the cloud, as shown in Figure 1. Thereby, we model the CAN communication application-centric via a direct relationship between the two software components as well as network-centric via explicitly modeling the CAN busses and their connections to the underlying hardware.

Figure 1: Distributed Locations","tags":["SofDCar","Guide"]},{"location":"sofdcar/guides/location/#appendix-a-service-template","title":"Appendix A \"Service Template\"","text":"

This appendix contains the service template of this guide. The service template is also available as download.

tosca_definitions_version: tosca_simple_yaml_1_3\ndescription: Example of an architecture distributed across several geographical locations.\nimports:\n- types.yaml\ntopology_template:\nnode_templates:\n###################################################\n#\n# Cloud\n#\n###################################################\ncloud_service:\ntype: example.nodes.Cloud.Service\nrequirements:\n- host: cloud_provider\ncloud_provider:\ntype: example.nodes.Cloud.Provider\n###################################################\n#\n# Location A\n#\n###################################################\na_ecu_software:\ntype: example.nodes.ECU.Software\nrequirements:\n- host: a_ecu_runtime\n- can: a_can_bus\n- connect: b_ecu_software\na_ecu_runtime:\ntype: example.nodes.ECU.Runtime\nrequirements:\n- host: a_ecu_hardware\na_ecu_hardware:\ntype: example.nodes.ECU.Hardware\nrequirements:\n- can: a_can_bus\na_can_bus:\ntype: sofdcar.nodes.CAN\na_can_bridge:\ntype: example.nodes.CAN.Bridge\nrequirements:\n- can: a_can_bus\n- cloud: cloud_service\n###################################################\n#\n# Location B\n#\n###################################################\nb_ecu_software:\ntype: example.nodes.ECU.Software\nrequirements:\n- host: b_ecu_runtime\n- can: b_can_bus\nb_ecu_runtime:\ntype: example.nodes.ECU.Runtime\nrequirements:\n- host: b_ecu_hardware\nb_ecu_hardware:\ntype: example.nodes.ECU.Hardware\nrequirements:\n- can: b_can_bus\nb_can_bus:\ntype: sofdcar.nodes.CAN\nb_can_bridge:\ntype: example.nodes.CAN.Bridge\nrequirements:\n- can: b_can_bus\n- cloud: cloud_service\ngroups:\ncloud:\ntype: sofdcar.groups.Location\nmembers:\n- cloud_service\n- cloud_provider\nlocation_a:\ntype: sofdcar.groups.Location\nmembers:\n- a_ecu_software\n- a_ecu_runtime\n- a_ecu_hardware\n- a_can_bus\n- a_can_bridge\nlocation_b:\ntype: sofdcar.groups.Location\nmembers:\n- b_ecu_software\n- b_ecu_runtime\n- b_ecu_hardware\n- b_can_bus\n- b_can_bridge\n
","tags":["SofDCar","Guide"]},{"location":"sofdcar/guides/location/#appendix-b-type-definitions","title":"Appendix B \"Type Definitions\"","text":"

This appendix contains the type definitions of this guide. The type definitions are also available as download

tosca_definitions_version: tosca_simple_yaml_1_3\nimports:\n- ../../tosca-sofdcar-profile.yaml\n- ../../tosca-sofdcar-profile-extended.yaml\nnode_types:\nexample.nodes.Cloud.Service:\nderived_from: tosca.nodes.SoftwareComponent\ncapabilities:\nendpoint:\ntype: tosca.capabilities.Endpoint\nexample.nodes.Cloud.Provider:\nderived_from: sofdcar.nodes.Cloud\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nexample.nodes.ECU.Software:\nderived_from: sofdcar.nodes.ECU.Software\ncapabilities:\nconnect:\ntype: sofdcar.capabilities.Endpoint.CAN\nrequirements:\n- can:\ncapability: sofdcar.capabilities.Endpoint.CAN\nrelationship: sofdcar.relationships.CAN\noccurrences: [0, 1]\n- connect:\ncapability: sofdcar.capabilities.Endpoint.CAN\nrelationship: sofdcar.relationships.CAN\noccurrences: [0, 1]\nexample.nodes.ECU.Runtime:\nderived_from: sofdcar.nodes.ECU.Runtime\nexample.nodes.ECU.Hardware:\nderived_from: sofdcar.nodes.ECU.Hardware\nrequirements:\n- can:\ncapability: sofdcar.capabilities.Endpoint.CAN\nrelationship: sofdcar.relationships.CAN\nexample.nodes.CAN.Bridge:\nderived_from: sofdcar.nodes.Root\nrequirements:\n- cloud:\ncapability: tosca.capabilities.Endpoint\nrelationship: tosca.relationships.ConnectsTo\n- can:\ncapability: sofdcar.capabilities.Endpoint.CAN\nrelationship: sofdcar.relationships.CAN\n
","tags":["SofDCar","Guide"]},{"location":"sofdcar/guides/zone/","title":"Zonal Architecture","text":"

This document holds an example of a zonal architecture using the TOSCA SofDCar profile. This zonal architecture consists of several zones inside the vehicle in which also cloud services are integrated.

","tags":["SofDCar","Guide"]},{"location":"sofdcar/guides/zone/#scenario","title":"Scenario","text":"

In this example, there are two zones which both contain a zone control unit, an actuator, and a sensor, as shown in Figure 1. Communication inside those zones is based on CAN. Furthermore, there is a third zone which contains a vehicle control unit. This vehicle control unit connects the other two zones based on Ethernet. Moreover, this vehicle control unit also connects to some service running in the cloud.

Figure 1: Zonal Architecture","tags":["SofDCar","Guide"]},{"location":"sofdcar/guides/zone/#appendix-a-service-template","title":"Appendix A \"Service Template\"","text":"

This appendix contains the service template of this guide. The service template is also available as download.

tosca_definitions_version: tosca_simple_yaml_1_3\ndescription: Example of a zonal architecture connected to the cloud.\nimports:\n- types.yaml\ntopology_template:\nnode_templates:\n###################################################\n#\n# Cloud\n#\n###################################################\ncloud_service:\ntype: example.nodes.Cloud.Service\nrequirements:\n- host: cloud_provider\ncloud_provider:\ntype: example.nodes.Cloud.Provider\n###################################################\n#\n# Vehicle Control Unit\n#\n###################################################\nvehicle_control_unit_software:\ntype: example.nodes.VCU.Software\nrequirements:\n- host: vehicle_control_unit_hardware\n- cloud: cloud_service\nvehicle_control_unit_hardware:\ntype: example.nodes.VCU.Hardware\nrequirements:\n- ethernet: zone_a_ethernet\n- ethernet: zone_b_ethernet\n###################################################\n#\n# Zone A\n#\n###################################################\nzone_a_control_unit_software:\ntype: example.nodes.ZCU.Software\nrequirements:\n- host: zone_a_control_unit_hardware\n- vcu: vehicle_control_unit_software\nzone_a_control_unit_hardware:\ntype: example.nodes.ZCU.Hardware\nrequirements:\n- ethernet: zone_a_ethernet\n- can: zone_a_can_bus\nzone_a_ethernet:\ntype: sofdcar.nodes.Ethernet\nzone_a_can_bus:\ntype: sofdcar.nodes.CAN\nzone_a_actuator:\ntype: example.nodes.Actuator\nrequirements:\n- can: zone_a_can_bus\n- zcu: zone_a_control_unit_software\nzone_a_sensor:\ntype: example.nodes.Sensor\nrequirements:\n- can: zone_a_can_bus\n- zcu: zone_a_control_unit_software\n###################################################\n#\n# Zone B\n#\n###################################################\nzone_b_control_unit_software:\ntype: example.nodes.ZCU.Software\nrequirements:\n- host: zone_b_control_unit_hardware\n- vcu: vehicle_control_unit_software\nzone_b_control_unit_hardware:\ntype: example.nodes.ZCU.Hardware\nrequirements:\n- ethernet: zone_b_ethernet\n- can: zone_b_can_bus\nzone_b_ethernet:\ntype: sofdcar.nodes.Ethernet\nzone_b_can_bus:\ntype: sofdcar.nodes.CAN\nzone_b_actuator:\ntype: example.nodes.Actuator\nrequirements:\n- can: zone_b_can_bus\n- zcu: zone_b_control_unit_software\nzone_b_sensor:\ntype: example.nodes.Sensor\nrequirements:\n- can: zone_b_can_bus\n- zcu: zone_b_control_unit_software\ngroups:\ncloud:\ntype: tosca.groups.Root\nmembers:\n- cloud_service\n- cloud_provider\nzone_a:\ntype: sofdcar.groups.Zone\nmembers:\n- zone_a_control_unit_software\n- zone_a_control_unit_hardware\n- zone_a_ethernet\n- zone_a_can_bus\n- zone_a_actuator\n- zone_a_sensor\nzone_b:\ntype: sofdcar.groups.Zone\nmembers:\n- zone_b_control_unit_software\n- zone_b_control_unit_hardware\n- zone_b_ethernet\n- zone_b_can_bus\n- zone_b_actuator\n- zone_b_sensor\nzone_c:\ntype: sofdcar.groups.Zone\nmembers:\n- vehicle_control_unit_software\n- vehicle_control_unit_hardware\n
","tags":["SofDCar","Guide"]},{"location":"sofdcar/guides/zone/#appendix-b-type-definitions","title":"Appendix B \"Type Definitions\"","text":"

This appendix contains the type definitions of this guide. The type definitions are also available as download

tosca_definitions_version: tosca_simple_yaml_1_3\nimports:\n- ../../tosca-sofdcar-profile.yaml\n- ../../tosca-sofdcar-profile-extended.yaml\nnode_types:\nexample.nodes.Cloud.Service:\nderived_from: tosca.nodes.SoftwareComponent\ncapabilities:\nendpoint:\ntype: tosca.capabilities.Endpoint\nexample.nodes.Cloud.Provider:\nderived_from: sofdcar.nodes.Cloud\ncapabilities:\nhost:\ntype: tosca.capabilities.Compute\nexample.nodes.VCU.Software:\nderived_from: sofdcar.nodes.HPC.Software\ncapabilities:\nendpoint:\ntype: tosca.capabilities.Endpoint\nrequirements:\n- cloud:\ncapability: tosca.capabilities.Endpoint\nrelationship: tosca.relationships.ConnectsTo\nexample.nodes.VCU.Hardware:\nderived_from: sofdcar.nodes.HPC.Hardware\nrequirements:\n- ethernet:\ncapability: sofdcar.capabilities.Endpoint.Ethernet\nrelationship: sofdcar.relationships.Ethernet\noccurrences: [0, UNBOUNDED]\nexample.nodes.ZCU.Software:\nderived_from: sofdcar.nodes.HPC.Software\ncapabilities:\nendpoint:\ntype: tosca.capabilities.Endpoint\nrequirements:\n- vcu:\ncapability: tosca.capabilities.Endpoint\nrelationship: tosca.relationships.ConnectsTo\nexample.nodes.ZCU.Hardware:\nderived_from: sofdcar.nodes.HPC.Hardware\nrequirements:\n- can:\ncapability: sofdcar.capabilities.Endpoint.CAN\nrelationship: sofdcar.relationships.CAN\n- ethernet:\ncapability: sofdcar.capabilities.Endpoint.Ethernet\nrelationship: sofdcar.relationships.Ethernet\nexample.nodes.Actuator:\nderived_from: sofdcar.nodes.Actuator\nrequirements:\n- can:\ncapability: sofdcar.capabilities.Endpoint.CAN\nrelationship: sofdcar.relationships.CAN\n- zcu:\ncapability: tosca.capabilities.Endpoint\nrelationship: tosca.relationships.ConnectsTo\nexample.nodes.Sensor:\nderived_from: sofdcar.nodes.Sensor\nrequirements:\n- can:\ncapability: sofdcar.capabilities.Endpoint.CAN\nrelationship: sofdcar.relationships.CAN\n- zcu:\ncapability: tosca.capabilities.Endpoint\nrelationship: tosca.relationships.ConnectsTo\n
","tags":["SofDCar","Guide"]},{"location":"variability4tosca/benchmark/","title":"Benchmark","text":"

To benchmark our implementation of a Variability4TOSCA processor, we run several tests. Thereby, a service template is generated and then resolved based on a seed. A seed of value n results in 2n node templates and 2n relationship templates, thus, 4n templates. For example, a seed of 10.000 generates 20.0000 node templates and 20.0000 relationship templates. When variability is resolved, n node templates and n relationship templates are removed. An concrete example is given below.

","tags":["Variability4TOSCA"]},{"location":"variability4tosca/benchmark/#tests-in-memory","title":"Tests In-Memory","text":"

The first test suite runs the tests in-memory. Thus, generated and resolved service templates are not read or stored to the filesystem.

Test Seed Templates Median Median per Template 1 10 40 37.918 ms 0.948 ms 2 250 1,000 38.578 ms 0.039 ms 3 500 2,000 71.489 ms 0.036 ms 4 1,000 4,000 136.850 ms 0.034 ms 5 2,500 10,000 334.963 ms 0.033 ms 6 5,000 20,000 669.432 ms 0.033 ms 7 10,000 40,000 1.365 s 0.034 ms","tags":["Variability4TOSCA"]},{"location":"variability4tosca/benchmark/#tests-with-filesystem","title":"Tests with Filesystem","text":"

The second test suite runs the tests with filesystem interaction. Thus, generated and resolved service templates are also read and stored to the filesystem.

Test Seed Templates Median Median per Template 1 10 40 5.992 ms 0.150 ms 2 250 1,000 48.485 ms 0.048 ms 3 500 2,000 94.863 ms 0.047 ms 4 1,000 4,000 182.193 ms 0.046 ms 5 2,500 10,000 463.675 ms 0.046 ms 6 5,000 20,000 955.071 ms 0.048 ms 7 10,000 40,000 1.997 s 0.050 ms","tags":["Variability4TOSCA"]},{"location":"variability4tosca/benchmark/#file-measurements","title":"File Measurements","text":"

The written variable service templates have the following measurements.

Test Seed File Size File Lines 1 10 10 kb 322 2 250 254 kb 7,762 3 500 509 kb 15,512 4 1,000 1.019 mb 31,012 5 2,500 2.578 mb 77,512 6 5,000 5.175 mb 155,012 7 10,000 10.370 mb 310,012","tags":["Variability4TOSCA"]},{"location":"variability4tosca/benchmark/#computing-resources","title":"Computing Resources","text":"

The following computing resources have been used for the benchmark.

Resource Value Date 2024-01-27 OpenTOSCA Vintner e800c672edebf2d7338029680b58016244461736 Operating System Windows 11 Processor Intel Core i7-12700KF Memory 2x Crucial RAM 32GB DDR4 3200MHz CL22 Motherboard ASRock H670 PG Riptide Intel H670 Graphic Card GeForce RTX TM 2060 WINDFORCE OC 6G Disk Samsung 990 Pro NVMe M.2 SSD PCIe 4.0 1TB","tags":["Variability4TOSCA"]},{"location":"variability4tosca/benchmark/#running-the-benchmark","title":"Running the Benchmark","text":"

To run the benchmark on your own, run the following command. For more information see Interface. Feel free to open a merge request, if your benchmarking results are better.

vintner setup benchmark --markdown --io\n
","tags":["Variability4TOSCA"]},{"location":"variability4tosca/benchmark/#service-template-under-test","title":"Service Template Under Test","text":"

The following is an example of the expected service template that is under test when the seed is 2.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode: { type: string }\nexpressions:\ncondition_0_present: { equal: [ { variability_input: mode }, present ] }\ncondition_0_removed: { equal: [ { variability_input: mode }, absent ] }\ncondition_1_present: { equal: [ { variability_input: mode }, present ] }\ncondition_1_removed: { equal: [ { variability_input: mode }, absent ] }\nnode_templates:\ncomponent_0_present:\ntype: component_type_0_present\nconditions: { logic_expression: condition_0_present }\nrequirements:\n-   relation_present:\nnode: component_1_present\nconditions: { logic_expression: condition_0_present }\nrelationship: relationship_0_present\n-   relation_removed:\nnode: component_1_removed\nconditions: { logic_expression: condition_0_removed }\nrelationship: relationship_0_removed\ncomponent_0_removed:\ntype: component_type_0_removed\nconditions: { logic_expression: condition_0_removed }\ncomponent_1_present:\ntype: component_type_1_present\nconditions: { logic_expression: condition_1_present }\nrequirements:\n-   relation_present:\nnode: component_0_present\nconditions: { logic_expression: condition_1_present }\nrelationship: relationship_1_present\n-   relation_removed:\nnode: component_0_removed\nconditions: { logic_expression: condition_1_removed }\nrelationship: relationship_1_removed\ncomponent_1_removed:\ntype: component_type_1_removed\nconditions: { logic_expression: condition_1_removed }\nrelationship_templates:\nrelationship_0_present:\ntype: relationship_type_0_present\nrelationship_0_removed:\ntype: relationship_type_0_removed\nrelationship_1_present:\ntype: relationship_type_1_present\nrelationship_1_removed:\ntype: relationship_type_1_removed\n
","tags":["Variability4TOSCA"]},{"location":"variability4tosca/dynamic/","title":"Dynamic Deployment Artifacts","text":"","tags":["Variability4TOSCA","Specification","Experimental"]},{"location":"variability4tosca/dynamic/#variability4tosca-dynamic-deployment-artifacts-10-release-candidate","title":"Variability4TOSCA Dynamic Deployment Artifacts 1.0 Release Candidate","text":"

Warning

This specification is experimental.

This document specifies dynamic deployment artifacts which are supposed to be build on-demand based on information in the topology. The intention is to build variants of deployment artifacts which are specific for the application. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Variability4TOSCA","Specification","Experimental"]},{"location":"variability4tosca/dynamic/#dynamic-build-artifacts","title":"Dynamic Build Artifacts","text":"

To build dynamic deployment artifacts a build management operation is defined for the tosca.interfaces.node.lifecycle.Variability interface. This management operation can be used in several stages. Artifacts can be build during modeling when packaging the application as CSAR, right before the deployment process or during deployment. The implementation of the build management operation can start, e.g., a build pipeline and set a reference, such as a Docker Tag as attribute of the respective node template. This reference can then be used by the create management operation of tosca.interfaces.node.lifecycle.Standard.

hl_lines=\"2 3\" linenums=\"1\" tosca.interfaces.node.lifecycle.Variability + build: + description: Builds a Deployment Artifact

A rough idea has been also mentioned in TOSCA Simple Profile in YAML Version 1.3.

","tags":["Variability4TOSCA","Specification","Experimental"]},{"location":"variability4tosca/dynamic/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Variability4TOSCA","Specification","Experimental"]},{"location":"variability4tosca/dynamic/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Variability4TOSCA","Specification","Experimental"]},{"location":"variability4tosca/dynamic/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Variability4TOSCA","Specification","Experimental"]},{"location":"variability4tosca/feature-ide/","title":"Feature IDE","text":"","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/feature-ide/#variability4tosca-feature-ide-integration-10-release-candidate","title":"Variability4TOSCA Feature IDE Integration 1.0 Release Candidate","text":"

This document specifies the integration of FeatureIDE into the Variability4TOSCA specification. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/feature-ide/#featureide-integration","title":"FeatureIDE Integration","text":"

In order to generate only valid service templates, feature models can be used to model dependencies between variability inputs. A feature model of Feature IDE is supposed to be packaged as feature-model.xml at the root of the CSAR. We describe the mapping between the Extended XML Configuration to variability inputs.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/feature-ide/#features","title":"Features","text":"

Each feature is mapped to a Boolean variability input. The value is true if either automatic or manual is selected. Otherwise, the value is false. Thereby, the feature name is transformed to lowercase and all whitespaces are replaced with an underscore.

FeatureIDE Extended XMLYAML
<feature automatic=\"selected\" manual=\"selected\" name=\"Feature A\"/>\n
feature_a: true\n

Feature names can be overridden by the value of the attribute __name.

FeatureIDE Extended XMLYAML
<feature automatic=\"undefined\" manual=\"selected\" name=\"Feature C\">\n<attribute name=\"__name\" value=\"feature_overridden\"/>\n</feature>\n
feature_overridden: true\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/feature-ide/#attributes","title":"Attributes","text":"

Each attribute is mapped to a variability input. The values are parsed by a JSON parser. If parsing throws an error, then the value is treated as a string.

The attribute name is namespaced by their feature, transformed to lowercase and all whitespaces are replaced with an underscore.

FeatureIDE Extended XMLYAML
<feature automatic=\"undefined\" manual=\"selected\" name=\"Feature A\">\n<attribute name=\"attr_bool_true\" value=\"true\"/>\n</feature>\n
feature_a_attr_bool_true: true\n

Attribute names can be overridden by the value of the attribute __name_${attribute name}.

FeatureIDE Extended XMLYAML
<feature automatic=\"undefined\" manual=\"selected\" name=\"Feature D\">\n<attribute name=\"attr Long\" value=\"1\"/>\n<attribute name=\"__name_attr_long\" value=\"attr_overridden\"/>\n</feature>\n
feature_d_attr_overridden: true\n

The full attribute name (including the feature namespacing) can be overridden by the value of the attribute __full_name_${attribute name}.

FeatureIDE Extended XMLYAML
<feature automatic=\"undefined\" manual=\"selected\" name=\"Feature E\">\n<attribute name=\"attr_another_string\" value=\"something else\"/>\n<attribute name=\"__full_name_attr_another_string\" value=\"fully_overridden\"/>\n</feature>\n
fully_overridden: something else\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/feature-ide/#example","title":"Example","text":"

The following example of a complete FeatureIDE Extended XML Configuration contains examples of the above introduced concepts.

FeatureIDE Extended XMLYAML
<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<extendedConfiguration>\n<feature automatic=\"selected\" manual=\"undefined\" name=\"Application\"/>\n<feature automatic=\"selected\" manual=\"selected\" name=\"Feature A\">\n<attribute name=\"attr_bool_true\" value=\"true\"/>\n<attribute name=\"attr_bool_false\" value=\"false\"/>\n<attribute name=\"attr LoNg\" value=\"3\"/>\n<attribute name=\"attr_double\" value=\"2.5\"/>\n<attribute name=\"attr_string\" value=\"hello world\"/>\n</feature>\n<feature automatic=\"undefined\" manual=\"undefined\" name=\"Feature B\"/>\n<feature automatic=\"undefined\" manual=\"selected\" name=\"Feature C\">\n<attribute name=\"__name\" value=\"feature_overridden\"/>\n</feature>\n<feature automatic=\"undefined\" manual=\"selected\" name=\"Feature D\">\n<attribute name=\"attr Long\" value=\"1\"/>\n<attribute name=\"__name_attr_long\" value=\"attr_overridden\"/>\n</feature>\n<feature automatic=\"undefined\" manual=\"selected\" name=\"Feature E\">\n<attribute name=\"__name\" value=\"feature_another_overridden\"/>\n<attribute name=\"attr_double\" value=\"1337\"/>\n<attribute name=\"attr_string\" value=\"something\"/>\n<attribute name=\"__name_attr_string\" value=\"attr_also_overridden\"/>\n<attribute name=\"attr_another_string\" value=\"something else\"/>\n<attribute name=\"__full_name_attr_another_string\" value=\"fully_overridden\"/>\n</feature>\n</extendedConfiguration>\n
application: true\nfeature_a: true\nfeature_a_attr_bool_true: true\nfeature_a_attr_bool_false: false\nfeature_a_attr_long: 3\nfeature_a_attr_double: 2.5\nfeature_a_attr_string: 'hello world'\nfeature_b: false\nfeature_overridden: true\nfeature_d: true\nfeature_d_attr_overridden: 1\nfeature_another_overridden: true\nfeature_another_overridden_attr_double: 1337\nfeature_another_overridden_attr_also_overridden: something\nfully_overridden: something else\n

To run the transformation using our reference implementation, run the following command.

vintner template inputs --path path/to/my-inputs.xml --output result.yaml\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/feature-ide/#reference-implementation","title":"Reference Implementation","text":"

We provide a reference implementation for this specification as part of OpenTOSCA Vintner. OpenTOSCA Vintner is a TOSCA preprocessing and management layer. The project is open-source, licensed under Apache-2.0, and publicly available at GitHub.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/feature-ide/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/feature-ide/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/feature-ide/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/testing/","title":"Testing","text":"","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/testing/#variability4tosca-testing-10-release-candidate","title":"Variability4TOSCA Testing 1.0 Release Candidate","text":"

This document specifies variability tests for the Variability4TOSCA specification to continuously test that the variability is resolved as expected, e.g., during continuous integration pipelines or before importing the CSAR. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/testing/#variability-tests","title":"Variability Tests","text":"

A CSAR might contain variability tests. Therefore, add the directory /tests in the root of the CSAR. Each test is defined inside its own directory of /tests and might contain the following files.

File Description expected.yaml The expected service template after resolving variability. inputs.yaml The variability inputs used for resolving variability. test.yaml The test configuration.

Here is an exemplary structure of a CSAR that has one variability test.

<CSAR Name>/\n\u251c\u2500 tests/\n\u2502  \u251c\u2500 <Test Name>/\n\u2502  \u2502  \u251c\u2500 expected.yaml\n\u2502  \u2502  \u251c\u2500 inputs.yaml\n\u2502  \u2502  \u251c\u2500 test.yaml\n\u251c\u2500 service-template.yaml\n

The following configurations can be configured in the test configuration file.

Keyname Mandatory Type Description name false String Display name of the test case (default is the directory name). description false String Description of the test case. presets false String | List(String) Variability presets to use when resolving variability. error false String The expected error that is thrown. template false String Path (relative to test.yaml) to the variable service template. expected false String Path (relative to test.yaml) to the expected service template after resolving variability. inputs false String Path (relative to test.yaml) to the variability inputs. replace false List(Tuple(Find: String, Replace: String)) An optional list of strings to search and replace for in the generated service template. merge false Object An optional object that is merged into the expected service template.

There are the following special cases considering test directory names.

  • Hidden Directories: Directories starting with . are ignored.
  • Isolating Tests: Append ---only to a test directory to run only this specific test.
  • Disabling Tests: Append ---disabled to a test directory to disable a specific test.
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/testing/#example","title":"Example","text":"

The following service template contains two conditional nodes. A variability inputs decides which node should be present.

/my-testing-csar/service-template.yaml
tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\noptions:\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: tosca.nodes.Root\nconditions: {equal: [{variability_input: mode}, one]}\nnode_two:\ntype: tosca.nodes.Root\nconditions: {equal: [{variability_input: mode}, two]}\n

We specify the following test in which we expect that only the first node is present after resolving variability.

/my-testing-csar/my-test/test.yaml
name: My Test\ndescriptions: | This tests is a simple example.\nWe expect the following: \n- First node is preserved\n- Second node is removed\n

The following inputs are used.

/my-testing-csar/my-test/inputs.yaml
mode: one\n

We expect the following service template.

/my-testing-csar/my-test/expected.yaml
tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: tosca.nodes.Root\n

To execute the test using our reference implementation, run the following command.

vintner template test --path path/to/my-testing-csar/\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/testing/#reference-implementation","title":"Reference Implementation","text":"

We provide a reference implementation for this specification as part of OpenTOSCA Vintner. OpenTOSCA Vintner is a TOSCA preprocessing and management layer. The project is open-source, licensed under Apache-2.0, and publicly available at GitHub.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/testing/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/testing/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/testing/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/guides/artifacts/","title":"Conditional Deployment Artifacts and Conditional Properties","text":"

This document holds a detailed step-by-step guide to deploy the enterprise plan of a web shop application to showcase conditional deployment artifacts and conditional properties, as presented in Figure 1. The motivating scenario is a simple shopping application that consists of a shop component and a database. Thereby, we take the role of a SaaS provider which offers different pricing plans to his customers. Furthermore, there are two different deployment artifacts: the community deployment artifact and the enterprise deployment artifact. The community deployment artifact implements the core functionality of the shop component whereas the enterprise deployment artifact additionally implements analytical reporting functionalities.

There is a free community plan that deploys the community deployment artifact along with SQLite on a small virtual machine. In contrast, the business plan is a paid plan that deploys the enterprise deployment artifact which contains analytical reporting functionalities along with MySQL on Google Cloud Platform (GCP). However, to have full access to all analytical reporting functionalities, the enterprise plan is required. An important aspect of the deployment of the shop component is that the correct SQL dialect must be configured.

Figure 1: The different deployment variants.","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#requirements","title":"Requirements","text":"

We need to fulfill the following requirements to follow this step-by-step guide.

  • Ubuntu 22.04
  • Access to a GCP project
  • GCloud
  • Git
  • Unfurl
  • Terraform
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#preparation","title":"Preparation","text":"

First, we install OpenTOSCA Vintner. For more information see Installation.

curl -fsSL https://vintner.opentosca.org/install.sh | sudo bash -\n

Next, we configure Unfurl as the orchestrator that should be used for the deployment. For more information see Orchestrators.

vintner orchestrators init unfurl\nvintner orchestrators enable --orchestrator unfurl\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#import-the-template","title":"Import the Template","text":"Figure 2: The Variability4TOSCA template.

First, we clone the repository.

git clone https://github.com/OpenTOSCA/opentosca-vintner.git\ncd opentosca-vintner\ngit lfs install\ngit lfs pull\n./task install\n./task tasks:build\n./task examples:pull:link\n

Next, we import the template and initialize an instance.

vintner templates import --template artifacts --path examples/unfurl-artifacts\n

Next, we initialize an application instance.

vintner instances init --instance artifacts --template artifacts\n

We can optionally inspect the Variability4TOSCA template. This template contains all possible elements having conditions assigned. For example, the MySQL database has a condition assigned that checks if the enterprise deployment artifact is present. An overview is given in Figure 2.

vintner templates inspect --template artifacts\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#resolve-variability","title":"Resolve Variability","text":"Figure 3: The deployment variant.

We intend to deploy the enterprise plan. Furthermore, we want to configure the display language of the shop component to be German. We specify this when resolving variability.

vintner instances resolve --instance artifacts --presets enterprise\n

We can optionally inspect the generated TOSCA-compliant template. This template contains only the elements required for the enterprise plan. Notably, the enterprise deployment artifacts is present and configured to use the MySQL dialect. An overview is given in Figure 3.

vintner instances inspect --instance artifacts\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#deploy-the-application","title":"Deploy the Application","text":"

Finally, we deploy the application. Therefore, we need to provide deployment inputs, e.g., credentials to GCP. Possible deployment inputs are specified in topology_template.inputs of the TOSCA-compliant template. The deployment will take around 15-20 minutes.

vintner instances deploy --instance artifacts --inputs ${INPUTS_PATH}\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#undeploy-the-application","title":"Undeploy the Application","text":"

Afterward, we can undeploy the application.

vintner instances undeploy --instance artifacts\n

Optionally, we can remove the instance and cleanup the filesystem. Cleaning up the filesystem removes any data including, e.g., all imported templates and created instances.

vintner instances delete --instance pruning\nvintner setup clean --force\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#complexity-analysis","title":"Complexity Analysis","text":"

The templates for our complexity analysis can be found here.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#logs","title":"Logs","text":"

This deployment is also executed in our integration pipeline, which is executed once a week. The logs of the corresponding GitHub action can be accessed here. Relevant jobs start with \"Unfurl Artifacts\". Note, a GitHub account is required to access these logs. The raw logs are available without requiring an GitHub account.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#zenodo","title":"Zenodo","text":"

The assets of this guide can be also found on Zenodo.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/artifacts/#publication","title":"Publication","text":"

This guide is part of our research paper published at the main track of the CoopIS 2023. Also, this guide is further extended by our demonstration paper which was published at the demo track at the CoopIS 2023. Also check our other publications.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CoopIS 2023","Unfurl"]},{"location":"variability4tosca/guides/aware/","title":"Hosting-Aware Pruning","text":"

This document holds the step-by-step guide to deploy the on-premise deployment variant of a webshop application to showcase the hosting-aware pruning. The webshop application can be deployed in the following deployment variants.

  • on-premise/ local: Kubernetes on a single virtual machine on a local OpenStack (OS) instance
  • cloud: Google Cloud Platform (GCP)
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#requirements","title":"Requirements","text":"

We need to fulfill the following requirements to follow this step-by-step guide.

  • Linux machine, e.g., Ubuntu 22.04
  • Access to an OpenStack instance
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#preparation","title":"Preparation","text":"

First, we install OpenTOSCA Vintner. For more information see Installation.

curl -fsSL https://vintner.opentosca.org/install.sh | sudo bash -\n

Next, we install Unfurl.

vintner install unfurl\n

Next, we configure Unfurl as the orchestrator that should be used for the deployment.

vintner orchestrators init unfurl\nvintner orchestrators enable --orchestrator unfurl\n

Next, we attest that Vintner can use unfurl.

vintner orchestrators attest --orchestrator unfurl\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#import-the-template","title":"Import the Template","text":"Figure 1: The Variability4TOSCA model.

Next, we import the Variability4TOSCA template.

vintner templates import --template aware --path examples/unfurl-aware\n

Then, we initialize an application instance.

vintner instances init --instance aware --template aware\n

We can optionally inspect the Variability4TOSCA model. This model contains all possible elements having conditions assigned. However, due to the hosting-aware pruning, only a handful of condition must be modeled. This is shown in Figure 1.

vintner templates inspect --template aware\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#resolve-variability","title":"Resolve Variability","text":"Figure 2: The derived TOSCA model.

We want to deploy the on-premise variant of the webshop application on Kubernetes using OpenStack. We specify this when resolving variability as follows.

vintner instances resolve --instance aware --presets local\n

You can optionally inspect the generated TOSCA-compliant model. This template contains only the elements required for the on-premise variant, e.g., Kubernetes. This is shown in Figure 2.

vintner instances inspect --instance aware\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#deploy-the-application","title":"Deploy the Application","text":"

Finally, we can deploy the application. Therefore, we need to provide deployment inputs, e.g., credentials to OpenStack. These inputs are specified in topology_template.inputs of the TOSCA-compliant model. The following inputs must be defined.

os_compute_network: <OS_COMPUTE_NETWORK>\nos_compute_key_name: <OS_COMPUTE_KEY_NAME>\nos_compute_ssh_user: <OS_COMPUTE_SSH_USER>\nos_compute_ssh_key_file: <OS_COMPUTE_SSH_KEY_FILE>\nos_region_name: <OS_REGION_NAME>\nos_auth_type: <OS_AUTH_TYPE>\nos_auth_url: <OS_AUTH_URL>\nos_identity_api_version: <OS_IDENTITY_API_VERSION>\nos_interface: <OS_INTERFACE>\nos_application_credential_id: <OS_APPLICATION_CREDENTIAL_ID>\nos_application_credential_secret: <OS_APPLICATION_CREDENTIAL_SECRET>\n# Also required. Just fill them with dummy values.\ndatabase_password: <DATABASE_PASSWORD>\ngcp_region: <GCP_REGION>\ngcp_service_account_file: <GCP_SERVICE_ACCOUNT_FILE>\ngcp_project: <GCP_PROJECT>\ngcp_auto_scaling: <GCP_AUTO_SCALING>\n

Next, we start the deployment. The deployment will take around 5-10 minutes.

vintner instances deploy --instance aware --inputs ${INPUTS_PATH}\n

Do not abort the deployment manually. Not even in case of errors. Once the deployment command exits, the deployment can be retried as follows.

vintner instances continue --instance aware\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#test-the-application","title":"Test the Application","text":"

Next, we can test that the application is correctly working. Therefore, find out the hostname of the provisioned virtual machine.

curl --fail-with-body http://${HOSTNAME_OF_VM}\n

If no hostname has been assigned, then use the IPv4 address.

curl --fail-with-body http://[${IPv4_ADDRESS_OF_VM}]\n

This should return the following.

{\n\"MESSAGE\": \"Successfully executed query\",\n\"QUERY\": \"SELECT 1 + 1;\",\n\"DB_DIALECT\": \"mysql\",\n\"DB_NAME\": \"shop\",\n\"DB_ADDRESS\": \"mysql\",\n\"DB_USERNAME\": \"root\",\n\"DB_PASSWORD\": \"5e88\"\n}\n

We can observe the following.

  • according to MESSAGE, the query has been successful
  • according to DB_ADDRESS, the MySQL instance running in Kubernetes has been used

Thus, we conclude that the application has been deployed as desired.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#undeploy-the-application","title":"Undeploy the Application","text":"

Afterward, we can undeploy the application.

vintner instances undeploy --instance aware\n

We can also optionally remove the instance or cleanup the filesystem. Note, cleaning up the filesystem removes any vintner data including, e.g., all imported templates and created instances.

vintner instances delete --instance aware\nvintner setup clean --force\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#logs","title":"Logs","text":"

This deployment is also executed in our integration pipeline, which is executed once a week. The logs of the corresponding GitHub action can be accessed here. Relevant jobs start with \"Unfurl Aware\". Note, a GitHub account is required to access these logs. The raw logs are available without requiring an GitHub account.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#zenodo","title":"Zenodo","text":"

The assets of this guide can be also found on Zenodo.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/aware/#publication","title":"Publication","text":"

This guide is part of our paper published at the CLOSER 2024. Also check our other publications.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","Unfurl"]},{"location":"variability4tosca/guides/modes/","title":"Pruning Modes","text":"

This document holds a detailed step-by-step guide to deploy the medium-sized static deployment variant of a webshop application to showcase the Consistent-Loose Pruning Mode. The webshop application can be deployed in the following deployment variants.

  • static with medium resources on a single virtual machine on a local OpenStack (OS) instance
  • static with large resources on a single virtual machine on a local OpenStack (OS) instance
  • elastic with high availability and backups on Google Cloud Platform (GCP)
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#requirements","title":"Requirements","text":"

We need to fulfill the following requirements to follow this step-by-step guide.

  • Linux machine, e.g., Ubuntu 22.04
  • Access to an OpenStack instance
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#preparation","title":"Preparation","text":"

First, we install OpenTOSCA Vintner. For more information see Installation.

curl -fsSL https://vintner.opentosca.org/install.sh | sudo bash -\n

Next, install xOpera.

vintner setup install --xopera\n

Next, we configure xOpera as the orchestrator that should be used for the deployment.

vintner orchestrators init xopera --no-venv\nvintner orchestrators enable --orchestrator xopera\nvintner orchestrators attest --orchestrator xopera\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#import-the-template","title":"Import the Template","text":"Figure 1: The Variability4TOSCA model of our webshop.

First, we import the Variability4TOSCA template.

vintner templates import --template pruning-mode --path examples/xopera-pruning-consistent-loose\n

Then, we initialize an application instance.

vintner instances init --instance pruning-mode --template pruning-mode\n

We can optionally inspect the Variability4TOSCA model. This model contains all possible elements having conditions assigned. However, due to pruning, only a handful of condition must be modeled, e.g., the condition checking if a medium or large virtual machine is required. This is shown in Figure 1.

vintner templates inspect --template pruning-mode\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#resolve-variability","title":"Resolve Variability","text":"Figure 2: The medium-sized static deployment variant of the webshop.

We want to deploy the medium-sized static variant of the webshop application using GCP. We specify this when resolving variability as follows.

vintner instances resolve --instance pruning-mode --presets static\n

You can optionally inspect the generated TOSCA-compliant model. This template contains only the elements required for the elastic variant, e.g., the MySQL database. This is shown in Figure 2.

vintner instances inspect --instance pruning-mode\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#deploy-the-application","title":"Deploy the Application","text":"

Finally, we can deploy the elastic variant. Therefore, we need to provide deployment inputs, e.g., credentials to OpenStack. These inputs are specified in topology_template.inputs of the TOSCA-compliant model. The following inputs must be defined.

os_compute_network: <OS_COMPUTE_NETWORK>\nos_compute_security_groups: <OS_COMPUTE_SECURITY_GROUPS>\nos_compute_key_name: <OS_COMPUTE_KEY_NAME>\nos_compute_ssh_user: <OS_COMPUTE_SSH_USER>\nos_compute_ssh_key_file: <OS_COMPUTE_SSH_KEY_FILE>\nos_region_name: <OS_REGION_NAME>\nos_auth_type: <OS_AUTH_TYPE>\nos_auth_url: <OS_AUTH_URL>\nos_identity_api_version: <OS_IDENTITY_API_VERSION>\nos_interface: <OS_INTERFACE>\nos_application_credential_id: <OS_APPLICATION_CREDENTIAL_ID>\nos_application_credential_secret: <OS_APPLICATION_CREDENTIAL_SECRET>\n# Also required. Just fill them with dummy values.\ndatabase_password: <DATABASE_PASSWORD>\ngcp_region: <GCP_REGION>\ngcp_service_account_file: <GCP_SERVICE_ACCOUNT_FILE>\ngcp_project: <GCP_PROJECT>\ngcp_auto_scaling: <GCP_AUTO_SCALING>\n

Next, start the deployment. The deployment will take around 5 minutes.

vintner instances deploy --instance pruning-mode --inputs ${INPUTS_PATH}\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#test-the-application","title":"Test the Application","text":"

Next, we can test that the application is correctly working. Therefore, find out the hostname of the provisioned virtual machine.

curl --fail-with-body http://${HOSTNAME_OF_VM}:3000\n

If no hostname has been assigned, then use the IPv4 address.

curl --fail-with-body http://[${IPv4_ADDRESS_OF_VM}]:3000\n

This should return the following.

{\n\"MESSAGE\": \"Successfully executed query\",\n\"QUERY\": \"SELECT 1 + 1;\",\n\"DB_DIALECT\": \"sqlite\",\n\"DB_NAME\": \"shop\",\n\"DB_ADDRESS\": \"/var/lib/sqlite-databases/shop.db\",\n\"DB_USERNAME\": \"root\",\n\"DB_PASSWORD\": \"5e88\"\n}\n

We can observe the following.

  • according to MESSAGE, the query has been successful
  • according to DB_DIALECT, the SQLite has been used as dialect
  • according to DB_ADDRESS, a local SQLite database has been used

Thus, we conclude that the application has been deployed as desired.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#undeploy-the-application","title":"Undeploy the Application","text":"

Afterward, we can undeploy the application.

vintner instances undeploy --instance pruning-mode\n

We can also optionally remove the instance or cleanup the filesystem. Note, cleaning up the filesystem removes any vintner data including, e.g., all imported templates and created instances.

vintner instances delete --instance pruning-mode\nvintner setup clean --force\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#logs","title":"Logs","text":"

This deployment is also executed in our integration pipeline, which is executed once a week. The logs of the corresponding GitHub action can be accessed here. Relevant jobs start with \"xOpera Pruning Mode\". Note, a GitHub account is required to access these logs. The raw logs are available without requiring an GitHub account.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#zenodo","title":"Zenodo","text":"

The assets of this guide can be also found on Zenodo.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/modes/#publication","title":"Publication","text":"

This guide is part of our paper published at the CLOSER 2024. Also check our other publications.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","CLOSER 2024","xOpera"]},{"location":"variability4tosca/guides/pipes-and-filters/","title":"Pipes and Filters Application","text":"

Warning

This document presents experimental features and is still in an early stage.

In the following, we provide a detailed step-by-step guide to deploy the Raspberry Pi variant of the pipes-and-filters application to showcase conditional deployment artifacts and properties. The application can be either installed on a Raspberry Pi or on a virtual machine. Based on the underlying host, either an arm64 or x64 binary must be used. The application is also differently configured due to the different availability of RAM.

Figure 1: Deployment Variant using Raspberry Pi

Figure 2: Deployment Variant using Virtual Machine","tags":["Variability4TOSCA","Guide","xOpera","Experimental"]},{"location":"variability4tosca/guides/pipes-and-filters/#environment","title":"Environment","text":"

We expect that the xOpera CLI is installed on a Linux machine and that a Raspberry Pi 3 Model B+ is available.

","tags":["Variability4TOSCA","Guide","xOpera","Experimental"]},{"location":"variability4tosca/guides/pipes-and-filters/#preparation","title":"Preparation","text":"

First, we install OpenTOSCA Vintner. For more information see Installation.

curl -fsSL https://vintner.opentosca.org/install.sh | sudo bash -\n

Next, we need to configure xOpera as the orchestrator that should be used for the deployment. For more information see Orchestrators.

vintner orchestrators init xopera\nvintner orchestrators enable --orchestrator xopera\n
","tags":["Variability4TOSCA","Guide","xOpera","Experimental"]},{"location":"variability4tosca/guides/pipes-and-filters/#deployment","title":"Deployment","text":"

Deploy the Raspberry Pi variant of the pipes-and-filters application. Therefore, import the template, create an instance, resolve the variability and finally deploy the application.

# Add variable service template\nvintner templates import --template pipes-and-filters --path examples/xopera-pipes-and-filters\n\n# Add instance\nvintner instances init --instance pipes-and-filters --template pipes-and-filters\n\n# Resolve variability\nvintner instances resolve --instance pipes-and-filters --presets raspberry\n\n# (optional) Inspect service template\nvintner instances inspect --instance pipes-and-filters\n\n# Deploy instance\nvintner instances deploy --instance pipes-and-filters --inputs ${INPUTS_PATH}\n
","tags":["Variability4TOSCA","Guide","xOpera","Experimental"]},{"location":"variability4tosca/guides/pipes-and-filters/#undeployment","title":"Undeployment","text":"

Cleanup the deployment. Therefore, undeploy the instance and cleanup the filesystem.

# Undeploy instance\nvintner instances undeploy --instance pipes-and-filters\n\n# Cleanup\nvintner setup clean --force\n
","tags":["Variability4TOSCA","Guide","xOpera","Experimental"]},{"location":"variability4tosca/guides/pruning/","title":"Pruning Elements","text":"Figure 1: The different deployment variants.

This document holds a detailed step-by-step guide to deploy the elastic deployment variant of a web shop application to showcase the reduced modeling effort when pruning elements. The application can be deployed in the following deployment variants, see Figure 1.

  • static with medium resources on a single virtual machine on a local OpenStack (OS) instance
  • static with large resources on a single virtual machine on a local OpenStack (OS) instance
  • elastic with high availability and backups on Google Cloud Platform (GCP)
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#requirements","title":"Requirements","text":"

We need to fulfill the following requirements to follow this step-by-step guide.

  • Ubuntu 22.04
  • Access to a GCP project
  • GCloud
  • Git
  • xOpera
  • Ansible
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#preparation","title":"Preparation","text":"

First, we install OpenTOSCA Vintner. For more information see Installation.

curl -fsSL https://vintner.opentosca.org/install.sh | sudo bash -\n

Next, we configure xOpera as the orchestrator that should be used for the deployment. For more information see Orchestrators.

vintner orchestrators init xopera\nvintner orchestrators enable --orchestrator xopera\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#import-the-template","title":"Import the Template","text":"Figure 2: The Variability4TOSCA template.

First, we clone the repository.

git clone https://github.com/OpenTOSCA/opentosca-vintner.git\ncd opentosca-vintner\ngit lfs install\ngit lfs pull\n./task install\n./task tasks:build\n./task examples:pull:link\n

Next, we import the Variability4TOSCA template.

vintner templates import --template pruning --path examples/xopera-pruning\n

Next, we initialize an application instance.

vintner instances init --instance pruning --template pruning\n

We can optionally inspect the Variability4TOSCA template. This template contains all possible elements having conditions assigned. However, due to pruning, only a handful of condition must be modeled, e.g., the condition checking if a medium or large virtual machine is required. An overview is given in Figure 2.

vintner templates inspect --template pruning\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#resolve-variability","title":"Resolve Variability","text":"Figure 3: The deployment variant.

We intend to deploy the elastic variant. We specify this when resolving variability.

vintner instances resolve --instance pruning --presets elastic\n

We can optionally inspect the generated TOSCA-compliant template. This template contains only the elements required for the elastic variant, e.g., the MySQL database. An overview is given in Figure 3.

vintner instances inspect --instance pruning\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#deploy-the-application","title":"Deploy the Application","text":"

Finally, we deploy the application. Therefore, we need to provide deployment inputs, e.g., credentials to GCP. Possible deployment inputs are specified in topology_template.inputs of the TOSCA-compliant template. The deployment will take around 15-20 minutes.

vintner instances deploy --instance pruning --inputs ${INPUTS_PATH}\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#undeploy-the-application","title":"Undeploy the Application","text":"

Afterward, we undeploy the application.

vintner instances undeploy --instance pruning\n

Optionally, we can remove the instance and cleanup the filesystem. Cleaning up the filesystem removes any data including, e.g., all imported templates and created instances.

vintner instances delete --instance pruning\nvintner setup clean --force\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#complexity-analysis","title":"Complexity Analysis","text":"

The templates for our complexity analysis can be found here.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#logs","title":"Logs","text":"

This deployment is also executed in our integration pipeline, which is executed once a week. The logs of the corresponding GitHub action can be accessed here. Relevant jobs start with \"Unfurl Artifacts\". Note, a GitHub account is required to access these logs. The raw logs are available without requiring an GitHub account.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#zenodo","title":"Zenodo","text":"

The assets of this guide can be also found on Zenodo.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/guides/pruning/#publication","title":"Publication","text":"

This guide is part of our paper published at the UCC 2023. Also check our other publications.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","UCC 2023","xOpera"]},{"location":"variability4tosca/motivation/","title":"Motivation","text":"Figure 1: The different deployment variants.

This document holds a detailed step-by-step guide to deploy the development variant of the motivating scenario. The motivating scenario is a simple composite application that consists of a web component and a database, as presented in Figure 1.

This application can be deployed in different variants. During development the application should be deployed on a single virtual machine. However, for the productive operation, an elastic deployment is required and, therefore, the application is deployed on Google Cloud Platform (GCP).

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/motivation/#requirements","title":"Requirements","text":"

We need to fulfill the following requirements to follow this step-by-step guide.

  • Access to an OpenStack instance
  • Ubuntu 22.04
  • Git
  • xOpera
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/motivation/#preparation","title":"Preparation","text":"

First, we install OpenTOSCA Vintner. For more information see Installation.

curl -fsSL https://vintner.opentosca.org/install.sh | sudo bash -\n

Next, we configure xOpera as the orchestrator that should be used for the deployment. For more information see Orchestrators.

vintner orchestrators init xopera\nvintner orchestrators enable --orchestrator xopera\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/motivation/#import-the-template","title":"Import the Template","text":"Figure 2: The Variability4TOSCA template.

First, we clone the repository.

git clone https://github.com/OpenTOSCA/opentosca-vintner.git\ncd opentosca-vintner\ngit lfs install\ngit lfs pull\n./task install\n./task tasks:build\n./task examples:pull:link\n

Next, we import the Variability4TOSCA template.

vintner templates import --template motivation --path examples/motivation\n

Next, we initialize an application instance.

vintner instances init --instance motivation --template motivation\n

We can optionally inspect the Variability4TOSCA template. This template contains all possible elements having conditions assigned. For example, the virtual machine hosted on OpenStack has a condition assigned that checks if the development variant has been chosen. An overview is given in Figure 2.

vintner templates inspect --template motivation\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/motivation/#resolve-variability","title":"Resolve Variability","text":"Figure 3: The deployment variant.

We intend to deploy the development variant. Therefore, we need to resolve the variability by providing respective variability inputs. In our case, we use already predefined variability inputs by using a variability preset.

vintner instances resolve --instance motivation --presets dev\n

We can optionally inspect the generated TOSCA-compliant template. This template contains only the nodes required for the development variant. An overview is given in Figure 3.

vintner instances inspect --instance motivation\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/motivation/#deployment","title":"Deployment","text":"

Finally, we deploy the application. Therefore, we need to provide deployment inputs which contain, e.g., credentials to OpenStack. Possible deployment inputs are specified in topology_template.inputs of the TOSCA-compliant template. The deployment will take some minutes.

vintner instances deploy --instance motivation --inputs ${INPUTS_PATH}\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/motivation/#undeployment","title":"Undeployment","text":"

Afterward, we can undeploy the application.

vintner instances undeploy --instance motivation\n

Optionally, we can remove the instance and cleanup the filesystem. Cleaning up the filesystem removes any data including, e.g., all imported templates and created instances.

vintner instances delete --instance pruning\nvintner setup clean --force\n
","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/motivation/#logs","title":"Logs","text":"

This deployment is also executed in our integration pipeline, which is executed once a week. The logs of the corresponding GitHub action can be accessed here. Relevant jobs start with \"Unfurl Motivation\" and \"xOpera Motivation\". Note, a GitHub account is required to access these logs. The raw logs are available without requiring an GitHub account.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/motivation/#zenodo","title":"Zenodo","text":"

The assets of this guide can be also found on Zenodo.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/motivation/#publication","title":"Publication","text":"

This guide is part of our paper published at the Algorithms 2022. Also check our other publications.

","tags":["Variability4TOSCA","Guide","Publication","Zenodo","Algorithms 2022","xOpera"]},{"location":"variability4tosca/rules/","title":"Technology Rules","text":"","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#deployment-technology-rules-specification-10-release-candidate","title":"Deployment Technology Rules Specification 1.0 Release Candidate","text":"

Quick Tip #1

Elements in graphs can be clicked to open their type definition!

Quick Tip #2

You can query technology rules for your deployment scenario using vintner utils scenarios!

This document specifies the deployment technology rules. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#deployment-technologies","title":"Deployment Technologies","text":"

Technology rules are defined in the context of the following deployment technologies.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#ansible","title":"Ansible","text":"

Ansible is an automation tool primarily used for configuration management, application deployment, and task automation. It allows system administrators and DevOps teams to manage software on servers using SSH, without the need for agents on target nodes. Ansible uses simple, human-readable YAML files called playbooks to define tasks and configurations, enabling consistent management of IT environments across multiple servers. Find out more.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#terraform","title":"Terraform","text":"

Terraform is an infrastructure as code (IaC) tool that allows users to define, provision, and manage cloud infrastructure in a consistent, automated, and reproducible way. Using a declarative configuration language called HashiCorp Configuration Language (HCL), Terraform enables users to define infrastructure components such as virtual machines, networks, and storage in human-readable configuration files. It supports a wide range of cloud providers, including AWS, Azure, Google Cloud, and many others, allowing for seamless multi-cloud management. By applying these configurations, Terraform creates and manages the defined resources through APIs. Find out more.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#kubernetes","title":"Kubernetes","text":"

Kubernetes is a system for automating the deployment, scaling, and management of containerized applications, offering production-grade container orchestration. It provides a platform for running and managing applications in clusters of servers, ensuring high availability, scalability, and efficient resource utilization. Kubernetes allows users to define the desired state of their applications using declarative manifests, which specify the configuration, deployment, and management of containerized workloads. By continuously monitoring and adjusting the cluster to match these desired states, Kubernetes simplifies the application deployment process, supports automated rollouts and rollbacks, and ensures the self-healing of applications. Find out more.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#docker-compose","title":"Docker Compose","text":"

Docker Compose is a tool that enables the definition and running of multi-container applications on a Docker Engine, using a single YAML configuration file. It allows the management of services, networks, and volumes, in a declarative manner. Compose is particularly suited for single-host deployments, providing a consistent environment across various stages of the application lifecycle. However, it is limited to working within the Docker ecosystem. Find out more.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#derivation-rules","title":"Derivation Rules","text":"

We use the following derivation rules to assess deployment qualities.

  1. (Critical) Custom module vs battle-proven module
  2. (Critical) Imperative vs declarative technology
  3. (Critical) Imperative flow of declarative tasks vs pure declarative tasks (e.g., Ansible Playbook Tasks vs Terraform Module)
  4. Generic vs specialized/ native technology, e.g., Ansible vs Docker to start docker container (up to date modules, bug fixes ...)
  5. Depth of technology toolchain
  6. Number of workarounds
  7. Number of tasks/ resources/ artifacts/ manifests to be defined
  8. Length of the template
  9. Usage of deprecated or not recommended features
  10. More specialized node type, e.g., software.application vs service.application.
","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-dockerengine","title":"Component \"docker.engine\"","text":"

The following scenarios deploy a node template of node type docker.engine with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type docker.engine is deployed. The node template is hosted on the node template \"host 1\" of node type local.machine.

component(docker.engine)host 1(local.machine)host

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-2","title":"Scenario #2","text":"

In this scenario, the node template \"component\" of node type docker.engine is deployed. The node template is hosted on the node template \"host 1\" of node type remote.machine.

component(docker.engine)host 1(remote.machine)host

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-gcpservice","title":"Component \"gcp.service\"","text":"

The following scenarios deploy a node template of node type gcp.service with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1_1","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type gcp.service is deployed. The scenario does not require a specific hosting.

component(gcp.service)

Ansible (Quality: 1)

Ansible provides a declarative module

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-ingress","title":"Component \"ingress\"","text":"

The following scenarios deploy a node template of node type ingress with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1_2","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type ingress is deployed. The node template is hosted on the node template \"host 1\" of node type kubernetes.cluster.

component(ingress)host 1(kubernetes.cluster)host

Ansible (Quality: 0.5)

Kubernetes is more specialized.

Kubernetes (Quality: 1)

Kubernetes is the underlying technology.

Terraform (Quality: 0.5)

Kubernetes is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-2_1","title":"Scenario #2","text":"

In this scenario, the node template \"component\" of node type ingress is deployed. The node template is hosted on the node template \"host 1\" of node type local.machine.

component(ingress)host 1(local.machine)host

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-3","title":"Scenario #3","text":"

In this scenario, the node template \"component\" of node type ingress is deployed. The node template is hosted on the node template \"host 1\" of node type remote.machine.

component(ingress)host 1(remote.machine)host

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-mysqldatabase","title":"Component \"mysql.database\"","text":"

The following scenarios deploy a node template of node type mysql.database with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1_3","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type mysql.database is deployed. The node template is hosted on the node template \"host 1\" of node type mysql.dbms, which is hosted on the node template \"host 2\" of node type docker.engine, which is hosted on the node template \"host 3\" of node type local.machine.

component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(local.machine)hosthosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Docker Compose (Quality: 0)

One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-2_2","title":"Scenario #2","text":"

In this scenario, the node template \"component\" of node type mysql.database is deployed. The node template is hosted on the node template \"host 1\" of node type mysql.dbms, which is hosted on the node template \"host 2\" of node type docker.engine, which is hosted on the node template \"host 3\" of node type remote.machine.

component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(remote.machine)hosthosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Docker Compose (Quality: 0)

One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules.

Terraform (Quality: 0.5)

Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-3_1","title":"Scenario #3","text":"

In this scenario, the node template \"component\" of node type mysql.database is deployed. The node template is hosted on the node template \"host 1\" of node type mysql.dbms, which is hosted on the node template \"host 2\" of node type gcp.cloudsql.

component(mysql.database)host 1(mysql.dbms)host 2(gcp.cloudsql)hosthost

Ansible (Quality: 0.5)

Primary use case due to the specialization of Ansible. However, need to install and handle GCP CloudSQL Proxy, while the corresponding Terraform module already provides this.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-4","title":"Scenario #4","text":"

In this scenario, the node template \"component\" of node type mysql.database is deployed. The node template is hosted on the node template \"host 1\" of node type mysql.dbms, which is hosted on the node template \"host 2\" of node type kubernetes.cluster.

component(mysql.database)host 1(mysql.dbms)host 2(kubernetes.cluster)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Kubernetes (Quality: 0)

Kubernetes Job with imperative parts, while declarative other technologies provide declarative modules.

Terraform (Quality: 0)

Ansible is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-5","title":"Scenario #5","text":"

In this scenario, the node template \"component\" of node type mysql.database is deployed. The node template is hosted on the node template \"host 1\" of node type mysql.dbms, which is hosted on the node template \"host 2\" of node type local.machine.

component(mysql.database)host 1(mysql.dbms)host 2(local.machine)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-6","title":"Scenario #6","text":"

In this scenario, the node template \"component\" of node type mysql.database is deployed. The node template is hosted on the node template \"host 1\" of node type mysql.dbms, which is hosted on the node template \"host 2\" of node type remote.machine.

component(mysql.database)host 1(mysql.dbms)host 2(remote.machine)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 0.5)

Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-mysqldbms","title":"Component \"mysql.dbms\"","text":"

The following scenarios deploy a node template of node type mysql.dbms with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1_4","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type mysql.dbms is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type dbms.image. The node template is hosted on the node template \"host 1\" of node type docker.engine, which is hosted on the node template \"host 2\" of node type local.machine.

component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(local.machine)hosthost

Ansible (Quality: 0.5)

Docker Compose is more specialized

Docker Compose (Quality: 1)

Docker is the underlying technology.

Terraform (Quality: 0.5)

Docker Compose is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-2_3","title":"Scenario #2","text":"

In this scenario, the node template \"component\" of node type mysql.dbms is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type dbms.image. The node template is hosted on the node template \"host 1\" of node type docker.engine, which is hosted on the node template \"host 2\" of node type remote.machine.

component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(remote.machine)hosthost

Ansible (Quality: 0.5)

Docker Compose is more specialized

Docker Compose (Quality: 1)

Docker is the underlying technology.

Terraform (Quality: 0.5)

Docker Compose is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-3_2","title":"Scenario #3","text":"

In this scenario, the node template \"component\" of node type mysql.dbms is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type dbms.image. The node template is hosted on the node template \"host 1\" of node type gcp.cloudsql.

component(mysql.dbms)artifact(dbms.image)host 1(gcp.cloudsql)host

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-4_1","title":"Scenario #4","text":"

In this scenario, the node template \"component\" of node type mysql.dbms is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type dbms.image. The node template is hosted on the node template \"host 1\" of node type kubernetes.cluster.

component(mysql.dbms)artifact(dbms.image)host 1(kubernetes.cluster)host

Ansible (Quality: 0.5)

Kubernetes is more specialized.

Kubernetes (Quality: 1)

Kubernetes is the underlying technology.

Terraform (Quality: 0.5)

Kubernetes is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-5_1","title":"Scenario #5","text":"

In this scenario, the node template \"component\" of node type mysql.dbms is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type dbms.image. The node template is hosted on the node template \"host 1\" of node type local.machine.

component(mysql.dbms)artifact(dbms.image)host 1(local.machine)host

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-6_1","title":"Scenario #6","text":"

In this scenario, the node template \"component\" of node type mysql.dbms is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type dbms.image. The node template is hosted on the node template \"host 1\" of node type remote.machine.

component(mysql.dbms)artifact(dbms.image)host 1(remote.machine)host

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-objectstorage","title":"Component \"object.storage\"","text":"

The following scenarios deploy a node template of node type object.storage with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1_5","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type object.storage is deployed. The node template is hosted on the node template \"host 1\" of node type gcp.cloudstorage.

component(object.storage)host 1(gcp.cloudstorage)host

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-2_4","title":"Scenario #2","text":"

In this scenario, the node template \"component\" of node type object.storage is deployed. The node template is hosted on the node template \"host 1\" of node type minio.server, which is hosted on the node template \"host 2\" of node type docker.engine, which is hosted on the node template \"host 3\" of node type local.machine.

component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(local.machine)hosthosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Docker Compose (Quality: 0)

One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-3_3","title":"Scenario #3","text":"

In this scenario, the node template \"component\" of node type object.storage is deployed. The node template is hosted on the node template \"host 1\" of node type minio.server, which is hosted on the node template \"host 2\" of node type docker.engine, which is hosted on the node template \"host 3\" of node type remote.machine.

component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(remote.machine)hosthosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Docker Compose (Quality: 0)

One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules.

Terraform (Quality: 0.5)

Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-4_2","title":"Scenario #4","text":"

In this scenario, the node template \"component\" of node type object.storage is deployed. The node template is hosted on the node template \"host 1\" of node type minio.server, which is hosted on the node template \"host 2\" of node type kubernetes.cluster.

component(object.storage)host 1(minio.server)host 2(kubernetes.cluster)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Kubernetes (Quality: 0)

Kubernetes Job with imperative parts, while declarative other technologies provide declarative modules.

Terraform (Quality: 0)

Ansible is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-redisserver","title":"Component \"redis.server\"","text":"

The following scenarios deploy a node template of node type redis.server with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1_6","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type redis.server is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type cache.image. The node template is hosted on the node template \"host 1\" of node type docker.engine, which is hosted on the node template \"host 2\" of node type local.machine.

component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(local.machine)hosthost

Ansible (Quality: 0.5)

Docker Compose is more specialized.

Docker Compose (Quality: 1)

Docker is the underlying technology.

Terraform (Quality: 0.5)

Docker Compose is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-2_5","title":"Scenario #2","text":"

In this scenario, the node template \"component\" of node type redis.server is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type cache.image. The node template is hosted on the node template \"host 1\" of node type docker.engine, which is hosted on the node template \"host 2\" of node type remote.machine.

component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(remote.machine)hosthost

Ansible (Quality: 0.5)

Docker Compose is more specialized.

Docker Compose (Quality: 1)

Docker is the underlying technology.

Terraform (Quality: 0.5)

Docker Compose is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-3_4","title":"Scenario #3","text":"

In this scenario, the node template \"component\" of node type redis.server is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type cache.image. The node template is hosted on the node template \"host 1\" of node type gcp.memorystore.

component(redis.server)artifact(cache.image)host 1(gcp.memorystore)host

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-4_3","title":"Scenario #4","text":"

In this scenario, the node template \"component\" of node type redis.server is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type cache.image. The node template is hosted on the node template \"host 1\" of node type kubernetes.cluster.

component(redis.server)artifact(cache.image)host 1(kubernetes.cluster)host

Ansible (Quality: 0.5)

Kubernetes is more specialized.

Kubernetes (Quality: 1)

Kubernetes is the underlying technology.

Terraform (Quality: 0.5)

Kubernetes is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-serviceapplication","title":"Component \"service.application\"","text":"

The following scenarios deploy a node template of node type service.application with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1_7","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type service.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type docker.image. The node template is hosted on the node template \"host 1\" of node type docker.engine, which is hosted on the node template \"host 2\" of node type local.machine.

component(service.application)artifact(docker.image)host 1(docker.engine)host 2(local.machine)hosthost

Ansible (Quality: 0.5)

Docker Compose is more specialized.

Docker Compose (Quality: 1)

Docker is the underlying technology.

Terraform (Quality: 0.5)

Docker Compose is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-2_6","title":"Scenario #2","text":"

In this scenario, the node template \"component\" of node type service.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type docker.image. The node template is hosted on the node template \"host 1\" of node type docker.engine, which is hosted on the node template \"host 2\" of node type remote.machine.

component(service.application)artifact(docker.image)host 1(docker.engine)host 2(remote.machine)hosthost

Ansible (Quality: 0.5)

Docker Compose is more specialized.

Docker Compose (Quality: 1)

Docker is the underlying technology.

Terraform (Quality: 0.5)

Docker Compose is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-3_5","title":"Scenario #3","text":"

In this scenario, the node template \"component\" of node type service.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type docker.image. The node template is hosted on the node template \"host 1\" of node type gcp.cloudrun.

component(service.application)artifact(docker.image)host 1(gcp.cloudrun)host

Ansible (Quality: 0)

Custom module with imperative parts, while Terraform provides a declarative module.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-4_4","title":"Scenario #4","text":"

In this scenario, the node template \"component\" of node type service.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type docker.image. The node template is hosted on the node template \"host 1\" of node type kubernetes.cluster.

component(service.application)artifact(docker.image)host 1(kubernetes.cluster)host

Ansible (Quality: 0.5)

Kubernetes is more specialized.

Kubernetes (Quality: 1)

Kubernetes is the underlying technology.

Terraform (Quality: 0.5)

Kubernetes is more specialized.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-5_2","title":"Scenario #5","text":"

In this scenario, the node template \"component\" of node type service.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type tar.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type local.machine.

component(service.application)artifact(tar.archive)...host 2(local.machine)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible. Special integration for systemd.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-6_2","title":"Scenario #6","text":"

In this scenario, the node template \"component\" of node type service.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type tar.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type remote.machine.

component(service.application)artifact(tar.archive)...host 2(remote.machine)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible. Special integration for systemd.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-7","title":"Scenario #7","text":"

In this scenario, the node template \"component\" of node type service.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type zip.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type local.machine.

component(service.application)artifact(zip.archive)...host 2(local.machine)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible. Special integration for systemd.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-8","title":"Scenario #8","text":"

In this scenario, the node template \"component\" of node type service.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type zip.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type remote.machine.

component(service.application)artifact(zip.archive)...host 2(remote.machine)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible. Special integration for systemd.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-9","title":"Scenario #9","text":"

In this scenario, the node template \"component\" of node type service.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type zip.archive. The node template is hosted on the node template \"host 1\" of node type gcp.appengine.

component(service.application)artifact(zip.archive)host 1(gcp.appengine)host

Ansible (Quality: 0)

Custom module with imperative parts, while Terraform provides a declarative module.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-softwareapplication","title":"Component \"software.application\"","text":"

The following scenarios deploy a node template of node type software.application with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1_8","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type software.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type apt.package. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type local.machine.

component(software.application)artifact(apt.package)...host 2(local.machine)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-2_7","title":"Scenario #2","text":"

In this scenario, the node template \"component\" of node type software.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type apt.package. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type remote.machine.

component(software.application)artifact(apt.package)...host 2(remote.machine)hosthost

Ansible (Quality: 1)

Primary use case due to the specialization of Ansible.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-3_6","title":"Scenario #3","text":"

In this scenario, the node template \"component\" of node type software.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type tar.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type local.machine.

component(software.application)artifact(tar.archive)...host 2(local.machine)hosthost

Ansible (Quality: 0.5)

While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-4_5","title":"Scenario #4","text":"

In this scenario, the node template \"component\" of node type software.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type tar.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type remote.machine.

component(software.application)artifact(tar.archive)...host 2(remote.machine)hosthost

Ansible (Quality: 0.5)

While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., \"service.application\".

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-5_3","title":"Scenario #5","text":"

In this scenario, the node template \"component\" of node type software.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type zip.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type local.machine.

component(software.application)artifact(zip.archive)...host 2(local.machine)hosthost

Ansible (Quality: 0.5)

While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-6_3","title":"Scenario #6","text":"

In this scenario, the node template \"component\" of node type software.application is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type zip.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template \"host 2\" of node type remote.machine.

component(software.application)artifact(zip.archive)...host 2(remote.machine)hosthost

Ansible (Quality: 0.5)

While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application.

Terraform (Quality: 0)

Ansible is more specialized. Also using provisioners is a \"last resort\".

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#component-virtualmachine","title":"Component \"virtual.machine\"","text":"

The following scenarios deploy a node template of node type virtual.machine with various hosting stacks, artifacts, deployment technologies, and qualities.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#scenario-1_9","title":"Scenario #1","text":"

In this scenario, the node template \"component\" of node type virtual.machine is deployed. This node template is implemented by its deployment artifact \"artifact\" of artifact type machine.image. The node template is hosted on the node template \"host 1\" of node type openstack.provider.

component(virtual.machine)artifact(machine.image)host 1(openstack.provider)host

Ansible (Quality: 0.5)

Terraform is more specialized.

Terraform (Quality: 1)

Terraform provides a declarative module.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#appendix-a-rules","title":"Appendix A \"Rules\"","text":"

This appendix contains the deployment technology rules.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-1","title":"Rule #1","text":"Attribute Value Identifier docker.engine::ansible@local.machine Component docker.engine Technology ansible Hosting local.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details \"ansible.builtin.shell\", \"ansible.builtin.group\", and \"ansible.builtin.user\" tasks Graph component(docker.engine)host 1(local.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-2","title":"Rule #2","text":"Attribute Value Identifier docker.engine::terraform@local.machine Component docker.engine Technology terraform Hosting local.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"local-exec\" provider Graph component(docker.engine)host 1(local.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-3","title":"Rule #3","text":"Attribute Value Identifier docker.engine::ansible@remote.machine Component docker.engine Technology ansible Hosting remote.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details \"ansible.builtin.shell\", \"ansible.builtin.group\", and \"ansible.builtin.user\" tasks Graph component(docker.engine)host 1(remote.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-4","title":"Rule #4","text":"Attribute Value Identifier docker.engine::terraform@remote.machine Component docker.engine Technology terraform Hosting remote.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"remote-exec\" provider Graph component(docker.engine)host 1(remote.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-5","title":"Rule #5","text":"Attribute Value Identifier gcp.service::ansible Component gcp.service Technology ansible Quality 1 Reason Ansible provides a declarative module Details \"google.cloud.gcp_serviceusage_service\" task Graph component(gcp.service)","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-6","title":"Rule #6","text":"Attribute Value Identifier gcp.service::terraform Component gcp.service Technology terraform Quality 1 Reason Terraform provides a declarative module. Details \"google_project_service\" resource Graph component(gcp.service)","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-7","title":"Rule #7","text":"Attribute Value Identifier ingress::ansible@kubernetes.cluster Component ingress Technology ansible Hosting kubernetes.cluster Quality 0.5 Reason Kubernetes is more specialized. Details \"kubernetes.core.k8s\" task Graph component(ingress)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-8","title":"Rule #8","text":"Attribute Value Identifier ingress::kubernetes@kubernetes.cluster Component ingress Technology kubernetes Hosting kubernetes.cluster Quality 1 Reason Kubernetes is the underlying technology. Details Kubernetes manifest generated and applied Graph component(ingress)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-9","title":"Rule #9","text":"Attribute Value Identifier ingress::terraform@kubernetes.cluster Component ingress Technology terraform Hosting kubernetes.cluster Quality 0.5 Reason Kubernetes is more specialized. Details \"kubernetes_service_v1\" resource Graph component(ingress)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-10","title":"Rule #10","text":"Attribute Value Identifier ingress::ansible@local.machine Component ingress Technology ansible Hosting local.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details \"ansible.builtin.apt_key\", \"ansible.builtin.apt_repository\", \"ansible.builtin.apt\", \"ansible.builtin.copy\", and \"ansible.builtin.systemd\" tasks Graph component(ingress)host 1(local.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-11","title":"Rule #11","text":"Attribute Value Identifier ingress::terraform@local.machine Component ingress Technology terraform Hosting local.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"local_file\" resource to create the installation script and \"terraform_data\" to execute the script using the \"local-exec\" provisioner Graph component(ingress)host 1(local.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-12","title":"Rule #12","text":"Attribute Value Identifier ingress::ansible@remote.machine Component ingress Technology ansible Hosting remote.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details \"ansible.builtin.apt_key\", \"ansible.builtin.apt_repository\", \"ansible.builtin.apt\", \"ansible.builtin.copy\", and \"ansible.builtin.systemd\" tasks Graph component(ingress)host 1(remote.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-13","title":"Rule #13","text":"Attribute Value Identifier ingress::terraform@remote.machine Component ingress Technology terraform Hosting remote.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"terraform_data\" resource with an \"ssh\" connection to the virtual machine to copy the install script using the \"file\" provisioner on the virtual machine and to execute the script using the \"remote-exec\" provisioner Graph component(ingress)host 1(remote.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-14","title":"Rule #14","text":"Attribute Value Identifier mysql.database::ansible@mysql.dbms->docker.engine->local.machine Component mysql.database Technology ansible Hosting mysql.dbms -> docker.engine -> local.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(local.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-15","title":"Rule #15","text":"Attribute Value Identifier mysql.database::compose@mysql.dbms->docker.engine->local.machine Component mysql.database Technology compose Hosting mysql.dbms -> docker.engine -> local.machine Quality 0 Reason One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(local.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-16","title":"Rule #16","text":"Attribute Value Identifier mysql.database::terraform@mysql.dbms->docker.engine->local.machine Component mysql.database Technology terraform Hosting mysql.dbms -> docker.engine -> local.machine Quality 1 Reason Terraform provides a declarative module. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(local.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-17","title":"Rule #17","text":"Attribute Value Identifier mysql.database::ansible@mysql.dbms->docker.engine->remote.machine Component mysql.database Technology ansible Hosting mysql.dbms -> docker.engine -> remote.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(remote.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-18","title":"Rule #18","text":"Attribute Value Identifier mysql.database::compose@mysql.dbms->docker.engine->remote.machine Component mysql.database Technology compose Hosting mysql.dbms -> docker.engine -> remote.machine Quality 0 Reason One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(remote.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-19","title":"Rule #19","text":"Attribute Value Identifier mysql.database::terraform@mysql.dbms->docker.engine->remote.machine Component mysql.database Technology terraform Hosting mysql.dbms -> docker.engine -> remote.machine Quality 0.5 Reason Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(remote.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-20","title":"Rule #20","text":"Attribute Value Identifier mysql.database::ansible@mysql.dbms->gcp.cloudsql Component mysql.database Technology ansible Hosting mysql.dbms -> gcp.cloudsql Quality 0.5 Reason Primary use case due to the specialization of Ansible. However, need to install and handle GCP CloudSQL Proxy, while the corresponding Terraform module already provides this. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(gcp.cloudsql)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-21","title":"Rule #21","text":"Attribute Value Identifier mysql.database::terraform@mysql.dbms->gcp.cloudsql Component mysql.database Technology terraform Hosting mysql.dbms -> gcp.cloudsql Quality 1 Reason Terraform provides a declarative module. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(gcp.cloudsql)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-22","title":"Rule #22","text":"Attribute Value Identifier mysql.database::ansible@mysql.dbms->kubernetes.cluster Component mysql.database Technology ansible Hosting mysql.dbms -> kubernetes.cluster Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(kubernetes.cluster)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-23","title":"Rule #23","text":"Attribute Value Identifier mysql.database::kubernetes@mysql.dbms->kubernetes.cluster Component mysql.database Technology kubernetes Hosting mysql.dbms -> kubernetes.cluster Quality 0 Reason Kubernetes Job with imperative parts, while declarative other technologies provide declarative modules. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(kubernetes.cluster)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-24","title":"Rule #24","text":"Attribute Value Identifier mysql.database::terraform@mysql.dbms->kubernetes.cluster Component mysql.database Technology terraform Hosting mysql.dbms -> kubernetes.cluster Quality 0 Reason Ansible is more specialized. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(kubernetes.cluster)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-25","title":"Rule #25","text":"Attribute Value Identifier mysql.database::ansible@mysql.dbms->local.machine Component mysql.database Technology ansible Hosting mysql.dbms -> local.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-26","title":"Rule #26","text":"Attribute Value Identifier mysql.database::terraform@mysql.dbms->local.machine Component mysql.database Technology terraform Hosting mysql.dbms -> local.machine Quality 1 Reason Terraform provides a declarative module. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-27","title":"Rule #27","text":"Attribute Value Identifier mysql.database::ansible@mysql.dbms->remote.machine Component mysql.database Technology ansible Hosting mysql.dbms -> remote.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-28","title":"Rule #28","text":"Attribute Value Identifier mysql.database::terraform@mysql.dbms->remote.machine Component mysql.database Technology terraform Hosting mysql.dbms -> remote.machine Quality 0.5 Reason Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized. Details Graph component(mysql.database)host 1(mysql.dbms)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-29","title":"Rule #29","text":"Attribute Value Identifier mysql.dbms#dbms.image::ansible@docker.engine->local.machine Component mysql.dbms Artifact dbms.image Technology ansible Hosting docker.engine -> local.machine Quality 0.5 Reason Docker Compose is more specialized Details \"community.docker.docker_container\" task Graph component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-30","title":"Rule #30","text":"Attribute Value Identifier mysql.dbms#dbms.image::compose@docker.engine->local.machine Component mysql.dbms Artifact dbms.image Technology compose Hosting docker.engine -> local.machine Quality 1 Reason Docker is the underlying technology. Details docker-compose manifest generated and applied Graph component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-31","title":"Rule #31","text":"Attribute Value Identifier mysql.dbms#dbms.image::terraform@docker.engine->local.machine Component mysql.dbms Artifact dbms.image Technology terraform Hosting docker.engine -> local.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"docker_container\" and \"docker_image\" resources Graph component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-32","title":"Rule #32","text":"Attribute Value Identifier mysql.dbms#dbms.image::ansible@docker.engine->remote.machine Component mysql.dbms Artifact dbms.image Technology ansible Hosting docker.engine -> remote.machine Quality 0.5 Reason Docker Compose is more specialized Details \"community.docker.docker_container\" task Graph component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-33","title":"Rule #33","text":"Attribute Value Identifier mysql.dbms#dbms.image::compose@docker.engine->remote.machine Component mysql.dbms Artifact dbms.image Technology compose Hosting docker.engine -> remote.machine Quality 1 Reason Docker is the underlying technology. Details docker-compose manifest generated and applied Graph component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-34","title":"Rule #34","text":"Attribute Value Identifier mysql.dbms#dbms.image::terraform@docker.engine->remote.machine Component mysql.dbms Artifact dbms.image Technology terraform Hosting docker.engine -> remote.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"docker_container\" and \"docker_image\" resources Graph component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-35","title":"Rule #35","text":"Attribute Value Identifier mysql.dbms#dbms.image::ansible@gcp.cloudsql Component mysql.dbms Artifact dbms.image Technology ansible Hosting gcp.cloudsql Quality 1 Reason Primary use case due to the specialization of Ansible. Details \"google.cloud.gcp_sql_instance\" and \"google.cloud.gcp_sql_user\" tasks Graph component(mysql.dbms)artifact(dbms.image)host 1(gcp.cloudsql)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-36","title":"Rule #36","text":"Attribute Value Identifier mysql.dbms#dbms.image::terraform@gcp.cloudsql Component mysql.dbms Artifact dbms.image Technology terraform Hosting gcp.cloudsql Quality 1 Reason Terraform provides a declarative module. Details \"google_sql_database_instance\" and \"google_sql_user\" resources Graph component(mysql.dbms)artifact(dbms.image)host 1(gcp.cloudsql)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-37","title":"Rule #37","text":"Attribute Value Identifier mysql.dbms#dbms.image::ansible@kubernetes.cluster Component mysql.dbms Artifact dbms.image Technology ansible Hosting kubernetes.cluster Quality 0.5 Reason Kubernetes is more specialized. Details \"kubernetes.core.k8s\" tasks Graph component(mysql.dbms)artifact(dbms.image)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-38","title":"Rule #38","text":"Attribute Value Identifier mysql.dbms#dbms.image::kubernetes@kubernetes.cluster Component mysql.dbms Artifact dbms.image Technology kubernetes Hosting kubernetes.cluster Quality 1 Reason Kubernetes is the underlying technology. Details Kubernetes manifest generated and applied Graph component(mysql.dbms)artifact(dbms.image)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-39","title":"Rule #39","text":"Attribute Value Identifier mysql.dbms#dbms.image::terraform@kubernetes.cluster Component mysql.dbms Artifact dbms.image Technology terraform Hosting kubernetes.cluster Quality 0.5 Reason Kubernetes is more specialized. Details \"kubernetes_deployment_v1\" and \"kubernetes_service_v1\" resources Graph component(mysql.dbms)artifact(dbms.image)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-40","title":"Rule #40","text":"Attribute Value Identifier mysql.dbms#dbms.image::ansible@local.machine Component mysql.dbms Artifact dbms.image Technology ansible Hosting local.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details \"ansible.builtin.apt\", \"ansible.builtin.systemd\", \"ansible.builtin.copy\", \"ansible.builtin.lineinfile\", and \"community.mysql.mysql_user\" tasks Graph component(mysql.dbms)artifact(dbms.image)host 1(local.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-41","title":"Rule #41","text":"Attribute Value Identifier mysql.dbms#dbms.image::terraform@local.machine Component mysql.dbms Artifact dbms.image Technology terraform Hosting local.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"local_file\" resource to create the installation script and \"terraform_data\" to execute the script using the \"local-exec\" provisioner Graph component(mysql.dbms)artifact(dbms.image)host 1(local.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-42","title":"Rule #42","text":"Attribute Value Identifier mysql.dbms#dbms.image::ansible@remote.machine Component mysql.dbms Artifact dbms.image Technology ansible Hosting remote.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details \"ansible.builtin.apt\", \"ansible.builtin.systemd\", \"ansible.builtin.copy\", \"ansible.builtin.lineinfile\", and \"community.mysql.mysql_user\" tasks Graph component(mysql.dbms)artifact(dbms.image)host 1(remote.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-43","title":"Rule #43","text":"Attribute Value Identifier mysql.dbms#dbms.image::terraform@remote.machine Component mysql.dbms Artifact dbms.image Technology terraform Hosting remote.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"terraform_data\" resource with an \"ssh\" connection to the virtual machine to copy the install script using the \"file\" provisioner on the virtual machine and to execute the script using the \"remote-exec\" provisioner Graph component(mysql.dbms)artifact(dbms.image)host 1(remote.machine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-44","title":"Rule #44","text":"Attribute Value Identifier object.storage::ansible@gcp.cloudstorage Component object.storage Technology ansible Hosting gcp.cloudstorage Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(object.storage)host 1(gcp.cloudstorage)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-45","title":"Rule #45","text":"Attribute Value Identifier object.storage::terraform@gcp.cloudstorage Component object.storage Technology terraform Hosting gcp.cloudstorage Quality 1 Reason Terraform provides a declarative module. Details Graph component(object.storage)host 1(gcp.cloudstorage)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-46","title":"Rule #46","text":"Attribute Value Identifier object.storage::ansible@minio.server->docker.engine->local.machine Component object.storage Technology ansible Hosting minio.server -> docker.engine -> local.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(local.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-47","title":"Rule #47","text":"Attribute Value Identifier object.storage::compose@minio.server->docker.engine->local.machine Component object.storage Technology compose Hosting minio.server -> docker.engine -> local.machine Quality 0 Reason One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules. Details Graph component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(local.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-48","title":"Rule #48","text":"Attribute Value Identifier object.storage::terraform@minio.server->docker.engine->local.machine Component object.storage Technology terraform Hosting minio.server -> docker.engine -> local.machine Quality 1 Reason Terraform provides a declarative module. Details Graph component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(local.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-49","title":"Rule #49","text":"Attribute Value Identifier object.storage::ansible@minio.server->docker.engine->remote.machine Component object.storage Technology ansible Hosting minio.server -> docker.engine -> remote.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(remote.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-50","title":"Rule #50","text":"Attribute Value Identifier object.storage::compose@minio.server->docker.engine->remote.machine Component object.storage Technology compose Hosting minio.server -> docker.engine -> remote.machine Quality 0 Reason One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules. Details Graph component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(remote.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-51","title":"Rule #51","text":"Attribute Value Identifier object.storage::terraform@minio.server->docker.engine->remote.machine Component object.storage Technology terraform Hosting minio.server -> docker.engine -> remote.machine Quality 0.5 Reason Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized. Details Graph component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(remote.machine)hosthosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-52","title":"Rule #52","text":"Attribute Value Identifier object.storage::ansible@minio.server->kubernetes.cluster Component object.storage Technology ansible Hosting minio.server -> kubernetes.cluster Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(object.storage)host 1(minio.server)host 2(kubernetes.cluster)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-53","title":"Rule #53","text":"Attribute Value Identifier object.storage::kubernetes@minio.server->kubernetes.cluster Component object.storage Technology kubernetes Hosting minio.server -> kubernetes.cluster Quality 0 Reason Kubernetes Job with imperative parts, while declarative other technologies provide declarative modules. Details Graph component(object.storage)host 1(minio.server)host 2(kubernetes.cluster)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-54","title":"Rule #54","text":"Attribute Value Identifier object.storage::terraform@minio.server->kubernetes.cluster Component object.storage Technology terraform Hosting minio.server -> kubernetes.cluster Quality 0 Reason Ansible is more specialized. Details Graph component(object.storage)host 1(minio.server)host 2(kubernetes.cluster)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-55","title":"Rule #55","text":"Attribute Value Identifier redis.server#cache.image::ansible@docker.engine->local.machine Component redis.server Artifact cache.image Technology ansible Hosting docker.engine -> local.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"community.docker.docker_container\" task Graph component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-56","title":"Rule #56","text":"Attribute Value Identifier redis.server#cache.image::compose@docker.engine->local.machine Component redis.server Artifact cache.image Technology compose Hosting docker.engine -> local.machine Quality 1 Reason Docker is the underlying technology. Details docker compose manifest generated and applied Graph component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-57","title":"Rule #57","text":"Attribute Value Identifier redis.server#cache.image::terraform@docker.engine->local.machine Component redis.server Artifact cache.image Technology terraform Hosting docker.engine -> local.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"docker_container\" and \"docker_image\" resources Graph component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-58","title":"Rule #58","text":"Attribute Value Identifier redis.server#cache.image::ansible@docker.engine->remote.machine Component redis.server Artifact cache.image Technology ansible Hosting docker.engine -> remote.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"community.docker.docker_container\" task Graph component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-59","title":"Rule #59","text":"Attribute Value Identifier redis.server#cache.image::compose@docker.engine->remote.machine Component redis.server Artifact cache.image Technology compose Hosting docker.engine -> remote.machine Quality 1 Reason Docker is the underlying technology. Details docker compose manifest generated and applied Graph component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-60","title":"Rule #60","text":"Attribute Value Identifier redis.server#cache.image::terraform@docker.engine->remote.machine Component redis.server Artifact cache.image Technology terraform Hosting docker.engine -> remote.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"docker_container\" and \"docker_image\" resources Graph component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-61","title":"Rule #61","text":"Attribute Value Identifier redis.server#cache.image::ansible@gcp.memorystore Component redis.server Artifact cache.image Technology ansible Hosting gcp.memorystore Quality 1 Reason Primary use case due to the specialization of Ansible. Details Graph component(redis.server)artifact(cache.image)host 1(gcp.memorystore)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-62","title":"Rule #62","text":"Attribute Value Identifier redis.server#cache.image::terraform@gcp.memorystore Component redis.server Artifact cache.image Technology terraform Hosting gcp.memorystore Quality 1 Reason Terraform provides a declarative module. Details Graph component(redis.server)artifact(cache.image)host 1(gcp.memorystore)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-63","title":"Rule #63","text":"Attribute Value Identifier redis.server#cache.image::ansible@kubernetes.cluster Component redis.server Artifact cache.image Technology ansible Hosting kubernetes.cluster Quality 0.5 Reason Kubernetes is more specialized. Details Graph component(redis.server)artifact(cache.image)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-64","title":"Rule #64","text":"Attribute Value Identifier redis.server#cache.image::kubernetes@kubernetes.cluster Component redis.server Artifact cache.image Technology kubernetes Hosting kubernetes.cluster Quality 1 Reason Kubernetes is the underlying technology. Details Kubernetes manifest generated and applied Graph component(redis.server)artifact(cache.image)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-65","title":"Rule #65","text":"Attribute Value Identifier redis.server#cache.image::terraform@kubernetes.cluster Component redis.server Artifact cache.image Technology terraform Hosting kubernetes.cluster Quality 0.5 Reason Kubernetes is more specialized. Details Graph component(redis.server)artifact(cache.image)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-66","title":"Rule #66","text":"Attribute Value Identifier service.application#docker.image::ansible@docker.engine->local.machine Component service.application Artifact docker.image Technology ansible Hosting docker.engine -> local.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"community.docker.docker_container\" task Graph component(service.application)artifact(docker.image)host 1(docker.engine)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-67","title":"Rule #67","text":"Attribute Value Identifier service.application#docker.image::compose@docker.engine->local.machine Component service.application Artifact docker.image Technology compose Hosting docker.engine -> local.machine Quality 1 Reason Docker is the underlying technology. Details docker compose manifest generated and applied Graph component(service.application)artifact(docker.image)host 1(docker.engine)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-68","title":"Rule #68","text":"Attribute Value Identifier service.application#docker.image::terraform@docker.engine->local.machine Component service.application Artifact docker.image Technology terraform Hosting docker.engine -> local.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"docker_container\" and \"docker_image\" resources Graph component(service.application)artifact(docker.image)host 1(docker.engine)host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-69","title":"Rule #69","text":"Attribute Value Identifier service.application#docker.image::ansible@docker.engine->remote.machine Component service.application Artifact docker.image Technology ansible Hosting docker.engine -> remote.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"community.docker.docker_container\" task Graph component(service.application)artifact(docker.image)host 1(docker.engine)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-70","title":"Rule #70","text":"Attribute Value Identifier service.application#docker.image::compose@docker.engine->remote.machine Component service.application Artifact docker.image Technology compose Hosting docker.engine -> remote.machine Quality 1 Reason Docker is the underlying technology. Details docker compose manifest generated and applied Graph component(service.application)artifact(docker.image)host 1(docker.engine)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-71","title":"Rule #71","text":"Attribute Value Identifier service.application#docker.image::terraform@docker.engine->remote.machine Component service.application Artifact docker.image Technology terraform Hosting docker.engine -> remote.machine Quality 0.5 Reason Docker Compose is more specialized. Details \"docker_container\" and \"docker_image\" resources Graph component(service.application)artifact(docker.image)host 1(docker.engine)host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-72","title":"Rule #72","text":"Attribute Value Identifier service.application#docker.image::ansible@gcp.cloudrun Component service.application Artifact docker.image Technology ansible Hosting gcp.cloudrun Quality 0 Reason Custom module with imperative parts, while Terraform provides a declarative module. Details \"ansible.builtin.shell\", \"ansible.builtin.tempfile\", and \"ansible.builtin.copy\" tasks Graph component(service.application)artifact(docker.image)host 1(gcp.cloudrun)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-73","title":"Rule #73","text":"Attribute Value Identifier service.application#docker.image::terraform@gcp.cloudrun Component service.application Artifact docker.image Technology terraform Hosting gcp.cloudrun Quality 1 Reason Terraform provides a declarative module. Details \"google_cloud_run_v2_service\" and \"google_cloud_run_service_iam_binding\" resources Graph component(service.application)artifact(docker.image)host 1(gcp.cloudrun)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-74","title":"Rule #74","text":"Attribute Value Identifier service.application#docker.image::ansible@kubernetes.cluster Component service.application Artifact docker.image Technology ansible Hosting kubernetes.cluster Quality 0.5 Reason Kubernetes is more specialized. Details \"kubernetes.core.k8s\" tasks Graph component(service.application)artifact(docker.image)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-75","title":"Rule #75","text":"Attribute Value Identifier service.application#docker.image::kubernetes@kubernetes.cluster Component service.application Artifact docker.image Technology kubernetes Hosting kubernetes.cluster Quality 1 Reason Kubernetes is the underlying technology. Details Kubernetes manifest generated and applied Graph component(service.application)artifact(docker.image)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-76","title":"Rule #76","text":"Attribute Value Identifier service.application#docker.image::terraform@kubernetes.cluster Component service.application Artifact docker.image Technology terraform Hosting kubernetes.cluster Quality 0.5 Reason Kubernetes is more specialized. Details \"kubernetes_deployment_v1\" and \"kubernetes_service_v1\" resources Graph component(service.application)artifact(docker.image)host 1(kubernetes.cluster)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-77","title":"Rule #77","text":"Attribute Value Identifier service.application#tar.archive::ansible@*->local.machine Component service.application Artifact tar.archive Technology ansible Hosting * -> local.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Special integration for systemd. Details \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", \"ansible.builtin.shell\", and \"ansible.builtin.systemd\" tasks with \"when\" statements Graph component(service.application)artifact(tar.archive)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-78","title":"Rule #78","text":"Attribute Value Identifier service.application#tar.archive::terraform@*->local.machine Component service.application Artifact tar.archive Technology terraform Hosting * -> local.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts. Graph component(service.application)artifact(tar.archive)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-79","title":"Rule #79","text":"Attribute Value Identifier service.application#tar.archive::ansible@*->remote.machine Component service.application Artifact tar.archive Technology ansible Hosting * -> remote.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Special integration for systemd. Details \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", \"ansible.builtin.shell\", and \"ansible.builtin.systemd\" tasks with \"when\" statements Graph component(service.application)artifact(tar.archive)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-80","title":"Rule #80","text":"Attribute Value Identifier service.application#tar.archive::terraform@*->remote.machine Component service.application Artifact tar.archive Technology terraform Hosting * -> remote.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"file\" provisioner to upload artifacts and scripts and \"remote-exec\" to execute scripts Graph component(service.application)artifact(tar.archive)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-81","title":"Rule #81","text":"Attribute Value Identifier service.application#zip.archive::ansible@*->local.machine Component service.application Artifact zip.archive Technology ansible Hosting * -> local.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Special integration for systemd. Details \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", \"ansible.builtin.shell\", and \"ansible.builtin.systemd\" tasks with \"when\" statements Graph component(service.application)artifact(zip.archive)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-82","title":"Rule #82","text":"Attribute Value Identifier service.application#zip.archive::terraform@*->local.machine Component service.application Artifact zip.archive Technology terraform Hosting * -> local.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts. Graph component(service.application)artifact(zip.archive)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-83","title":"Rule #83","text":"Attribute Value Identifier service.application#zip.archive::ansible@*->remote.machine Component service.application Artifact zip.archive Technology ansible Hosting * -> remote.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Special integration for systemd. Details \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", \"ansible.builtin.shell\", and \"ansible.builtin.systemd\" tasks with \"when\" statements Graph component(service.application)artifact(zip.archive)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-84","title":"Rule #84","text":"Attribute Value Identifier service.application#zip.archive::terraform@*->remote.machine Component service.application Artifact zip.archive Technology terraform Hosting * -> remote.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"file\" provisioner to upload artifacts and scripts and \"remote-exec\" to execute scripts Graph component(service.application)artifact(zip.archive)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-85","title":"Rule #85","text":"Attribute Value Identifier service.application#zip.archive::ansible@gcp.appengine Component service.application Artifact zip.archive Technology ansible Hosting gcp.appengine Quality 0 Reason Custom module with imperative parts, while Terraform provides a declarative module. Details \"ansible.builtin.shell\", \"ansible.builtin.tempfile\", \"ansible.builtin.unarchive\", and \"ansible.builtin.copy\" tasks Graph component(service.application)artifact(zip.archive)host 1(gcp.appengine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-86","title":"Rule #86","text":"Attribute Value Identifier service.application#zip.archive::terraform@gcp.appengine Component service.application Artifact zip.archive Technology terraform Hosting gcp.appengine Quality 1 Reason Terraform provides a declarative module. Details \"google_app_engine_standard_app_version\", \"google_project_iam_member\", \"google_service_account\", \"google_storage_bucket\", and \"google_storage_bucket_object\" resources Graph component(service.application)artifact(zip.archive)host 1(gcp.appengine)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-87","title":"Rule #87","text":"Attribute Value Identifier software.application#apt.package::ansible@*->local.machine Component software.application Artifact apt.package Technology ansible Hosting * -> local.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details \"ansible.builtin.shell\", \"ansible.builtin.apt_key\", \"ansible.builtin.apt_repository\", \"ansible.builtin.apt\", and \"ansible.builtin.copy\", tasks with \"when\" statements Graph component(software.application)artifact(apt.package)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-88","title":"Rule #88","text":"Attribute Value Identifier software.application#apt.package::terraform@*->local.machine Component software.application Artifact apt.package Technology terraform Hosting * -> local.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts Graph component(software.application)artifact(apt.package)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-89","title":"Rule #89","text":"Attribute Value Identifier software.application#apt.package::ansible@*->remote.machine Component software.application Artifact apt.package Technology ansible Hosting * -> remote.machine Quality 1 Reason Primary use case due to the specialization of Ansible. Details \"ansible.builtin.shell\", \"ansible.builtin.apt_key\", \"ansible.builtin.apt_repository\", \"ansible.builtin.apt\", and \"ansible.builtin.copy\", tasks with \"when\" statements Graph component(software.application)artifact(apt.package)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-90","title":"Rule #90","text":"Attribute Value Identifier software.application#apt.package::terraform@*->remote.machine Component software.application Artifact apt.package Technology terraform Hosting * -> remote.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"file\" provisioner to upload scripts and \"remote-exec\" to execute scripts Graph component(software.application)artifact(apt.package)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-91","title":"Rule #91","text":"Attribute Value Identifier software.application#tar.archive::ansible@*->local.machine Component software.application Artifact tar.archive Technology ansible Hosting * -> local.machine Quality 0.5 Reason While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application. Details \"ansible.builtin.apt\", \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", and \"ansible.builtin.shell\" tasks with \"when\" statements Graph component(software.application)artifact(tar.archive)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-92","title":"Rule #92","text":"Attribute Value Identifier software.application#tar.archive::terraform@*->local.machine Component software.application Artifact tar.archive Technology terraform Hosting * -> local.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts Graph component(software.application)artifact(tar.archive)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-93","title":"Rule #93","text":"Attribute Value Identifier software.application#tar.archive::ansible@*->remote.machine Component software.application Artifact tar.archive Technology ansible Hosting * -> remote.machine Quality 0.5 Reason While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., \"service.application\". Details \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", and \"ansible.builtin.shell\" tasks with \"when\" statements Graph component(software.application)artifact(tar.archive)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-94","title":"Rule #94","text":"Attribute Value Identifier software.application#tar.archive::terraform@*->remote.machine Component software.application Artifact tar.archive Technology terraform Hosting * -> remote.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"file\" provisioner to upload artifacts and scripts and \"remote-exec\" to execute scripts Graph component(software.application)artifact(tar.archive)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-95","title":"Rule #95","text":"Attribute Value Identifier software.application#zip.archive::ansible@*->local.machine Component software.application Artifact zip.archive Technology ansible Hosting * -> local.machine Quality 0.5 Reason While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application. Details \"ansible.builtin.apt\", \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", and \"ansible.builtin.shell\" tasks with \"when\" statements Graph component(software.application)artifact(zip.archive)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-96","title":"Rule #96","text":"Attribute Value Identifier software.application#zip.archive::terraform@*->local.machine Component software.application Artifact zip.archive Technology terraform Hosting * -> local.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts. Graph component(software.application)artifact(zip.archive)...host 2(local.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-97","title":"Rule #97","text":"Attribute Value Identifier software.application#zip.archive::ansible@*->remote.machine Component software.application Artifact zip.archive Technology ansible Hosting * -> remote.machine Quality 0.5 Reason While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application. Details \"ansible.builtin.apt\", \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", and \"ansible.builtin.shell\" tasks with \"when\" statements Graph component(software.application)artifact(zip.archive)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-98","title":"Rule #98","text":"Attribute Value Identifier software.application#zip.archive::terraform@*->remote.machine Component software.application Artifact zip.archive Technology terraform Hosting * -> remote.machine Quality 0 Reason Ansible is more specialized. Also using provisioners is a \"last resort\". Details \"file\" provisioner to upload artifacts and scripts and \"remote-exec\" to execute scripts Graph component(software.application)artifact(zip.archive)...host 2(remote.machine)hosthost","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-99","title":"Rule #99","text":"Attribute Value Identifier virtual.machine#machine.image::ansible@openstack.provider Component virtual.machine Artifact machine.image Technology ansible Hosting openstack.provider Quality 0.5 Reason Terraform is more specialized. Details \"openstack.cloud.security_group\", \"openstack.cloud.security_group_rule\" and \"openstack.cloud.server\" tasks Graph component(virtual.machine)artifact(machine.image)host 1(openstack.provider)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#rule-100","title":"Rule #100","text":"Attribute Value Identifier virtual.machine#machine.image::terraform@openstack.provider Component virtual.machine Artifact machine.image Technology terraform Hosting openstack.provider Quality 1 Reason Terraform provides a declarative module. Details \"openstack_compute_instance_v2\", \"openstack_networking_secgroup_rule_v2\" and \"openstack_networking_secgroup_v2\" resources Graph component(virtual.machine)artifact(machine.image)host 1(openstack.provider)host","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#appendix-b-yaml","title":"Appendix B \"YAML\"","text":"

This appendix contains the deployment technology rules as YAML. The rules are also available as download.

- technology: ansible\ncomponent: docker.engine\nhosting:\n- local.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\ndetails: '\"ansible.builtin.shell\", \"ansible.builtin.group\", and \"ansible.builtin.user\" tasks'\n- technology: terraform\ncomponent: docker.engine\nhosting:\n- local.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"local-exec\" provider'\n- technology: ansible\ncomponent: docker.engine\nhosting:\n- remote.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\ndetails: '\"ansible.builtin.shell\", \"ansible.builtin.group\", and \"ansible.builtin.user\" tasks'\n- technology: terraform\ncomponent: docker.engine\nhosting:\n- remote.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"remote-exec\" provider'\n- technology: ansible\ncomponent: gcp.service\nhosting: []\nweight: 1\nreason: Ansible provides a declarative module\ndetails: '\"google.cloud.gcp_serviceusage_service\" task'\n- technology: terraform\ncomponent: gcp.service\nhosting: []\nweight: 1\nreason: Terraform provides a declarative module.\ndetails: '\"google_project_service\" resource'\n- technology: ansible\ncomponent: ingress\nhosting:\n- kubernetes.cluster\nweight: 0.5\nreason: Kubernetes is more specialized.\ndetails: '\"kubernetes.core.k8s\" task'\n- technology: kubernetes\ncomponent: ingress\nhosting:\n- kubernetes.cluster\nweight: 1\nreason: Kubernetes is the underlying technology.\ndetails: Kubernetes manifest generated and applied\n- technology: terraform\ncomponent: ingress\nhosting:\n- kubernetes.cluster\nweight: 0.5\nreason: Kubernetes is more specialized.\ndetails: '\"kubernetes_service_v1\" resource'\n- technology: ansible\ncomponent: ingress\nhosting:\n- local.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\ndetails: '\"ansible.builtin.apt_key\", \"ansible.builtin.apt_repository\", \"ansible.builtin.apt\", \"ansible.builtin.copy\", and \"ansible.builtin.systemd\" tasks'\n- technology: terraform\ncomponent: ingress\nhosting:\n- local.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"local_file\" resource to create the installation script and \"terraform_data\" to execute the script using the \"local-exec\" provisioner'\n- technology: ansible\ncomponent: ingress\nhosting:\n- remote.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\ndetails: '\"ansible.builtin.apt_key\", \"ansible.builtin.apt_repository\", \"ansible.builtin.apt\", \"ansible.builtin.copy\", and \"ansible.builtin.systemd\" tasks'\n- technology: terraform\ncomponent: ingress\nhosting:\n- remote.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"terraform_data\" resource with an \"ssh\" connection to the virtual machine to copy the install script using the \"file\" provisioner on the virtual machine and to execute the script using the \"remote-exec\" provisioner'\n- technology: ansible\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- docker.engine\n- local.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: compose\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- docker.engine\n- local.machine\nweight: 0\nreason: One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules.\n- technology: terraform\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- docker.engine\n- local.machine\nweight: 1\nreason: Terraform provides a declarative module.\n- technology: ansible\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- docker.engine\n- remote.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: compose\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- docker.engine\n- remote.machine\nweight: 0\nreason: One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules.\n- technology: terraform\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- docker.engine\n- remote.machine\nweight: 0.5\nreason: Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.\n- technology: ansible\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- gcp.cloudsql\nweight: 0.5\nreason: Primary use case due to the specialization of Ansible. However, need to install and handle GCP CloudSQL Proxy, while the corresponding Terraform module already provides this.\n- technology: terraform\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- gcp.cloudsql\nweight: 1\nreason: Terraform provides a declarative module.\n- technology: ansible\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- kubernetes.cluster\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: kubernetes\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- kubernetes.cluster\nweight: 0\nreason: Kubernetes Job with imperative parts, while declarative other technologies provide declarative modules.\n- technology: terraform\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- kubernetes.cluster\nweight: 0\nreason: Ansible is more specialized.\n- technology: ansible\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- local.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: terraform\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- local.machine\nweight: 1\nreason: Terraform provides a declarative module.\n- technology: ansible\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- remote.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: terraform\ncomponent: mysql.database\nhosting:\n- mysql.dbms\n- remote.machine\nweight: 0.5\nreason: Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.\n- technology: ansible\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- docker.engine\n- local.machine\nweight: 0.5\nreason: Docker Compose is more specialized\ndetails: '\"community.docker.docker_container\" task'\n- technology: compose\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- docker.engine\n- local.machine\nweight: 1\nreason: Docker is the underlying technology.\ndetails: docker-compose manifest generated and applied\n- technology: terraform\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- docker.engine\n- local.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"docker_container\" and \"docker_image\" resources'\n- technology: ansible\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- docker.engine\n- remote.machine\nweight: 0.5\nreason: Docker Compose is more specialized\ndetails: '\"community.docker.docker_container\" task'\n- technology: compose\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- docker.engine\n- remote.machine\nweight: 1\nreason: Docker is the underlying technology.\ndetails: docker-compose manifest generated and applied\n- technology: terraform\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- docker.engine\n- remote.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"docker_container\" and \"docker_image\" resources'\n- technology: ansible\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- gcp.cloudsql\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\ndetails: '\"google.cloud.gcp_sql_instance\" and \"google.cloud.gcp_sql_user\" tasks'\n- technology: terraform\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- gcp.cloudsql\nweight: 1\nreason: Terraform provides a declarative module.\ndetails: '\"google_sql_database_instance\" and \"google_sql_user\" resources'\n- technology: ansible\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- kubernetes.cluster\nweight: 0.5\nreason: Kubernetes is more specialized.\ndetails: '\"kubernetes.core.k8s\" tasks'\n- technology: kubernetes\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- kubernetes.cluster\nweight: 1\nreason: Kubernetes is the underlying technology.\ndetails: Kubernetes manifest generated and applied\n- technology: terraform\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- kubernetes.cluster\nweight: 0.5\nreason: Kubernetes is more specialized.\ndetails: '\"kubernetes_deployment_v1\" and \"kubernetes_service_v1\" resources'\n- technology: ansible\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- local.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\ndetails: '\"ansible.builtin.apt\", \"ansible.builtin.systemd\", \"ansible.builtin.copy\", \"ansible.builtin.lineinfile\", and \"community.mysql.mysql_user\" tasks'\n- technology: terraform\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- local.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"local_file\" resource to create the installation script and \"terraform_data\" to execute the script using the \"local-exec\" provisioner'\n- technology: ansible\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- remote.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\ndetails: '\"ansible.builtin.apt\", \"ansible.builtin.systemd\", \"ansible.builtin.copy\", \"ansible.builtin.lineinfile\", and \"community.mysql.mysql_user\" tasks'\n- technology: terraform\ncomponent: mysql.dbms\nartifact: dbms.image\nhosting:\n- remote.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"terraform_data\" resource with an \"ssh\" connection to the virtual machine to copy the install script using the \"file\" provisioner on the virtual machine and to execute the script using the \"remote-exec\" provisioner'\n- technology: ansible\ncomponent: object.storage\nhosting:\n- gcp.cloudstorage\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: terraform\ncomponent: object.storage\nhosting:\n- gcp.cloudstorage\nweight: 1\nreason: Terraform provides a declarative module.\n- technology: ansible\ncomponent: object.storage\nhosting:\n- minio.server\n- docker.engine\n- local.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: compose\ncomponent: object.storage\nhosting:\n- minio.server\n- docker.engine\n- local.machine\nweight: 0\nreason: One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules.\n- technology: terraform\ncomponent: object.storage\nhosting:\n- minio.server\n- docker.engine\n- local.machine\nweight: 1\nreason: Terraform provides a declarative module.\n- technology: ansible\ncomponent: object.storage\nhosting:\n- minio.server\n- docker.engine\n- remote.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: compose\ncomponent: object.storage\nhosting:\n- minio.server\n- docker.engine\n- remote.machine\nweight: 0\nreason: One-time use docker container (\"fake Kubernetes job\") with imperative parts, while other technologies provide declarative modules.\n- technology: terraform\ncomponent: object.storage\nhosting:\n- minio.server\n- docker.engine\n- remote.machine\nweight: 0.5\nreason: Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.\n- technology: ansible\ncomponent: object.storage\nhosting:\n- minio.server\n- kubernetes.cluster\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: kubernetes\ncomponent: object.storage\nhosting:\n- minio.server\n- kubernetes.cluster\nweight: 0\nreason: Kubernetes Job with imperative parts, while declarative other technologies provide declarative modules.\n- technology: terraform\ncomponent: object.storage\nhosting:\n- minio.server\n- kubernetes.cluster\nweight: 0\nreason: Ansible is more specialized.\n- technology: ansible\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- docker.engine\n- local.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"community.docker.docker_container\" task'\n- technology: compose\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- docker.engine\n- local.machine\nweight: 1\nreason: Docker is the underlying technology.\ndetails: docker compose manifest generated and applied\n- technology: terraform\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- docker.engine\n- local.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"docker_container\" and \"docker_image\" resources'\n- technology: ansible\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- docker.engine\n- remote.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"community.docker.docker_container\" task'\n- technology: compose\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- docker.engine\n- remote.machine\nweight: 1\nreason: Docker is the underlying technology.\ndetails: docker compose manifest generated and applied\n- technology: terraform\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- docker.engine\n- remote.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"docker_container\" and \"docker_image\" resources'\n- technology: ansible\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- gcp.memorystore\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\n- technology: terraform\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- gcp.memorystore\nweight: 1\nreason: Terraform provides a declarative module.\n- technology: ansible\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- kubernetes.cluster\nweight: 0.5\nreason: Kubernetes is more specialized.\n- technology: kubernetes\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- kubernetes.cluster\nweight: 1\nreason: Kubernetes is the underlying technology.\ndetails: Kubernetes manifest generated and applied\n- technology: terraform\ncomponent: redis.server\nartifact: cache.image\nhosting:\n- kubernetes.cluster\nweight: 0.5\nreason: Kubernetes is more specialized.\n- technology: ansible\ncomponent: service.application\nartifact: docker.image\nhosting:\n- docker.engine\n- local.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"community.docker.docker_container\" task'\n- technology: compose\ncomponent: service.application\nartifact: docker.image\nhosting:\n- docker.engine\n- local.machine\nweight: 1\nreason: Docker is the underlying technology.\ndetails: docker compose manifest generated and applied\n- technology: terraform\ncomponent: service.application\nartifact: docker.image\nhosting:\n- docker.engine\n- local.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"docker_container\" and \"docker_image\" resources'\n- technology: ansible\ncomponent: service.application\nartifact: docker.image\nhosting:\n- docker.engine\n- remote.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"community.docker.docker_container\" task'\n- technology: compose\ncomponent: service.application\nartifact: docker.image\nhosting:\n- docker.engine\n- remote.machine\nweight: 1\nreason: Docker is the underlying technology.\ndetails: docker compose manifest generated and applied\n- technology: terraform\ncomponent: service.application\nartifact: docker.image\nhosting:\n- docker.engine\n- remote.machine\nweight: 0.5\nreason: Docker Compose is more specialized.\ndetails: '\"docker_container\" and \"docker_image\" resources'\n- technology: ansible\ncomponent: service.application\nartifact: docker.image\nhosting:\n- gcp.cloudrun\nweight: 0\nreason: Custom module with imperative parts, while Terraform provides a declarative module.\ndetails: '\"ansible.builtin.shell\", \"ansible.builtin.tempfile\", and \"ansible.builtin.copy\" tasks '\n- technology: terraform\ncomponent: service.application\nartifact: docker.image\nhosting:\n- gcp.cloudrun\nweight: 1\nreason: Terraform provides a declarative module.\ndetails: '\"google_cloud_run_v2_service\" and \"google_cloud_run_service_iam_binding\" resources'\n- technology: ansible\ncomponent: service.application\nartifact: docker.image\nhosting:\n- kubernetes.cluster\nweight: 0.5\nreason: Kubernetes is more specialized.\ndetails: '\"kubernetes.core.k8s\" tasks'\n- technology: kubernetes\ncomponent: service.application\nartifact: docker.image\nhosting:\n- kubernetes.cluster\nweight: 1\nreason: Kubernetes is the underlying technology.\ndetails: Kubernetes manifest generated and applied\n- technology: terraform\ncomponent: service.application\nartifact: docker.image\nhosting:\n- kubernetes.cluster\nweight: 0.5\nreason: Kubernetes is more specialized.\ndetails: '\"kubernetes_deployment_v1\" and \"kubernetes_service_v1\" resources'\n- technology: ansible\ncomponent: service.application\nartifact: tar.archive\nhosting:\n- '*'\n- local.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible. Special integration for systemd.\ndetails: '\"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", \"ansible.builtin.shell\", and \"ansible.builtin.systemd\" tasks with \"when\" statements'\n- technology: terraform\ncomponent: service.application\nartifact: tar.archive\nhosting:\n- '*'\n- local.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts.'\n- technology: ansible\ncomponent: service.application\nartifact: tar.archive\nhosting:\n- '*'\n- remote.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible. Special integration for systemd.\ndetails: '\"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", \"ansible.builtin.shell\", and \"ansible.builtin.systemd\" tasks with \"when\" statements'\n- technology: terraform\ncomponent: service.application\nartifact: tar.archive\nhosting:\n- '*'\n- remote.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"file\" provisioner to upload artifacts and scripts and \"remote-exec\" to execute scripts'\n- technology: ansible\ncomponent: service.application\nartifact: zip.archive\nhosting:\n- '*'\n- local.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible. Special integration for systemd.\ndetails: '\"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", \"ansible.builtin.shell\", and \"ansible.builtin.systemd\" tasks with \"when\" statements'\n- technology: terraform\ncomponent: service.application\nartifact: zip.archive\nhosting:\n- '*'\n- local.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts.'\n- technology: ansible\ncomponent: service.application\nartifact: zip.archive\nhosting:\n- '*'\n- remote.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible. Special integration for systemd.\ndetails: '\"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", \"ansible.builtin.shell\", and \"ansible.builtin.systemd\" tasks with \"when\" statements'\n- technology: terraform\ncomponent: service.application\nartifact: zip.archive\nhosting:\n- '*'\n- remote.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"file\" provisioner to upload artifacts and scripts and \"remote-exec\" to execute scripts'\n- technology: ansible\ncomponent: service.application\nartifact: zip.archive\nhosting:\n- gcp.appengine\nweight: 0\nreason: Custom module with imperative parts, while Terraform provides a declarative module.\ndetails: '\"ansible.builtin.shell\", \"ansible.builtin.tempfile\", \"ansible.builtin.unarchive\", and \"ansible.builtin.copy\" tasks'\n- technology: terraform\ncomponent: service.application\nartifact: zip.archive\nhosting:\n- gcp.appengine\nweight: 1\nreason: Terraform provides a declarative module.\ndetails: '\"google_app_engine_standard_app_version\", \"google_project_iam_member\", \"google_service_account\", \"google_storage_bucket\", and \"google_storage_bucket_object\" resources'\n- technology: ansible\ncomponent: software.application\nartifact: apt.package\nhosting:\n- '*'\n- local.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\ndetails: '\"ansible.builtin.shell\", \"ansible.builtin.apt_key\", \"ansible.builtin.apt_repository\", \"ansible.builtin.apt\", and \"ansible.builtin.copy\", tasks with \"when\" statements'\n- technology: terraform\ncomponent: software.application\nartifact: apt.package\nhosting:\n- '*'\n- local.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts'\n- technology: ansible\ncomponent: software.application\nartifact: apt.package\nhosting:\n- '*'\n- remote.machine\nweight: 1\nreason: Primary use case due to the specialization of Ansible.\ndetails: '\"ansible.builtin.shell\", \"ansible.builtin.apt_key\", \"ansible.builtin.apt_repository\", \"ansible.builtin.apt\", and \"ansible.builtin.copy\", tasks with \"when\" statements'\n- technology: terraform\ncomponent: software.application\nartifact: apt.package\nhosting:\n- '*'\n- remote.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"file\" provisioner to upload scripts and \"remote-exec\" to execute scripts'\n- technology: ansible\ncomponent: software.application\nartifact: tar.archive\nhosting:\n- '*'\n- local.machine\nweight: 0.5\nreason: While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application.\ndetails: '\"ansible.builtin.apt\", \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", and \"ansible.builtin.shell\" tasks with \"when\" statements'\n- technology: terraform\ncomponent: software.application\nartifact: tar.archive\nhosting:\n- '*'\n- local.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts'\n- technology: ansible\ncomponent: software.application\nartifact: tar.archive\nhosting:\n- '*'\n- remote.machine\nweight: 0.5\nreason: While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., \"service.application\".\ndetails: '\"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", and \"ansible.builtin.shell\" tasks with \"when\" statements'\n- technology: terraform\ncomponent: software.application\nartifact: tar.archive\nhosting:\n- '*'\n- remote.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"file\" provisioner to upload artifacts and scripts and \"remote-exec\" to execute scripts'\n- technology: ansible\ncomponent: software.application\nartifact: zip.archive\nhosting:\n- '*'\n- local.machine\nweight: 0.5\nreason: While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application.\ndetails: '\"ansible.builtin.apt\", \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", and \"ansible.builtin.shell\" tasks with \"when\" statements'\n- technology: terraform\ncomponent: software.application\nartifact: zip.archive\nhosting:\n- '*'\n- local.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"local_file\" module to create scripts and artifacts and \"local-exec\" provisioner to execute scripts.'\n- technology: ansible\ncomponent: software.application\nartifact: zip.archive\nhosting:\n- '*'\n- remote.machine\nweight: 0.5\nreason: While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application.\ndetails: '\"ansible.builtin.apt\", \"ansible.builtin.file\", \"ansible.builtin.unarchive\", \"ansible.builtin.copy\", \"ansible.builtin.fail\", and \"ansible.builtin.shell\" tasks with \"when\" statements'\n- technology: terraform\ncomponent: software.application\nartifact: zip.archive\nhosting:\n- '*'\n- remote.machine\nweight: 0\nreason: Ansible is more specialized. Also using provisioners is a \"last resort\".\ndetails: '\"file\" provisioner to upload artifacts and scripts and \"remote-exec\" to execute scripts'\n- technology: ansible\ncomponent: virtual.machine\nartifact: machine.image\nhosting:\n- openstack.provider\nweight: 0.5\nreason: Terraform is more specialized.\ndetails: '\"openstack.cloud.security_group\", \"openstack.cloud.security_group_rule\" and \"openstack.cloud.server\" tasks'\n- technology: terraform\ncomponent: virtual.machine\nartifact: machine.image\nhosting:\n- openstack.provider\nweight: 1\nreason: Terraform provides a declarative module.\ndetails: '\"openstack_compute_instance_v2\", \"openstack_networking_secgroup_rule_v2\" and \"openstack_networking_secgroup_v2\" resources'\n
","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#reference-implementation","title":"Reference Implementation","text":"

We provide a reference implementation for this specification as part of OpenTOSCA Vintner. OpenTOSCA Vintner is a TOSCA preprocessing and management layer. The project is open-source, licensed under Apache-2.0, and publicly available at GitHub.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/rules/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Vintner","Specification"]},{"location":"variability4tosca/specification/","title":"Specification","text":"","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#variability4tosca-specification-10-release-candidate","title":"Variability4TOSCA Specification 1.0 Release Candidate","text":"

This document specifies Variability4TOSCA which extends TOSCA Simple Profile in YAML Version 1.3 with conditional elements to model deployment variability. This includes conditional node templates, relationship templates, properties, artifacts, groups, policies, types, inputs, and imports. In the following, we discuss the differences and the processes to resolve the variability. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#terminology","title":"Terminology","text":"

We quickly introduce some terminologies.

  • A condition holds if the condition evaluates to true.
  • An element is present if all assigned conditions hold.
  • An element is absent if not all assigned conditions hold.
  • A variability resolver is a TOSCA processor that resolves the variability of a variable service template, thus, derives a variability-resolved service template
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#service-template","title":"Service Template","text":"

A service template must have the TOSCA definitions version tosca_variability_1_0. Such a service template is also called variable service template.

Keyname Mandatory Type Description tosca_definitions_version true String The required TOSCA definitions version. Must be tosca_variability_1_0.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#topology-template","title":"Topology Template","text":"

A topology template additionally contains a variability definition. Such a topology template is also called variable topology template.

Keyname Mandatory Type Description variability true VariabilityDefinition A required object for variability inputs, variability presets, and variability expressions.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#variability-definition","title":"Variability Definition","text":"

A variability definition defines variability inputs, variability presets, variability expressions, and variability options.

Keyname Mandatory Type Description inputs false Map(String, VariabilityInput) An optional map of input parameters used inside variability expressions. presets false Map(String, VariabilityPreset) An optional map of variability preset definitions. expressions false Map(String, VariabilityExpression) An optional map of variability expressions. constraints false List(LogicExpression) An optional list of constraints respected when resolving variability. options false Map(String, Boolean) An optional map of variability options. type_specific_conditions false String | List(TypeSpecificDefaultCondition) An optional definition of type-specific default conditions. If string, then treated as relative file to import (default: \"./type-specific-conditions.yaml\") technology_rules false String | List(TechnologyRule) An optional definition of technology assignment rules. If string, then treated as relative file to import (default: [\"./rules.yaml\", \"./lib/rules.yaml\"]). plugins false PluginDefinition An optional definition of plugins.

The following non-normative and incomplete example contains a variability definition which declares the variability input mode and two variability presets dev and prod are defined which either assigns mode the value dev or prod. Furthermore, two variability conditions is_dev and is_prod which evaluate if mode equals dev or prod, respectively.

variability:\ninputs:\nmode:\ntype: string\npresets:\ndev:\nname: Development\ndescription: Deploy the application on a private cloud\ninputs:\nmode: dev\nprod:\nname: Production\ndescription: Deploy the application on a public cloud\ninputs:\nmode: prod\nexpressions:\nis_dev: { equal: [ { variability_input: mode }, dev ] }\nis_prod: { equal: [ { variability_input: mode }, prod ] }\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#variability-input","title":"Variability Input","text":"

A variability input is an input parameter which additionally has the following keywords.

Keyname Mandatory Type Description default_expression false ValueExpression A value expression as default. implies false String | List(String) Implies/ requires another variability input. excludes false String | List(String) Excludes another variability input. alternatives false List(String) Requires exactly one of the referenced variability input. choices false List(String) Requires none, one, or multiple of referenced variability input.

For example, the following variability input has a value expression as default value assigned.

inputs:\nmode:\ntype: string\ndefault_expression: <ValueExpression>\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#variability-options","title":"Variability Options","text":"

There are the following variability options. More specific options override wider set options. For example, the following options the mode strict is configured. This mode disables all default conditions and pruning. However, pruning of nodes is explicitly set by node_pruning, thus, nodes are pruned regardless of the set mode.

options: mode: manual\nnode_pruning: true\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#general-options","title":"General Options","text":"

The following options are general options.

Keyname Mandatory Type Default Description mode false manual | consistent-strict | consistent-loose | default | semantic-strict | semantic-loose manual Configure pruning mode.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#default-condition-options","title":"Default Condition Options","text":"

The following options are used to configure the default conditions of elements.

Keyname Mandatory Type Default Description default_condition false Boolean false Enable all default conditions (consistency and semantic). input_default_condition false Boolean false Enable default condition for inputs (consistency and semantic). input_default_consistency_condition false Boolean false Enable default consistency condition for inputs. input_default_semantic_condition false Boolean false Enable default semantic condition for inputs. node_default_condition false Boolean false Enable default condition for nodes (consistency and semantic). node_default_condition_mode false List(source | incoming | incomingnaive | host | artifact | artifactnaive, -) incoming-artifact Configure the default condition for nodes. node_default_consistency_condition false Boolean false Enable default consistency condition for nodes. node_default_semantic_condition false Boolean false Enable default semantic condition for nodes. output_default_condition false Boolean false Enable default condition for outputs (consistency and semantic). output_default_consistency_condition false Boolean false Enable default consistency condition for outputs. output_default_semantic_condition false Boolean false Enable default semantic condition for outputs. relation_default_condition false Boolean false Enable default condition for relations (consistency and semantic). relation_default_condition_mode false List(source | target, -) source-target Configure the default condition for relations. relation_default_consistency_condition false Boolean false Enable default semantic condition for relations. relation_default_semantic_condition false Boolean false Enable default consistency condition for relations. relation_default_implied false Boolean false Enable default implication for relations. Does not apply for hosting relations. policy_default_condition false Boolean false Enable default condition for policies (consistency and semantic). policy_default_consistency_condition false Boolean false Enable default consistency condition for policies. policy_default_semantic_condition false Boolean false Enable default semantic condition for policies. group_default_condition false Boolean false Enable default condition for groups (consistency and semantic). group_default_consistency_condition false Boolean false Enable default consistency condition for groups. group_default_semantic_condition false Boolean false Enable default semantic condition for groups. artifact_default_condition false Boolean false Enable default condition for artifacts (consistency and semantic). artifact_default_condition_mode false List(container | technology, -) container Configure the default condition for artifacts. artifact_default_consistency_condition false Boolean false Enable default consistency condition for artifacts. artifact_default_semantic_condition false Boolean false Enable default semantic condition for artifacts. property_default_condition false Boolean false Enable default condition for properties (consistency and semantic). property_default_consistency_condition false Boolean false Enable default consistency condition for properties. property_default_semantic_condition false Boolean false Enable default semantic condition for properties. type_default_condition false Boolean false Enable default condition for types (consistency and semantic). type_default_consistency_condition false Boolean false Enable default consistency condition for types. type_default_semantic_condition false Boolean false Enable default semantic condition for types. technology_default_condition false Boolean false Enable default condition for (deployment) technologies (consistency and semantic). technology_default_condition_mode false List(container | other, -) container-other Configure the default condition for (deployment) technologies. technology_default_consistency_condition false Boolean false Enable default consistency condition for technologies. technology_default_semantic_condition false Boolean false Enable default semantic condition for technologies.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#pruning-options","title":"Pruning Options","text":"

The following options are used to configure the pruning of elements.

Keyname Mandatory Type Default Description pruning false Boolean false Enable pruning of all elements (consistency and semantic). input_pruning false Boolean false Enable pruning of inputs (consistency and semantic). input_consistency_pruning false Boolean false Enable consistency pruning of inputs. input_semantic_pruning false Boolean false Enable semantic pruning of inputs. node_pruning false Boolean false Enable pruning of nodes (consistency and semantic). node_consistency_pruning false Boolean false Enable consistency pruning of nodes. node_semantic_pruning false Boolean false Enable semantic pruning of nodes. output_pruning false Boolean false Enable pruning of output (consistency and semantic). output_consistency_pruning false Boolean false Enable consistency pruning of output. output_semantic_pruning false Boolean false Enable semantic pruning of output. relation_pruning false Boolean false Enable pruning of relations (consistency and semantic). relation_consistency_pruning false Boolean false Enable consistency pruning of relations. relation_semantic_pruning false Boolean false Enable semantic pruning of relations. policy_pruning false Boolean false Enable pruning of policies (consistency and semantic). policy_consistency_pruning false Boolean false Enable consistency pruning of policies. policy_semantic_pruning false Boolean false Enable semantic pruning of policies. group_pruning false Boolean false Enable pruning of groups (consistency and semantic). group_consistency_pruning false Boolean false Enable consistency pruning of groups. group_semantic_pruning false Boolean false Enable semantic pruning of groups. artifact_pruning false Boolean false Enable pruning of artifacts (consistency and semantic). artifact_consistency_pruning false Boolean false Enable consistency pruning of artifacts. artifact_semantic_pruning false Boolean false Enable semantic pruning of artifacts. property_pruning false Boolean false Enable pruning of properties (consistency and semantic). property_consistency_pruning false Boolean false Enable consistency pruning of properties. property_semantic_pruning false Boolean false Enable semantic pruning of properties. type_pruning false Boolean false Enable pruning of types (consistency and semantic). type_consistency_pruning false Boolean false Enable consistency pruning of types. type_semantic_pruning false Boolean false Enable semantic pruning of types. technology_pruning false Boolean false Enable pruning of (deployment) technologies (consistency and semantic). technology_consistency_pruning false Boolean false Enable consistency pruning of technologies. technology_semantic_pruning false Boolean false Enable semantic pruning of technologies.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#checks-options","title":"Checks Options","text":"

The following options are used to configure checks.

Keyname Mandatory Type Default Description checks false Boolean true Enable all checks. consistency_checks false Boolean true Enable all consistency checks. semantic_checks false Boolean true Enable all semantic checks. relation_source_check false Boolean true Enable the consistency check regarding present relation sources. relation_target_check false Boolean true Enable the consistency check regarding present relation targets. ambiguous_hosting_check false Boolean true Enable the consistency check regarding at maximum one present hosting relation. missing_artifact_container_check false Boolean true Enable the consistency check regarding present container of artifacts. ambiguous_artifact_check false Boolean true Enable the consistency check regarding ambiguous present artifacts. missing_property_container_check false Boolean true Enable the consistency check regarding present container of properties. ambiguous_property_check false Boolean true Enable the consistency check regarding ambiguous present properties. missing_type_container_check false Boolean true Enable the consistency check regarding present containers of types. ambiguous_type_check false Boolean ture Enable the consistency check regarding exactly one present type per container. expected_hosting_check false Boolean true Enable the semantic check regarding an expected present hosting relation. expected_incoming_relation_check false Boolean true Enable the semantic check regarding an expected incoming relation. expected_artifact_check false Boolean true Enable the semantic check regarding an expected artifact. expected_technology_check false Boolean true Enable the consistency check regarding present technologies. missing_technology_container_check false Boolean true Enable the consistency check regarding present container of technologies. ambiguous_technology_check false Boolean true Enable the consistency check regarding ambiguous present technologies. ambiguous_relation_check false Boolean true Enable the consistency check regarding ambiguous present relations. ambiguous_input_check false Boolean true Enable the consistency check regarding ambiguous present inputs. ambiguous_output_check false Boolean true Enable the consistency check regarding ambiguous present outputs. unconsumed_input_check false Boolean true Enable the semantic check regarding not consumed inputs. unproduced_output_check false Boolean true Enable the consistency check regarding not produced outputs.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#solver-options","title":"Solver Options","text":"

The following options are used to configure the solver.

Keyname Mandatory Type Default Description optimization_topology false Boolean | min | max false Configure optimization considering topology. optimization_topology_unique false Boolean true Enable check for unique results considering topology. optimization_topology_mode false count | weight weight Configure optimization mode considering topology. optimization_technologies false Boolean | min | max false Enable optimization considering technologies. optimization_technologies_unique false Boolean false Enable check for unique results considering technologies. optimization_technologies_mode false count | weight | weight-count count Configure optimization mode considering technologies.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#normalization-options","title":"Normalization Options","text":"

The following options are used to configure the normalizer.

Keyname Mandatory Type Default Description technology_required false Boolean false Enable if a technology is required by default for a node.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#enricher-options","title":"Enricher Options","text":"

The following options are used to configure the enricher.

Keyname Mandatory Type Default Description enrich_input_condition false Boolean true Enable if a condition should be enriched to an element considering a variability input having the element id as name. enrich_technologies false Boolean false Enable if technologies are enriched. enrich_implementations false Boolean false Enable if implementations are enriched.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#constraints-options","title":"Constraints Options","text":"

This is an experimental feature.

The following options are used to configure constraints.

Keyname Mandatory Type Default Description constraints false Boolean false Enable all constraints. relation_source_constraint false Boolean false Enable the constraint regarding present relation sources. relation_target_constraint false Boolean false Enable the constraint regarding present relation targets. artifact_container_constraint false Boolean false Enable the constraint regarding present container of artifacts. property_container_constraint false Boolean false Enable the constraint regarding present container of properties. type_container_constraint false Boolean false Enable the constraint regarding present containers of types. hosting_stack_constraint false Boolean false Enable the constraint regarding present hosting stack. technology_constraint false Boolean false Enable the constraint regarding technologies. unique_property_constraint false Boolean false Enable the constraint regarding unique property names. unique_artifact_constraint false Boolean false Enable the constraint regarding unique artifact names. unique_input_constraint false Boolean false Enable the constraint regarding unique deployment input names. unique_output_constraint false Boolean false Enable the constraint regarding unique deployment output names. required_artifact_constraint false Boolean false Enable the constraint regarding required artifact. required_incoming_relation_constraint false Boolean false Enable the constraint regarding required incoming relation.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#pruning-modes","title":"Pruning Modes","text":"

There are several predefined pruning modes which provide different useful combinations of default conditions and the pruning of elements that can be directly used.

  • manual: no default or pruning conditions are enabled at all
  • consistent-strict: all default consistency conditions are enabled
  • consitent-loose: consistency pruning is enabled
  • default: all default conditions are enabled (consistency and semantic)
  • semantic-strict: consistency pruning is enabled and semantic defaults
  • semantic-loose: pruning is enabled everywhere (consistency and semantic)

Note, pruning modes do not consider input and output pruning in tosca_variability_1_0_rc_2 but in tosca_variability_1_0_rc_3.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#rc-v2","title":"RC v2","text":"

tosca_variability_1_0_rc_2 has the following default values.

mode: semantic-loose\nnode_default_condition_mode: incomingnaive-artifact-host\noptimization_topology: min\noptimization_topology_unique: true\noptimization_technologies: max\noptimization_technologies_mode: weight-count\ntechnology_constraint: true\nhosting_stack_constraint: true\nrelation_default_implied: true\ntechnology_required: false\nunconsumed_input_check: false\nunproduced_output_check: false\nenrich_technologies: true\nenrich_implementations: true\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#rc-v3","title":"RC v3","text":"

tosca_variability_1_0_rc_3 has the following default values. Also, pruning modes consider input and output pruning.

mode: semantic-loose\nnode_default_condition_mode: incomingnaive-artifact-host\noptimization_topology: min\noptimization_topology_unique: true\noptimization_technologies: max\noptimization_technologies_mode: weight-count\noptimization_technologies_unique: false\ntechnology_constraint: true\nhosting_stack_constraint: true\nunique_property_constraint: true\nunique_artifact_constraint: true\nunique_input_constraint: true\nunique_output_constraint: true\nrequired_artifact_constraint: true\nrelation_default_implied: true\ntechnology_required: true\nchecks: false\nenrich_technologies: true\nenrich_implementations: true\nartifact_default_condition_mode: container-managed\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#default-conditions","title":"Default Conditions","text":"

There are element-generic default conditions and type-specific default conditions. Element-generic default conditions are generic default conditions defined per element. However, type-specific default conditions are defined per type, e.g., node type, and, thus, override element-generic default conditions.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#element-generic-default-conditions","title":"Element-Generic Default Conditions","text":"

The following element-generic default conditions can be assigned to elements.

Element Consistency Semantic Default Conditions Node with Incoming Relations (incoming) false true Check if any incoming relation is present. Node with Artifacts (artifact) false true Check if any artifact is present. Property true false Check if the container, e.g., node template or policy, of the property is present. Input false true Check if the input is consumed. Output true false Check if the output is produced. Relation true false Check if the source and target of the relation is present. Policy false true Check if the policy has any targets which are present. Group false true Check if the group has any members which are present. Artifact (container) true false Check if the node template of the artifact is present. Technology (container) true false Check if the node template of the technology is present. Technology (other) true false Check if no other technology of the node template is present. Root true true The default condition of element always holds.

Thereby, we define a consistency condition a condition which targets the consistency of the metamodel, thus, ensuring that the metamodel can be correctly parsed, e.g., a property must have a container. In contrast, a semantic condition targets semantic aspect of elements or the type system, e.g., a node without incoming relations is not used and can be removed.

Depending on the context, other default conditions are more applicable. The following default conditions can be chosen instead of the ones introduced above.

Element Consistency Semantic Default Conditions Node with Incoming Relations (incomingnaive) false true Check if any incoming relation is present using has_incoming_relation_naive. Node with Incoming Relations (source) false true Check if any source of any incoming relation is present. Node with Outgoing Relations (outgoing) false true Check if any outgoing relation is present. Node with Outgoing Relations (outgoingnaive) false true Check if any outgoing relation is present using has_outgoing_relation_naive. Node with Host (host) false true Check if any host is present. Node with Artifact (artifactnaive) false true Check if any artifact is present using has_artifact_naive. Relation (source) true false Check if the source of the relation is present. Relation (target) true false Check if the target of the relation is present. Artifact (managed) false true Check if the artifact is managed by any technology.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#type-specific-default-conditions","title":"Type-Specific Default Conditions","text":"

Conditional types conflict with this feature!

Type-specific default conditions can be defined to override element-generic default conditions for specific type. A type-specific default condition is defined as follows and is supported for nodes, relations, properties, artifact, groups, and policies.

Keyname Mandatory Type Default Description conditions true VariabilityCondition | List(VariabilityCondition) A variability condition. If a list is given, then the conditions are combined using the and operation. consistency false Boolean false Configures the condition to be a consistency condition. semantic false Boolean true Configures the condition to be a semantic condition.

For example, the node type scenario.monitor defines a type-specific semantic default condition checking for the presence of its host.

type_specific_conditions:\nnode_types:\nscenario.monitor:\nconditions: {host_presence: SELF}\nsemantic: true\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#technology-rules","title":"Technology Rules","text":"

Conditional types conflict with this feature!

Technology rules can be defined to automatically select a deployment technology for a component. A technology rule is defined as follows.

Keyname Mandatory Type Description technology true String The name of the deployment technology. component true String The type of the component to which the technology can be assigned. hosting false List(String) The type of the host of the component which the technology requires. If list, then refers to the hosting stack. conditions false VariabilityCondition | List(VariabilityCondition) The conditions under which a technology can be assigned to a component. weight false Number The weight which is minimized (default is 1). assign false String Configure the node type that is assigned (default: ${current_type}.${technology_name}.${host_type_prefix}).

For example, the node type application can be deployed using the deployment technology terraform if the host is of type terraform_host.

technology_rules:\nterraform:\n- component: application\nhosting: terraform_host\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#variability-preset","title":"Variability Preset","text":"

A variability preset predefines values for variability inputs that might be used when resolving variability.

Keyname Mandatory Type Description name false String An optional name of the variability preset. description false String An optional description for the variability preset. inputs true Map(String, InputParameterAssignment) A required map of input parameter assignments.

For example, the following variability preset dev set the values of the two variability inputs mode and another_input but not of another_another_input.

variability:\ninputs:\nmode:\ntype: string\nanother_input: type: string\nanother_another_input:\ntype: string\npresets:\ndev:\nname: Development\ndescription: Deploy the application on a private cloud\ninputs:\nmode: dev\nanother_input: another_value\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#variability-expression","title":"Variability Expression","text":"

A variability expression is an expression which consists of operators and functions which are listed below. For example, the following expression returns the total amount of costs. This result might be used inside a variability condition to ensure that the deployment costs are within a specific budget.

topology_template:\nvariability: expressions:\nmy_expression: {add: [{variability_input: costs_offering_a}, {variability_input: costs_offering_b}]}\n

There are different kinds of variability expressions, as displayed in Figure 1. Value expressions return any kind of value and logic expressions return Booleans.

Figure 1: Different variability expressions types","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#variability-condition","title":"Variability Condition","text":"

A variability condition is a logic expression targeting the presence of an element, as displayed in Figure 1. Allowed operators and functions are listed below. For example, the following variability condition is_prod evaluates to true if the variability input mode equals prod.

topology_template: variability:\ninputs: mode: type: string\nexpressions:\nis_prod: {equal: [{variability_input: mode}, prod]}\nnode_template:\nmy_prod_node:\ntype: my.prod.node\nconditions: {logic_expression: is_prod}\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#node-template","title":"Node Template","text":"

A node template is a conditional element, thus, variability conditions and other options can be assigned. These conditions must hold otherwise the respective node template is not present. A node template can also hold conditional types, artifact, and properties.

Keyname Mandatory Type Description type true String | List(Map(String, TypeAssignment)) The type or a list of conditional type assignments. conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. artifacts false Map(String, ArtifactTemplate) | List(Map(String, ArtifactTemplate){single}) An optional map of artifact or a list of artifact maps. If a list is given, then each artifact map must contain only one artifact. properties false Map(String, PropertyAssignment) | List(Map(String, PropertyAssignment){single}) An optional map of property assignments or a list of property assignments maps. If a list is given, then each property assignment map must contain only one property. default_condition false Boolean Enable the default condition for this element. This overrides the variability options of the variable topology template. default_consistency_condition false Boolean Enable the default consistency condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_semantic_condition false Boolean Enable the default semantic condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_condition_mode false source | relation | host | source-host | relation-host Configure the default condition for this element. persistent false Boolean Configure if node is persistent, e.g., always consumed by an end user from the browser. This will prevent unexpected pruning by setting the pruning option to false. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. weight false Boolean | Non-Negative Number Configure the weight of this element used during optimization (default is 1). implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target. technology false String | List(Map(String, TechnologyTemplate){single}) An optional conditional assignment of deployment technologies.

For example, the following node template has a variability condition assigned.

prod_database:\ntype: my.prod.db\nconditions: {logic_expression: is_prod}\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#technology-template","title":"Technology Template","text":"

A technology template is a conditional elements, thus, variability conditions and other options can be assigned. These conditions must hold otherwise the respective technology template is not present.

Keyname Mandatory Type Description conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. default_alternative false Boolean Declare the technology as default. This overwrites assigned conditions. There must be only one default assignment. default_condition false Boolean Enable the default condition for this element. This overrides the variability options of the variable topology template. default_condition_mode false container | other | container-other Configure the default condition for this element. default_consistency_condition false Boolean Enable the default consistency condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_semantic_condition false Boolean Enable the default semantic condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. weight false Boolean | Non-Negative Number Configure the weight of this element used during optimization (default is 1). assign false String Configure the node type that is assigned (default: ${current_type}.${technology_name}.${host_type_prefix}).","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#type-assignment","title":"Type Assignment","text":"

A type is a conditional element, thus, variability conditions and further options can be assigned to a type assignment. These conditions must hold otherwise the respective relationship is not present.

Keyname Mandatory Type Description conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. default_alternative false Boolean Declare the type as default. This overwrites assigned conditions. There must be only one default assignment. default_condition false Boolean Enable the default condition for this element. This overrides the variability options of the variable topology template. default_consistency_condition false Boolean Enable the default consistency condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_semantic_condition false Boolean Enable the default semantic condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target.

For example, the following node template database has a conditional type switching between a development and production database.

database:\ntype:\n- my.dev.db:\nconditions: <VariabilityCondition>\n- my.prod.db:\nconditions: <VariabilityCondition>\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#requirement-assignment","title":"Requirement Assignment","text":"

A requirement assignment is a conditional element, thus, variability conditions and other options can be assigned. These conditions must hold otherwise the respective relationship is not present.

Keyname Mandatory Type Description conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. default_alternative false Boolean Declare the requirement assignment as default. This overwrites assigned conditions. There must be only one default assignment. default_condition false Boolean Enable the default condition for this element. This overrides the variability options of the variable topology template. default_consistency_condition false Boolean Enable the default consistency condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_semantic_condition false Boolean Enable the default semantic condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_condition_mode false source-target | source | target Configure the default condition for this element. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target. implied false Boolean | SOURCE | TARGET | CONTAINER Enables that the manual conditions are used to imply the element when the source/ target (depending on the configuration) is present. This overrides the variability options of the variable topology template.

For example, the following requirement assignment host has a variability condition assigned.

requirements:\n- host:\nnode: dev_runtime\nconditions: {logic_expression: is_dev}\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#relationship-templates","title":"Relationship Templates","text":"

A relationship template can contain conditional properties. Note, the presence of a relationship template is bound to the presence of the requirement assignment in which it is used. A relationship template can also hold conditional properties.

Keyname Mandatory Type Description type true String | List(Map(String, TypeAssignment)) The type or a list of conditional type assignments. properties false Map(String, PropertyAssignment) | List(Map(String, PropertyAssignment){single}) An optional map of property assignments or a list of property assignments maps. If a list is given, then each property assignment map must contain only one property.

For example, the following relationship templates contains conditional properties.

relationship_templates:\nmy_relationship:\ntype: my.relationship\nproperties:\n-   property_one:\nvalue: value_one\nconditions: <VariabilityCondition>\n-   property_two:\nvalue: value_two\nconditions: <VariabilityCondition>\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#property-assignment","title":"Property Assignment","text":"

A property is a conditional element, thus, variability conditions and other options can be assigned. These conditions must hold otherwise the respective relationship is not present. However, this only applies if the property assignment is wrapped as the following object and if it is used in a list.

Keyname Mandatory Type Description value false (Original) PropertyAssignment The value of the property. expression false ValueExpression A value expressions which is evaluated and used as value. conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. default_alternative false Boolean Declare the value as default. This overwrites assigned conditions. There must be only one default assignment. default_condition false Boolean Enable the default condition for this element. This overrides the variability options of the variable topology template. default_consistency_condition false Boolean Enable the default consistency condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_semantic_condition false Boolean Enable the default semantic condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target.

These keywords are used to detect if a property assignment is wrapped. Thus, if any of these keywords must be used as value for property, then this property must be wrapped. For example, the property key_one has the value {value: the_value} and, thus, must be wrapped.

properties:\n- key_one:\nvalue: {value: the_value}\n- conditional_property:\nvalue: conditional_value\nconditions: <VariabilityCondition>\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#group-template","title":"Group Template","text":"

A group is conditional element, thus, variability conditions and other options can be assigned. Depending on the group type the conditions are either assigned to the group itself or to the group members. A group can also hold conditional types and properties.

In general, the conditions are assigned to the group itself. These conditions must hold otherwise the respective group is not present. We refer to such a group also as conditional group.

However, if the group is derived from variability.groups.ConditionalMembers then the conditions are assigned to the group members. These conditions must hold otherwise the respective group members are not present in the variability-resolved service template. Furthermore, group elements can be node templates and requirement assignments. We refer to such a group also as variability group. A variability group is always absent and, thus, always removed when resolving variability.

Keyname Mandatory Type Description type true String | List(Map(String, TypeAssignment)) The type or a list of conditional type assignments. members false List(String | Tuple(String, String) | Tuple(String, Number)) An optional list of node templates names or requirement assignment names/ index of a node template. conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. properties false Map(String, PropertyAssignment) | List(Map(String, PropertyAssignment){single}) An optional map of property assignments or a list of property assignments maps. If a list is given, then each property assignment map must contain only one property. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target.

For example, the following group example_group is a conditional group which is only present if assigned conditions hold.

conditional_group:\ntype: tosca.groups.Root\nmembers: [prod_database, [application, prod_connects_to]]\nconditions: {logic_expression: is_prod}\n

However, the following group example_group assigns its assigned conditions to its members, i.e., the node template prod_database and the requirement assignment prod_connects_to of the node template application. In contrast to the previous example this group is not derived from variability.groups.ConditionalMembers. Thus, the presence of the node template prod_database depends on condition is_prod.

variability_group:\ntype: variability.groups.ConditionalMembers\nmembers: [prod_database, [application, prod_connects_to]]\nconditions: {logic_expression: is_prod}\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#policy-template","title":"Policy Template","text":"

A policy template is a conditional element, thus, variability conditions and other options can be assigned. These conditions must hold otherwise the respective policy is not present. A policy can also hold conditional types and properties.

Keyname Mandatory Type Description type true String | List(Map(String, TypeAssignment)) The type or a list of conditional type assignments. conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. properties false Map(String, PropertyAssignment) | List(Map(String, PropertyAssignment){single}) An optional map of property assignments or a list of property assignments maps. If a list is given, then each property assignment map must contain only one property. default_condition false Boolean Enable the default condition for this element. This overrides the variability options of the variable topology template. default_consistency_condition false Boolean Enable the default consistency condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_semantic_condition false Boolean Enable the default semantic condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target.

For example, the following policy template anticollocation has the variability condition is_prod assigned. Depending on the presence of this policy, the node templates wordpress and mysql must not be hosted on the same server, e.g., during production. For more information about this example, take a look in the TOSCA Simple Profile in YAML Version 1.3.

node_templates:\nwordpress:\ntype: tosca.nodes.WebServer\nrequirements:\n- host:\nnode_filter:\ncapabilities:\n- os:\nproperties:\n- architecture: x86_64\n- type: linux\nmysql:\ntype: tosca.nodes.DBMS.MySQL\nrequirements:\n- host:\nnode: tosca.nodes.Compute\nnode_filter:\ncapabilities:\n- os:\nproperties:\n- architecture: x86_64\n- type: linux\npolicies:\n- anticollocation:\ntype: tosca.policies.AntiCollocation\ntargets: [wordpress_server, mysql]\nconditions: {logic_expression: is_prod}\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#artifact-template","title":"Artifact Template","text":"

A (deployment) artifact is a conditional element, thus, variability conditions and other options can be assigned. These conditions must hold otherwise the respective artifact is not present. An artifact can also hold conditional properties.

Keyname Mandatory Type Description type true String | List(Map(String, TypeAssignment)) The type or a list of conditional type assignments. conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. default_alternative false Boolean Declare the artifact as default. This overwrites assigned conditions. There must be only one default artifact. properties false Map(String, PropertyAssignment) | List(Map(String, PropertyAssignment){single}) An optional map of property assignments or a list of property assignments maps. If a list is given, then each property assignment map must contain only one property. default_condition false Boolean Enable the default condition for this element. This overrides the variability options of the variable topology template. default_condition_mode false List(container | technology, -) Configure the default condition for this element. default_consistency_condition false Boolean Enable the default consistency condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_semantic_condition false Boolean Enable the default semantic condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target.

For example, the following node template my_node has two artifacts artifact_a and artifact_b assigned which are both conditional.

my_node:\ntype: my.node\nartifacts:\n- artifact_a:\nconditions: <VariabilityCondition>\n- artifact_b:\nconditions: <VariabilityCondition>\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#topology-template-input","title":"Topology Template Input","text":"

A topology template input is a conditional element, thus, variability conditions and other options can be assigned. These conditions must hold otherwise the respective input is not present.

Keyname Mandatory Type Description conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target. default_alternative false Boolean Declare the input as default. This overwrites assigned conditions. There must be only one default assignment. default_condition false Boolean Enable the default condition for this element. This overrides the variability options of the variable topology template. default_consistency_condition false Boolean Enable the default consistency condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_semantic_condition false Boolean Enable the default semantic condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_condition_mode false source | relation | host | source-host | relation-host Configure the default condition for this element. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template.

For example, the topology template input has a variability condition assigned.

inputs:\nssh_key_file:\ntype: string\nconditions: <VariabilityCondition>\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#topology-template-output","title":"Topology Template Output","text":"

A topology template output is a conditional element, thus, variability conditions and other options can be assigned. These conditions must hold otherwise the respective output is not present.

Keyname Mandatory Type Description conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target. default_alternative false Boolean Declare the output as default. This overwrites assigned conditions. There must be only one default assignment. default_condition false Boolean Enable the default condition for this element. This overrides the variability options of the variable topology template. default_consistency_condition false Boolean Enable the default consistency condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_semantic_condition false Boolean Enable the default semantic condition for this element. Default condition must be enabled for this element. This overrides the variability options of the variable topology template. default_condition_mode false source | relation | host | source-host | relation-host Configure the default condition for this element. pruning false Boolean Enable the pruning for this element. This overrides the variability options of the variable topology template. consistency_pruning false Boolean Enable the consistency pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template. semantic_pruning false Boolean Enable the semantic pruning for this element. Pruning must be enabled for this element. This overrides the variability options of the variable topology template.

For example, the topology template output has a variability condition assigned.

outputs:\nvm_address:\ntype: string\nconditions: <VariabilityCondition>\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#import-definition","title":"Import Definition","text":"

An import definition is a conditional element, thus, variability conditions and other options can be assigned. These conditions must hold otherwise the respective import is not present.

Keyname Mandatory Type Description conditions false VariabilityCondition | List(VariabilityCondition) An optional variability condition. If a list is given, then the conditions are combined using the and operation. implies false List(Tuple(Target: VariabilityCondition, Condition?: VariabilityCondition)) An optional list of implications following the pattern element implies target or (element and condition) implies target.

For example, the following import has a variability condition assigned.

import:\n- file: some_file\nconditions: <VariabilityCondition>\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#normative-group-types","title":"Normative Group Types","text":"

There are two normative group types variability.groups.Root and variability.groups.ConditionalMembers. The first group type is the root group every other variability-related group, such as variability.groups.ConditionalMembers should derive from.

variability.groups.Root:\nderived_from: tosca.groups.Root\n

The second group type should be used for variability groups.

variability.groups.ConditionalMembers:\nderived_from: variability.groups.Root\nconditions: VariabilityCondition | List(VariabilityCondition)    
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#normative-interface-types","title":"Normative Interface Types","text":"

The following normative interfaces define a management interface for nodes and relationships. Currently, no management operations are defined. The definition is intended to be extended in other specifications, e.g., for building deployment artifacts after resolving variability.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#variability-management-interface-for-nodes","title":"Variability Management Interface for Nodes","text":"

The following interface manages the variability-related operations of nodes.

tosca.interfaces.node.management.Variability:\nderived_from: tosca.interfaces.Root\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#variability-management-interface-for-relationships","title":"Variability Management Interface for Relationships","text":"

The following interface manages the variability-related operations of relationships.

tosca.interfaces.relationship.management.Variability:\nderived_from: tosca.interfaces.Root\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#intrinsic-functions","title":"Intrinsic Functions","text":"

The following intrinsic functions can be used inside a variability expression.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#logical-operators","title":"Logical Operators","text":"

The following logical operators can be used inside a logic expression.

Keyname Input Output Description and List(BooleanExpression) Boolean Evaluates if all values are true. or List(BooleanExpression) Boolean Evaluates if at least one value is true. not BooleanExpression Boolean Negates the given value. xor List(BooleanExpression) Boolean Evaluates if an odd number of arguments is true. exo List(BooleanExpression) Boolean Evaluates if exactly one value is true. implies Tuple(BooleanExpression, BooleanExpression) Boolean Evaluates if first value implies the second value. amo List(BooleanExpression) Boolean Evaluates if at most one value is true.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#arithmetic-operators","title":"Arithmetic Operators","text":"

The following arithmetic operators can be used inside a variability expression.

Keyname Input Output Description add List(NumericExpression) Numeric Sums up given values. sub List(NumericExpression) Numeric Subtracts values from the first one. mul List(NumericExpression) Numeric Multiplies given values. div List(NumericExpression) Numeric Divides values from the first one. mod Tuple(NumericExpression, NumericExpression) Numeric Divides values and returns the remainder.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#presence-operators","title":"Presence Operators","text":"

The following presence operators can be used inside a logic expression.

Keyname Input Output Description variability_input String Any Returns the value of a variability input. logic_expression String Boolean Returns the value of the Logic Expression. value_expression String Any Returns the value of the Value Expression. node_presence Node: String | SELF | CONTAINER | SOURCE | TARGET Boolean Returns if node is present. host_presence Node: String | SELF | CONTAINER | SOURCE | TARGET Boolean Returns if any host of the node is present. Note, an error will be thrown later when consistency is checked if there are multiple hosting relations present. has_source Node: String | SELF | CONTAINER | SOURCE | TARGET Boolean Returns if any source of any incoming relation of the node template is present. has_incoming_relation Node: String | SELF | CONTAINER | SOURCE | TARGET Boolean Returns if the node template is target of at least one present incoming relationship. has_incoming_relation_naive Node: String | SELF | CONTAINER | SOURCE | TARGET Boolean Returns if the node template is target of at least one present incoming relationship in a naive way that will result in a circle considering the default condition of relations. has_outgoing_relation Node: String | SELF | CONTAINER | SOURCE | TARGET Boolean Returns if the node template is source of at least one present outgoing relationship. has_outgoing_relation_naive Node: String | SELF | CONTAINER | SOURCE | TARGET Boolean Returns if the node template is source of at least one present outgoing relationship in a naive way that will result in a circle considering the default condition of relations. has_artifact Node: String | SELF | CONTAINER | SOURCE | TARGET Boolean Returns if any artifact of the node template is present. has_artifact_naive Node: String | SELF | CONTAINER | SOURCE | TARGET Boolean Returns if any artifact of the node template is present in a naive way that will result in a circle considering the default condition of artifacts. relation_presence Tuple(Node: String | SELF | CONTAINER, Relation: String | Number) Boolean Returns if relation is present. artifact_presence Tuple(Node: String | SELF | CONTAINER, Artifact: String | Number) Boolean Returns if artifact is present. is_managed SELF | Tuple(Node: String | SELF | CONTAINER, Artifact: String | Number) Boolean Returns if artifact is managed by a deployment technology. policy_presence Policy: String | Number Boolean Returns if policy is present. group_presence Group: String Boolean Returns if group is present. input_presence Input: String | Number Boolean Returns if input is present. is_consumed Input: String | Number Boolean Returns if input is consumed by a property. output_presence Output: String | Number Boolean Returns if output is present. is_produced Output: String | Number Boolean Returns if output is produced by a property. source_presence SELF | CONTAINER Boolean Returns if source node of relation is present. Can only be used inside a relation. Otherwise use node_presence. target_presence SELF | CONTAINER Boolean Returns if target node of relation is present. Can only be used inside a relation. Otherwise use node_presence. has_present_target Policy: String | Number | SELF | CONTAINER Boolean Returns if any target of the given policy is present. has_present_member Group: String | SELF | CONTAINER Boolean Returns if any member of the given group is present. node_type_presence Tuple(Node: String | SELF | CONTAINER | SOURCE | TARGET, Type: String | Number) Boolean Returns if type of node is present. relation_type_presence Triple(Node: String | SELF | CONTAINER, Relation: String | Number, Type: String | Number) Boolean Returns if type of relation is present. group_type_presence Tuple(Group: String | SELF | CONTAINER, Type: String | Number) Boolean Returns if type of group is present. policy_type_presence Tuple(Group: String | SELF | CONTAINER, Type: String | Number) Boolean Returns if type of policy is present. artifact_type_presence Tuple(Node: String | SELF | CONTAINER | SOURCE | TARGET, Type: String | Number) Boolean Returns if type of policy is present. node_property_presence Tuple(Node: String | SELF | CONTAINER | SOURCE | TARGET, Property: String | Number) Boolean Returns if property of node is present. relation_property_presence Tuple(Node: String | SELF | CONTAINER, Relation: String | Number, Property: String | Number) Boolean Returns if property of relation is present. group_property_presence Tuple(Group: String | SELF | CONTAINER, Property: String | Number) Boolean Returns if property of group is present. policy_property_presence Tuple(Policy: String | Number | SELF | CONTAINER |, Property: String | Number) Boolean Returns if property of policy is present. artifact_property_presence Tuple(Node: String | SELF | CONTAINER | SOURCE | TARGET, Artifact: String | Number, Property: String | Number) Boolean Returns if property of artifact is present. container_presence SELF | CONTAINER Boolean Returns if container is present. Can only be used inside a property or artifact. import_presence Import: Number Boolean Returns if import is present. technology_presence Tuple(Node: String, Technology: String | Number) Boolean Returns if technology of node is present.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#string-operators","title":"String Operators","text":"

The following string operators can be used inside a variability expression.

Keyname Input Output Description concat List(ValueExpression) String Concatenates the given values. join Tuple(List(ValueExpression), String) String Joins the given values using the provided delimiter. token Tuple(ValueExpression, String, Number) String Splits a given value by the provided delimiter and returns the element specified by the provided index.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#constraint-operators","title":"Constraint Operators","text":"

The following constraint operators can be used inside a variability expression.

Keyname Input Output Description equal List(ValueExpression) Boolean Evaluates if the given values are equal. greater Tuple(NumericExpression, NumericExpression) Boolean Evaluates if the first value is greater than the second value. greater_or_equal Tuple(NumericExpression, NumericExpression) Boolean Evaluates if the first value is greater or equal to the second value. less Tuple(NumericExpression, NumericExpression) Boolean Evaluates if the first value is less than the second value. less_or_equal Tuple(NumericExpression, NumericExpression) Boolean Evaluates if the first value is less or equal to the second value. in_range Tuple(NumericExpression, Tuple(NumericExpression, NumericExpression)) Boolean Evaluates if the value is in a given range. valid_values Tuple(ValueExpression, List(ValueExpression)) Boolean Evaluates if the value is element of the list. length Tuple(ValueExpression, NumericExpression) Boolean Evaluates if the value has a given length. min_length Tuple(ValueExpression, NumericExpression) Boolean Evaluates if the value has a minimum length. max_length Tuple(ValueExpression, NumericExpression) Boolean Evaluates if the value has a maximum length.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#analytical-operators","title":"Analytical Operators","text":"

The following analytical operators can be used inside a variability expression.

Keyname Input Output Description sum List(Number) Number Returns the sum of the given values. count List(Number) Number Returns the count of the given values. min List(Number) Number Returns the min of the given values. max List(Number) Number Returns the max of the given values. mean List(Number) Number Returns the mean of the given values. median List(Number) Number Returns the median of the given values. variance List(Number) Number Returns the variance of the given values. standard_deviation List(Number) Number Returns the standard deviation of the given values. linear_regression List(List(Tuple(Number, Number)), Number) Number Returns the prediction using linear regression. polynomial_regression List(List(Tuple(Number, Number)), Number, Number) Number Returns the prediction using polynomial regression. logarithmic_regression List(List(Tuple(Number, Number)), Number) Number Returns the prediction using logarithmic regression. exponential_regression List(List(Tuple(Number, Number)), Number) Number Returns the prediction using exponential regression.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#date-operators","title":"Date Operators","text":"

The following date operators can be used inside a variability expression.

Keyname Input Output Description weekday Empty List String Returns the current weekday. same Tuple(String | Number, String | Number) Boolean Returns if first date is the same date as the second. before Tuple(String | Number, String | Number) Boolean Returns if first date is before the second date. before_or_same Tuple(String | Number, String | Number) Boolean Returns if first date is before or same as the second date. after Tuple(String | Number, String | Number) Boolean Returns if first date is after the second date. after_or_same Tuple(String | Number, String | Number) Boolean Returns if first date is after or same as the second date. within Tuple(String | Number, Tuple(String | Number, String | Number)) Boolean Returns if given date is within the given dates.","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#plugin-definition","title":"Plugin Definition","text":"

The following plugins can be defined.

Keyname Mandatory Type Description technology false List(String) An optional list of technology rule plugins. Strings are treated as relative imports. Plugins are also loaded from \"./plugins/technology\".","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#technology-plugin","title":"Technology Plugin","text":"

A technology plugin must export the following interface.

export type TechnologyPluginBuilder = {\nbuild(graph: Graph): TechnologyPlugin\n}\n
export type TechnologyPlugin = {\nassign: (node: Node) => {[technology: string]: TechnologyTemplate}[]\nimplement: (name: string, type: NodeType) => NodeTypeMap\n}\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#processing","title":"Processing","text":"

This section is outdated.

We describe on a high-level the steps to derive a variability-resolved service template from a variable service template.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#resolve-variability","title":"Resolve Variability","text":"

To resolve the variability in a variable service template, conduct the following steps:

  1. Ensure that TOSCA definitions version is tosca_variability_1_0.
  2. Retrieve variability inputs assignments.
  3. Check the presence of all elements.
  4. Remove all elements, e.g., node templates or artifacts, which are not present.
  5. Remove all group members which are not present from group template.
  6. Remove all policy targets which are not present from policy template.
  7. Remove all variability groups.
  8. Remove all non-standard elements, e.g., variability definition, variability groups, or conditions at node templates.
  9. Transform all lists introduced in this document, such as property lists, to maps as defined in TOSCA.
  10. Set the TOSCA definitions version to tosca_simple_yaml_1_3.
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#retrieve-variability-inputs-assignments","title":"Retrieve Variability Inputs Assignments","text":"

Variability inputs can be assigned either directly or indirectly using (possibly multiple) variability presets. Therefore, conduct the following steps:

  1. Merge all variability presets following the order in which they have been collected.
  2. Merge directly assigned variability inputs.

Thereby, inputs which are merged at a later step, override existing inputs. Thus, directly assigned variability inputs have the highest priority. For example, given the following variability definition.

variability:\ninputs:\nmode:\ntype: string\nanother_input: type: string\nanother_another_input:\ntype: string\npresets:\ndev:\nname: Development\ndescription: Deploy the application on a private cloud\ninputs:\nmode: dev\nanother_input: dev\nanother_another_input: dev\nprod:\nname: Production\ndescription: Deploy the application on a public cloud\ninputs:\nmode: prod\nanother_input: prod\n

When the presets dev and prod are applied and the variability input mode is directly assigned to override, then the following variability inputs are retrieved.

mode: override\nanother_input: prod\nanother_another_input: dev\n
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#check-element-presence","title":"Check Element Presence","text":"

To check if an element is present, check that all assigned conditions hold:

  1. Collect all conditions which are assigned to the element via conditions.
  2. Collect all conditions which are assigned to variability groups via conditions which the element is member of.
  3. (Optional) Assign default conditions if no conditions have been collected yet.
  4. (Optional) Assign pruning conditions.
  5. Evaluate assigned conditions.

The element is present if all conditions hold.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#conduct-checks","title":"Conduct Checks","text":"

To conduct the consistency and semantic checks, conduct the following steps:

  1. Ensure that each relation source of a present relation is present.
  2. Ensure that each relation target of a present relation is present.
  3. Ensure that every present node has at maximum one present hosting relation.
  4. Ensure that the node of each present artifact is present.
  5. Ensure that present artifacts have unique names within their node.
  6. Ensure that the node of each present property is present.
  7. Ensure that present properties have unique names within their node.
  8. Ensure that the container of each present type is present.
  9. Ensure that each present type container has exactly one present type.
  10. Ensure that every present node has a present hosting relation if the node had at least one conditional relation in the variable
  11. Ensure that every present node has a present incoming relation if the node had at least one incoming relation in the variable service template.
  12. Ensure that every present node has a present deployment artifact if the node had at least one deployment artifact in the variable service template.

Since the derived variability-resolved service template might be further processed, e.g. by topology completion, some or all of these checks might be omitted.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#pruning-elements","title":"Pruning Elements","text":"

To further support modeling, elements can be pruned by additionally evaluating the respective default condition before evaluating assigned conditions. For example, when evaluating if a property of a node template is present, then evaluate first if respective node template is present and then assigned conditions. Such pruning propagates through the whole topology. For example, the properties of a relationship template used in a requirement assignment of a node template which is not present are also not present.

There are element-generic default conditions and type-specific default conditions. Element-generic default conditions are generic default conditions defined per element. However, type-specific default conditions are defined per type, e.g., node type, and, thus, override element-generic default conditions.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#optimization","title":"Optimization","text":"

The variability-resolved service template can be optimized regarding the weight of node templates. The default weight of a node template is 1. Per default, the variability-resolved service template is optimized regarding the minimal weight/ number of node templates. The primary intention is to minimize the deployment complexity, but optimization could be also used, e.g., to minimize overall costs. The weight of a node template can be configured in its definition. Moreover, technology selection can be optimized.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#element-system","title":"Element System","text":"

When introducing conditional elements, we follow typically the approach of using a list whose entries are maps that contain a single element. Thus, elements can just be defined as usual but in a list (instead of a map) and can even share the same names. This has some implication on managing elements which we are discussing in the following.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#element-collections","title":"Element Collections","text":"

As an overview, the following table shows the collections that are used in TOSCA and the ones which are used in Variability4TOSCA.

Element TOSCA Variability4TOSCA Inputs Map Map, List Outputs Map Map, List Nodes Map Map, List Relations List List Properties Map Map, List Policies List List Groups Map Map, List Artifacts Map Map, List","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#element-uniqueness","title":"Element Uniqueness","text":"

As an overview, the following table shows the uniqueness of elements in TOSCA and in Variability4TOSCA in terms of identifiers, such as the key in a map. This is directly related to the used collections.

Element TOSCA Variability4TOSCA Inputs Outputs Nodes Relations Properties Policies Groups Artifacts","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#element-identifier-system","title":"Element Identifier System","text":"

Each element has an identifier that is unique per (variable) service template. This identifier system is required since some conditional elements, such as artifacts, can have non-unique names. The identifier of an element is constructed as follows.

<Element Type>.<Element Name>[@<Element Index>][.<Element Container ID>]\n

Available element types are node, relation, property, group, policy, artifact, input, output, technology, type, and import.

For example, consider the given variable service template.

node_templates:\nmy_node:\ntype: my.node\nproperties:\n- my_property:\nvalue: first\nconditions: <VariabilityCondition>\n- my_property:\nvalue: second\nconditions: <VariabilityCondition>\nartifacts:\n- my_artifact:\nfile: path/to/my_artifact_first\nconditions: <VariabilityCondition>\n- my_artifact:\nfile: path/to/my_artifact_second\nconditions: <VariabilityCondition>\n

Next, the following identifiers, among others, exist.

  • node.my_node for the node template my_node.
  • property.my_property@0.node.my_node for the first property my_property of the node template my_node.
  • artifact.my_artifact@1.node.my_node for the second artifact my_artifact of the node template my_node.
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#element-display-system","title":"Element Display System","text":"

Each element has a display representation that is unique per (variable) service template. This display system is required since some conditional elements, such as artifacts, can have non-unique names. The display representation of an element is constructed as follows.

<Element Type> \"<Element Name>[@<Element Index>]\"[ of <Element Container Display>]\n

Available element types are Node, Relation, Property, Group, Policy, Artifact, Input, Output, Technology, Type, and Import.

For example, consider the given variable service template.

node_templates:\nmy_node:\ntype: my.node\nproperties:\n- my_property:\nvalue: first\nconditions: <VariabilityCondition>\n- my_property:\nvalue: second\nconditions: <VariabilityCondition>\nartifacts:\n- my_artifact:\nfile: path/to/my_artifact_first\nconditions: <VariabilityCondition>\n- my_artifact:\nfile: path/to/my_artifact_second\nconditions: <VariabilityCondition>\n

Next, the following display representations, among others, exist.

  • Node \"my_node\" for the node template my_node.
  • Property \"my_property@0\" of Node \"my_node\" for the first property my_property of the node template my_node.
  • Artifact \"my_artifact@1\" of Node \"my_node\" for the second artifact my_artifact of the node template my_node.
","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#reference-implementation","title":"Reference Implementation","text":"

We provide a reference implementation for this specification as part of OpenTOSCA Vintner. OpenTOSCA Vintner is a TOSCA preprocessing and management layer. The project is open-source, licensed under Apache-2.0, and publicly available at GitHub.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/specification/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/tests/introduction/","title":"Introduction","text":"","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/tests/introduction/#variability4tosca-conformance-test-suite-10-release-candidate","title":"Variability4TOSCA Conformance Test Suite 1.0 Release Candidate","text":"

This document specifies the conformance test suite for the Variability4TOSCA specification which can be used to evaluate Variability4TOSCA implementations. The specification is under active development and is not backwards compatible with any previous versions.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/tests/introduction/#conformance-tests","title":"Conformance Tests","text":"

Each test is described on a separate page. The description includes typically a variable service template, variability inputs, expected errors, expected variability-resolved service template and so on along with an explanation about the expected processing.

ID Test 1 Operator \"count\" 2 Operator \"exponential_regression\" 3 Operator \"variance\" 4 Operator \"logarithmic_regression\" 5 Operator \"max\" 6 Operator \"mean\" 7 Operator \"median\" 8 Operator \"min\" 9 Operator \"polynomial_regression\" 10 Operator \"standard_deviation\" 11 Operator \"sum\" 12 Operator \"variance\" 13 Operator \"add\" 14 Operator \"div\" 15 Operator \"mod\" (Even) 16 Operator \"add\" (Odd) 17 Operator \"mul\" 18 Operator \"sub\" 19 artifacts-artifact-presence-number-absent 20 artifacts-artifact-presence-number-present 21 artifacts-artifact-presence-string-absent 22 artifacts-artifact-presence-string-present 23 artifacts-conditional 24 artifacts-container-presence-absent 25 artifacts-container-presence-present 26 artifacts-default-alternative 27 artifacts-default-alternative-false 28 artifacts-default-condition 29 artifacts-dont-throw-ambiguous-artifact 30 Artifact Pruning 31 artifacts-pruning-managed-manual 32 artifacts-pruning-managed-rules 33 artifacts-pruning-managed-rules-host 34 artifacts-pruning-managed-rules-multiple-different 35 artifacts-pruning-managed-rules-none 36 artifacts-pruning-manged-rules-multiple-same 37 artifacts-required-artifact-constraint-sat 38 artifacts-required-artifact-constraint-sat-pruning 39 artifacts-required-artifact-constraint-unsat 40 artifacts-throw-ambiguous-artifact 41 artifacts-throw-ambiguous-default 42 artifacts-throw-missing-artifact-container 43 artifacts-unique-artifact-constraint-sat-none 44 artifacts-unique-artifact-constraint-sat-one 45 artifacts-unique-artifact-constraint-sat-other 46 artifacts-unique-artifact-constraint-unsat 47 Operator \"and\" Evaluates to \"True\" (Empty) 48 Operator \"and\" Evaluates to \"false\" 49 Operator \"and\" Evaluates to \"false\" (Nested) 50 Operator \"and\" Evaluates to \"true\" 51 Operator \"and\" Evaluates to \"true\" (Nested) 52 Operator \"exo\": all false -> false 53 Operator \"exo\": One ture -> true 54 Operator \"exo\": all true -> false 55 Operator \"implies\": false false -> true 56 Operator \"implies\": false true -> true 57 Operator \"implies\": true false -> false 58 Operator \"implies\": true true -> true 59 Operator \"not\" Evaluates to \"false\" 60 Operator \"not\" Evaluates to \"true\" 61 Operator \"or\" Evaluates to \"False\" (Empty) 62 Operator \"or\" Evaluates to \"False\" 63 Operator \"or\" Evaluates to \"true\" 64 Operator \"or\" Evaluates to \"true\" (All \"true\") 65 circles-alpha 66 circles-bravo 67 circles-charlie 68 circles-delta 69 circles-echo 70 circles-golf 71 circles-hotel 72 circles-india 73 consistency-throw-hosting-relation-missing 74 consistency-throw-hosting-relation-missing-constraint 75 consistency-throw-multiple-hosting-relations 76 consistency-throw-multiple-hosting-relations-constraint 77 consistency-throw-relation-source-missing 78 consistency-throw-relation-target-missing 79 Operator \"equal\" Evaluates to \"false\" 80 Operator \"equal\" Evaluates to \"true\" 81 Operator \"greater_or_equal\" Evaluates to \"true\" (Greater) 82 Operator \"greater_or_equal\" Evaluates to \"true\" (Equal) 83 Operator \"greater_or_equal\" Evaluates to \"false\" (Less) 84 Operator \"greater\" Evaluates to \"false\" (Equal) 85 Operator \"greater\" Evaluates to \"true\" (Greater) 86 Operator \"greater\" Evaluates to \"false\" (Less) 87 Operator \"in_range\" Evaluates to \"false\" 88 Operator \"in_range\" Evaluates to \"true\" 89 Operator \"length\" Evaluates to \"false\" 90 Operator \"length\" Evaluates to \"true\" 91 Operator \"less_or_equal\" Evaluates to \"true\" (Equal) 92 Operator \"less_or_equal\" Evaluates to \"false\" (Greater) 93 Operator \"less_or_equal\" Evaluates to \"true\" (Less) 94 Operator \"less\" Evaluates to \"false\" (Equal) 95 Operator \"less\" Evaluates to \"false\" (Greater) 96 Operator \"less\" Evaluates to \"true\" (Less) 97 Operator \"max_length\" Evaluates to \"true\" (Equal) 98 Operator \"max_length\" Evaluates to \"false\" (Greater) 99 Operator \"max_length\" Evaluates to \"true\" (Less) 100 Operator \"min_length\" Evaluates to \"true\" (Equal) 101 Operator \"min_length\" Evaluates to \"true\" (Greater) 102 Operator \"min_length\" Evaluates to \"false\" (Less) 103 Operator \"valid_values\" Evaluates to \"false\" 104 Operator \"valid_values\" Evaluates to \"true\" 105 date-operators-after-false 106 date-operators-after-or-same-false 107 date-operators-after-or-same-true 108 date-operators-after-true 109 date-operators-before-false 110 date-operators-before-or-same-false 111 date-operators-before-or-same-true 112 date-operators-before-true 113 date-operators-same-false 114 date-operators-same-true 115 date-operators-within-false 116 date-operators-within-true 117 Conditional Group 118 groups-default-condition 119 groups-default-condition-nothing 120 groups-group-presence-absent 121 groups-group-presence-present 122 groups-prune 123 hosting-aware-pruning-constraints-elastic 124 hosting-aware-pruning-constraints-static 125 hosting-aware-pruning-fig-10-broken 126 hosting-aware-pruning-fig-10-fixed 127 hosting-aware-pruning-host-elastic 128 hosting-aware-pruning-host-static 129 hosting-aware-pruning-motivation-elastic 130 hosting-aware-pruning-motivation-static 131 hosting-aware-pruning-provider-elastic 132 hosting-aware-pruning-provider-static 133 hosting-aware-pruning-transitive-ambiguous 134 hosting-aware-pruning-transitive-both 135 hosting-aware-pruning-transitive-preserved 136 hosting-aware-pruning-transitive-unexpected 137 implications-constraints 138 implications-implied-left 139 implications-implied-right 140 implications-implies-left 141 implications-implies-right 142 implications-incoming-left 143 implications-incoming-right 144 implications-motivating-scenario-cloud 145 implications-motivating-scenario-static 146 implications-requires 147 implications-unexpected 148 implications-naive-constraints 149 implications-naive-implied-left 150 implications-naive-implied-right 151 implications-naive-implies-left 152 implications-naive-implies-right 153 implications-naive-incoming-left 154 implications-naive-incoming-right 155 implications-naive-motivating-scenario-cloud 156 implications-naive-motivating-scenario-static 157 implications-naive-naive 158 implications-naive-naive-another 159 implications-naive-naive-another-no-optimization 160 implications-naive-naive-another-not 161 implications-naive-naive-not 162 implications-naive-requires 163 implications-naive-unexpected 164 implied-default-fixed-left 165 implied-default-fixed-right 166 implied-default-manual-left 167 implied-default-manual-right 168 implied-host-broken 169 implied-host-fixed-left 170 implied-host-fixed-right 171 implied-host-manual-left 172 implied-host-manual-right 173 import-conditional 174 import-empty 175 import-get-import-absent 176 import-get-import-present 177 inputs-conditional 178 inputs-conditional-list 179 inputs-default-alternative 180 inputs-input-presence-absent 181 inputs-input-presence-present 182 inputs-pruning-consumed 183 inputs-pruning-consumed-still 184 inputs-pruning-no-consumer 185 inputs-pruning-not-consumed-anymore 186 inputs-pruning-not-consumed-anymore-v3 187 inputs-unique-input-constraint-sat 188 inputs-unique-input-constraint-sat-other 189 inputs-unique-input-constraint-sat-pruning-consumed 190 inputs-unique-input-constraint-sat-pruning-consumed-default 191 inputs-unique-input-constraint-unsat 192 nodes-conditional 193 nodes-conditional-type 194 nodes-conditional-type-default 195 nodes-default-false-false 196 nodes-default-false-true 197 nodes-default-host-absent 198 nodes-default-host-present 199 nodes-default-true-false 200 nodes-default-true-true 201 nodes-host-presence-absent 202 nodes-host-presence-false-false 203 nodes-host-presence-present 204 nodes-host-presence-true-false 205 nodes-host-presence-true-true 206 nodes-host-presence-true-true-constraint 207 nodes-node-presence-absent 208 nodes-node-presence-present 209 nodes-required-incoming-relation-constraint-sat 210 nodes-required-incoming-relation-constraint-unsat 211 nodes-type-specific 212 Benchmark 213 Operator \"concat\" 214 Get Variability Expression 215 Operator \"concat\" 216 other-logic-expression-false 217 other-logic-expression-true 218 other-logic-value-expression 219 other-nothing 220 other-preset 221 other-presets 222 other-throw-CONTAINER 223 other-throw-SELF 224 other-throw-not-unique 225 Operator \"concat\" 226 Get Variability Expression 227 Get Variability Input 228 other-version 229 other-weight 230 outputs-conditional 231 outputs-conditional-list 232 outputs-default 233 outputs-input-presence-absent 234 outputs-input-presence-present 235 outputs-pruning-not-produced-anymore-unfurl-1 236 outputs-pruning-not-produced-anymore-unfurl-2 237 outputs-pruning-not-produced-anymore-xopera 238 outputs-pruning-not-produced-anymore-xopera-v3 239 outputs-pruning-produced-unfurl 240 outputs-pruning-produced-unfurl-attribute 241 outputs-pruning-produced-unfurl-attribute-not 242 outputs-unique-output-constraint-sat 243 outputs-unique-output-constraint-sat-default 244 outputs-unique-output-constraint-sat-other 245 outputs-unique-output-constraint-sat-pruning-not-produced-anymore-xopera 246 outputs-unique-output-constraint-sat-pruning-produced-xopera 247 outputs-unique-output-constraint-unsat 248 persistent-persistent 249 persistent-persistent-false 250 persistent-persistent-throw 251 persistent-persistent-undefined 252 policies-conditional 253 policies-default-condition 254 policies-default-condition-nothing 255 Policy Targets Absent Members 256 Policy Targets Absent Nodes 257 Policy Has No Targets 258 Policy Targets Present Member 259 Policy Targets One Present Node 260 Policy Targets Present Nodes 261 policies-policy-presence-absent 262 policies-policy-presence-present 263 Policy Pruning 264 properties-artifact-container-presence-absent 265 properties-artifact-container-presence-present 266 properties-conditional 267 properties-default-alternative 268 properties-default-alternative-false 269 properties-default-condition 270 properties-expression 271 properties-list 272 properties-list-another 273 properties-map 274 properties-map-another 275 properties-node-container-presence-absent 276 properties-node-container-presence-present 277 properties-node-node-presence-CONTAINER-absent 278 properties-node-node-presence-CONTAINER-present 279 properties-node-property-presence-number-absent 280 properties-node-property-presence-number-present 281 properties-node-property-presence-string-absent 282 properties-node-property-presence-string-present 283 properties-properties 284 properties-relation-container-presence-absent 285 properties-relation-container-presence-present 286 properties-throw-ambiguous-property 287 properties-throw-missing-property-container 288 properties-throw-multiple-default 289 properties-unique-property-constraint-sat 290 properties-unique-property-constraint-unsat 291 pruning-alpha-default 292 pruning-alpha-default-naive 293 pruning-alpha-pruning 294 pruning-artifact-default-alpha 295 pruning-artifact-default-bravo 296 pruning-artifact-default-charlie 297 pruning-artifact-default-delta 298 pruning-artifact-default-naive 299 pruning-bravo-default 300 pruning-bravo-pruning 301 pruning-charlie-default 302 pruning-charlie-pruning 303 pruning-delta-default 304 pruning-delta-pruning 305 pruning-echo-default 306 pruning-echo-pruning 307 pruning-foxtrott-default 308 pruning-foxtrott-pruning 309 pruning-hotel-default 310 pruning-hotel-pruning 311 pruning-incoming-artifact-pruning-alpha 312 pruning-incoming-artifact-pruning-bravo 313 pruning-incoming-artifact-pruning-charlie 314 pruning-incoming-artifact-pruning-delta 315 pruning-incoming-artifact-pruning-echo 316 pruning-incoming-artifact-pruning-foxtrott 317 pruning-incoming-artifact-pruning-golf 318 pruning-incoming-artifact-pruning-hotel 319 pruning-incoming-artifact-pruning-naive-alpha 320 pruning-incoming-artifact-pruning-naive-bravo 321 pruning-india-default 322 pruning-india-pruning 323 pruning-juliett-default 324 pruning-juliett-pruning 325 pruning-kilo-default 326 pruning-kilo-pruning 327 pruning-lima-default 328 pruning-lima-pruning 329 pruning-mike-default 330 pruning-mike-pruning 331 pruning-outgoing-relation-absent 332 pruning-outgoing-relation-present 333 pruning-outgoing-target-absent 334 pruning-outgoing-target-present 335 pruning-outgoingnaive-target-present 336 pruning-pruning 337 pruning-pruning-false-false 338 pruning-pruning-false-true 339 pruning-pruning-true-false 340 pruning-pruning-true-true 341 Relation Pruning 342 relationships-conditional 343 relationships-throw-multiple 344 relationships-throw-undefined 345 relationships-throw-unused 346 relationships-type-specific 347 requirement-assignment-conditional 348 requirement-assignment-default-alternative 349 requirement-assignment-default-alternative-false 350 requirement-assignment-default-condition 351 requirement-assignment-default-condition-throw-source 352 requirement-assignment-default-condition-throw-target 353 requirement-assignment-one-hosting-relation 354 requirement-assignment-relation-presence-index-absent 355 requirement-assignment-relation-presence-name-absent 356 requirement-assignment-source-presence-absent 357 requirement-assignment-source-presence-present 358 requirement-assignment-target-presence-absent 359 requirement-assignment-target-presence-present 360 requirement-assignment-throw-multiple-defaults 361 Scenario \"Alpha\" 362 scenario-worker-agent-false 363 scenario-worker-agent-true 364 scenario-worker-worker-false 365 scenario-worker-worker-true 366 technologies-ambiguous 367 technologies-ambiguous-disabled 368 technologies-conditional 369 technologies-constraint 370 technologies-constraint-disabled 371 technologies-default-multiple 372 technologies-default-true 373 technologies-expected 374 technologies-expected-disabled 375 technologies-lowercase 376 technologies-missing 377 technologies-missing-disabled 378 technologies-optimization 379 technologies-optimization-double 380 technologies-optimization-order 381 technologies-optimization-unsat 382 technologies-optimization-weight 383 technologies-pruning 384 technologies-pruning-disabled 385 technologies-rules 386 technologies-rules-v3 387 technologies-throw-required 388 technologies-unique 389 technologies-unique-disabled 390 variability-inputs-implies 391 variability-inputs-no-constraints","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/tests/introduction/#reference-implementation","title":"Reference Implementation","text":"

We provide a reference implementation for this specification as part of OpenTOSCA Vintner. OpenTOSCA Vintner is a TOSCA preprocessing and management layer. The project is open-source, licensed under Apache-2.0, and publicly available at GitHub.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/tests/introduction/#acknowledgments","title":"Acknowledgments","text":"

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/tests/introduction/#correspondence","title":"Correspondence","text":"

Please address all correspondence concerning this specification to Miles St\u00f6tzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/tests/introduction/#disclaimer-of-warranty","title":"Disclaimer of Warranty","text":"

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

","tags":["Variability4TOSCA","Specification"]},{"location":"variability4tosca/tests/test-analytical-operators-count/","title":"Operator \"count\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-count/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\ncount:\n- 1\n- 2\n- 3\n- 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-count/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-exponential_regression/","title":"Operator \"exponential_regression\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-exponential_regression/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nexponential_regression:\n- - - 0\n- 1\n- - 1\n- 2.72\n- - 2\n- 7.39\n- - 3\n- 20.09\n- 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-exponential_regression/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 54.6\n
"},{"location":"variability4tosca/tests/test-analytical-operators-linear_regression/","title":"Operator \"variance\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-linear_regression/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nlinear_regression:\n- - - 0\n- 0\n- - 1\n- 2\n- - 2\n- 4\n- 100\n
"},{"location":"variability4tosca/tests/test-analytical-operators-linear_regression/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 200\n
"},{"location":"variability4tosca/tests/test-analytical-operators-logarithmic_regression/","title":"Operator \"logarithmic_regression\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-logarithmic_regression/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nlogarithmic_regression:\n- - - 0.01\n- -4.61\n- - 0.5\n- -0.7\n- - 1\n- 0\n- - 2\n- 0.69\n- - 3\n- 1\n- 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-logarithmic_regression/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 1.34\n
"},{"location":"variability4tosca/tests/test-analytical-operators-max/","title":"Operator \"max\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-max/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmax:\n- 1\n- 2\n- 3\n- 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-max/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-mean/","title":"Operator \"mean\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-mean/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmean:\n- 1\n- 2\n- 3\n- 4\n- 10\n
"},{"location":"variability4tosca/tests/test-analytical-operators-mean/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-median/","title":"Operator \"median\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-median/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmedian:\n- 1\n- 2\n- 3\n- 4\n- 10\n
"},{"location":"variability4tosca/tests/test-analytical-operators-median/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 3\n
"},{"location":"variability4tosca/tests/test-analytical-operators-min/","title":"Operator \"min\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-min/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmin:\n- 1\n- 2\n- 3\n- 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-min/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 1\n
"},{"location":"variability4tosca/tests/test-analytical-operators-polynomial_regression/","title":"Operator \"polynomial_regression\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-polynomial_regression/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\npolynomial_regression:\n- - - 0\n- 0\n- - 1\n- 1\n- - 2\n- 4\n- 2\n- 5\n
"},{"location":"variability4tosca/tests/test-analytical-operators-polynomial_regression/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 25\n
"},{"location":"variability4tosca/tests/test-analytical-operators-standard_deviation/","title":"Operator \"standard_deviation\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-standard_deviation/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nstandard_deviation:\n- 1\n- 2\n- 3\n- 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-standard_deviation/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 1.12\n
"},{"location":"variability4tosca/tests/test-analytical-operators-sum/","title":"Operator \"sum\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-sum/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nsum:\n- 1\n- 2\n- 3\n- 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-sum/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 10\n
"},{"location":"variability4tosca/tests/test-analytical-operators-variance/","title":"Operator \"variance\"","text":""},{"location":"variability4tosca/tests/test-analytical-operators-variance/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nvariance:\n- 1\n- 2\n- 3\n- 4\n
"},{"location":"variability4tosca/tests/test-analytical-operators-variance/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 1.25\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-add/","title":"Operator \"add\"","text":""},{"location":"variability4tosca/tests/test-arithmetic-operators-add/#description","title":"Description","text":"

Assigns the value of the expression to the property \"value\" of the node \"container\".

"},{"location":"variability4tosca/tests/test-arithmetic-operators-add/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nadd:\n- 10\n- 1\n- 1\n- 1\n- 1\n- 1\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-add/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 15\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-div/","title":"Operator \"div\"","text":""},{"location":"variability4tosca/tests/test-arithmetic-operators-div/#description","title":"Description","text":"

Assigns the value of the expression to the property \"value\" of the node \"container\".

"},{"location":"variability4tosca/tests/test-arithmetic-operators-div/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\ndiv:\n- 10\n- 1\n- 2\n- 5\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-div/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 1\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-mod-even/","title":"Operator \"mod\" (Even)","text":""},{"location":"variability4tosca/tests/test-arithmetic-operators-mod-even/#description","title":"Description","text":"

Assigns the value of the expression to the property \"value\" of the node \"container\".

"},{"location":"variability4tosca/tests/test-arithmetic-operators-mod-even/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmod:\n- 10\n- 2\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-mod-even/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 0\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-mod-odd/","title":"Operator \"add\" (Odd)","text":""},{"location":"variability4tosca/tests/test-arithmetic-operators-mod-odd/#description","title":"Description","text":"

Assigns the value of the expression to the property \"value\" of the node \"container\".

"},{"location":"variability4tosca/tests/test-arithmetic-operators-mod-odd/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmod:\n- 11\n- 2\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-mod-odd/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 1\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-mul/","title":"Operator \"mul\"","text":""},{"location":"variability4tosca/tests/test-arithmetic-operators-mul/#description","title":"Description","text":"

Assigns the value of the expression to the property \"value\" of the node \"container\".

"},{"location":"variability4tosca/tests/test-arithmetic-operators-mul/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmul:\n- 10\n- 1\n- 3\n- 4\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-mul/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 120\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-sub/","title":"Operator \"sub\"","text":""},{"location":"variability4tosca/tests/test-arithmetic-operators-sub/#description","title":"Description","text":"

Assigns the value of the expression to the property \"value\" of the node \"container\".

"},{"location":"variability4tosca/tests/test-arithmetic-operators-sub/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nsub:\n- 10\n- 1\n- 1\n- 1\n- 1\n- 1\n
"},{"location":"variability4tosca/tests/test-arithmetic-operators-sub/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: 5\n
"},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-number-absent/","title":"artifacts-artifact-presence-number-absent","text":""},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-number-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nartifact_presence:\n- container\n- 0\nartifacts:\nartifact_one:\nconditions: false\nfile: path\n
"},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-number-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-number-present/","title":"artifacts-artifact-presence-number-present","text":""},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-number-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nartifact_presence:\n- container\n- 0\nartifacts:\nartifact_one:\nconditions: true\nfile: path\n
"},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-number-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nartifacts:\nartifact_one:\ntype: tosca.artifacts.File\nfile: path\n
"},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-string-absent/","title":"artifacts-artifact-presence-string-absent","text":""},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-string-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nartifact_presence:\n- container\n- artifact_one\nartifacts:\nartifact_one:\nconditions: false\nfile: path\n
"},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-string-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-string-present/","title":"artifacts-artifact-presence-string-present","text":""},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-string-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nartifact_presence:\n- container\n- artifact_one\nartifacts:\nartifact_one:\nconditions: true\nfile: path\n
"},{"location":"variability4tosca/tests/test-artifacts-artifact-presence-string-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nartifacts:\nartifact_one:\ntype: tosca.artifacts.File\nfile: path\n
"},{"location":"variability4tosca/tests/test-artifacts-conditional/","title":"artifacts-conditional","text":""},{"location":"variability4tosca/tests/test-artifacts-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_artifact_check: false\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one_one:\ntype: artifact_a\nconditions: true\n- artifact_one_one:\ntype: artifact_b\nconditions: false\nnode_two:\ntype: node\nartifacts:\nartifact_two_one:\ntype: artifact\nconditions: true\nnode_three:\ntype: node\nartifacts:\nartifact_three_one:\ntype: artifact\nnode_four:\ntype: node\nartifacts:\nartifact_three_one:\ntype: artifact\nconditions: false\n
"},{"location":"variability4tosca/tests/test-artifacts-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nartifacts:\nartifact_one_one:\ntype: artifact_a\nnode_two:\ntype: node\nartifacts:\nartifact_two_one:\ntype: artifact\nnode_three:\ntype: node\nartifacts:\nartifact_three_one:\ntype: artifact\nnode_four:\ntype: node\n
"},{"location":"variability4tosca/tests/test-artifacts-container-presence-absent/","title":"artifacts-container-presence-absent","text":""},{"location":"variability4tosca/tests/test-artifacts-container-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions: false\nartifacts:\nartifact_one:\nconditions:\ncontainer_presence: SELF\nfile: path\n
"},{"location":"variability4tosca/tests/test-artifacts-container-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-artifacts-container-presence-present/","title":"artifacts-container-presence-present","text":""},{"location":"variability4tosca/tests/test-artifacts-container-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nartifacts:\nartifact_one:\nconditions:\ncontainer_presence: SELF\nfile: path\n
"},{"location":"variability4tosca/tests/test-artifacts-container-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nartifacts:\nartifact_one:\ntype: tosca.artifacts.File\nfile: path\n
"},{"location":"variability4tosca/tests/test-artifacts-default-alternative-false/","title":"artifacts-default-alternative-false","text":""},{"location":"variability4tosca/tests/test-artifacts-default-alternative-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nexpected_artifact_check: false\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one_one:\ntype: artifact_a\ndefault_alternative: false\n- artifact_one_one:\ntype: artifact_b\nconditions: false\nnode_two:\ntype: node\nartifacts:\nartifact_two_one:\ntype: artifact\nconditions: true\nnode_three:\ntype: node\nartifacts:\nartifact_three_one:\ntype: artifact\nnode_four:\ntype: node\nartifacts:\nartifact_three_one:\ntype: artifact\nconditions: false\n
"},{"location":"variability4tosca/tests/test-artifacts-default-alternative-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nnode_two:\ntype: node\nartifacts:\nartifact_two_one:\ntype: artifact\nnode_three:\ntype: node\nartifacts:\nartifact_three_one:\ntype: artifact\nnode_four:\ntype: node\n
"},{"location":"variability4tosca/tests/test-artifacts-default-alternative/","title":"artifacts-default-alternative","text":""},{"location":"variability4tosca/tests/test-artifacts-default-alternative/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nexpected_artifact_check: false\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one_one:\ntype: artifact_a\ndefault_alternative: true\n- artifact_one_one:\ntype: artifact_b\nconditions: false\nnode_two:\ntype: node\nartifacts:\nartifact_two_one:\ntype: artifact\nconditions: true\nnode_three:\ntype: node\nartifacts:\nartifact_three_one:\ntype: artifact\nnode_four:\ntype: node\nartifacts:\nartifact_three_one:\ntype: artifact\nconditions: false\n
"},{"location":"variability4tosca/tests/test-artifacts-default-alternative/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nartifacts:\nartifact_one_one:\ntype: artifact_a\nnode_two:\ntype: node\nartifacts:\nartifact_two_one:\ntype: artifact\nnode_three:\ntype: node\nartifacts:\nartifact_three_one:\ntype: artifact\nnode_four:\ntype: node\n
"},{"location":"variability4tosca/tests/test-artifacts-default-condition/","title":"artifacts-default-condition","text":""},{"location":"variability4tosca/tests/test-artifacts-default-condition/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nartifact_default_condition: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node\nconditions: false\nartifacts:\nartifact_two_one:\ntype: artifact\nnode_two:\ntype: node\n
"},{"location":"variability4tosca/tests/test-artifacts-default-condition/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_two:\ntype: node\n
"},{"location":"variability4tosca/tests/test-artifacts-dont-throw-ambiguous-artifact/","title":"artifacts-dont-throw-ambiguous-artifact","text":""},{"location":"variability4tosca/tests/test-artifacts-dont-throw-ambiguous-artifact/#description","title":"Description","text":"

Artifacts are not ambiguous since unique check is based on name scoped by node.

"},{"location":"variability4tosca/tests/test-artifacts-dont-throw-ambiguous-artifact/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nartifacts:\nartifact_one:\ntype: artifact_a\nnode_two:\ntype: node\nartifacts:\n- artifact_one:\ntype: artifact_a\n
"},{"location":"variability4tosca/tests/test-artifacts-dont-throw-ambiguous-artifact/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nartifacts:\nartifact_one:\ntype: artifact_a\nnode_two:\ntype: node\nartifacts:\nartifact_one:\ntype: artifact_a\n
"},{"location":"variability4tosca/tests/test-artifacts-prune/","title":"Artifact Pruning","text":""},{"location":"variability4tosca/tests/test-artifacts-prune/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nartifact_pruning: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node\nconditions: false\nartifacts:\nartifact_two_one:\ntype: artifact\nconditions: true\nnode_two:\ntype: node\n
"},{"location":"variability4tosca/tests/test-artifacts-prune/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_two:\ntype: node\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-manual/","title":"artifacts-pruning-managed-manual","text":""},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-manual/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\ntopology_template:\nvariability:\ntechnology_rules:\n- component: application\ntechnology: ansible\nartifact: first.artifact.type\nweight: 1\n- component: application\ntechnology: ansible\nartifact: second.artifact.type\nweight: 1\nnode_templates:\napplication:\ntype: application\npersistent: true\ntechnology:\n- ansible:\nartifact: second.artifact.type\nartifacts:\n- first_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\nconditions: false\n- second_artifact_type:\ntype: second.artifact.type\nfile: second_artifact_file\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-manual/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\ntopology_template:\nnode_templates:\napplication:\ntype: application~application#second.artifact.type::ansible\nartifacts:\nsecond_artifact_type:\ntype: second.artifact.type\nfile: second_artifact_file\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-host/","title":"artifacts-pruning-managed-rules-host","text":""},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-host/#description","title":"Description","text":"

Pruning via rules also works if no host is present. In this case, the technology and the artifact form a circle, while the application provides the presence impulse since its persistent.

"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-host/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nhost:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ntopology_template:\nvariability:\ntechnology_rules:\n- component: application\ntechnology: ansible\nartifact: first.artifact.type\nhosting:\n- host\nweight: 1\n- component: application\ntechnology: terraform\nartifact: second.artifact.type\nhosting:\n- host\nweight: 0\nnode_templates:\napplication:\ntype: application\npersistent: true\nartifacts:\n- first_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\n- second_artifact_type:\ntype: second.artifact.type\nfile: second_artifact_file\nrequirements:\n- host: host\nhost:\ntype: host\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-host/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nhost:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ntopology_template:\nnode_templates:\napplication:\ntype: application~application#first.artifact.type::ansible@host\nrequirements:\n- host: host\nartifacts:\nfirst_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\nhost:\ntype: host\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-multiple-different/","title":"artifacts-pruning-managed-rules-multiple-different","text":""},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-multiple-different/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nhost:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ntopology_template:\nvariability:\ntechnology_rules:\n- component: application\ntechnology: ansible\nartifact: first.artifact.type\nhosting:\n- host\nweight: 1\n- component: application\ntechnology: terraform\nartifact: first.artifact.type\nhosting:\n- host\nweight: 0\nnode_templates:\napplication:\ntype: application\npersistent: true\nartifacts:\n- first_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\n- second_artifact_type:\ntype: second.artifact.type\nfile: second_artifact_file\nrequirements:\n- host: host\nhost:\ntype: host\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-multiple-different/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nhost:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ntopology_template:\nnode_templates:\napplication:\ntype: application~application#first.artifact.type::ansible@host\nrequirements:\n- host: host\nartifacts:\nfirst_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\nhost:\ntype: host\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-none/","title":"artifacts-pruning-managed-rules-none","text":""},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-none/#description","title":"Description","text":"

No rule support artifact \"second_artifact_type\". Hence it is removed since empty \"or\" is assigned which evaluates to false

"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-none/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\ntopology_template:\nvariability:\ntechnology_rules:\n- component: application\ntechnology: ansible\nartifact: first.artifact.type\nnode_templates:\napplication:\ntype: application\npersistent: true\nartifacts:\n- first_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\n- second_artifact_type:\ntype: second.artifact.type\nfile: second_artifact_file\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules-none/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\ntopology_template:\nnode_templates:\napplication:\ntype: application~application#first.artifact.type::ansible\nartifacts:\nfirst_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules/","title":"artifacts-pruning-managed-rules","text":""},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\ntopology_template:\nvariability:\ntechnology_rules:\n- component: application\ntechnology: ansible\nartifact: first.artifact.type\nweight: 1\n- component: application\ntechnology: terraform\nartifact: second.artifact.type\nweight: 0\nnode_templates:\napplication:\ntype: application\npersistent: true\nartifacts:\n- first_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\n- second_artifact_type:\ntype: second.artifact.type\nfile: second_artifact_file\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-managed-rules/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\ntopology_template:\nnode_templates:\napplication:\ntype: application~application#first.artifact.type::ansible\nartifacts:\nfirst_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-manged-rules-multiple-same/","title":"artifacts-pruning-manged-rules-multiple-same","text":""},{"location":"variability4tosca/tests/test-artifacts-pruning-manged-rules-multiple-same/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nhost:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ntopology_template:\nvariability:\ntechnology_rules:\n- component: application\ntechnology: ansible\nartifact: first.artifact.type\nhosting:\n- host\nweight: 1\n- component: application\ntechnology: ansible\nartifact: first.artifact.type\nhosting:\n- host\nweight: 0\nnode_templates:\napplication:\ntype: application\npersistent: true\nartifacts:\n- first_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\n- second_artifact_type:\ntype: second.artifact.type\nfile: second_artifact_file\nrequirements:\n- host: host\nhost:\ntype: host\n
"},{"location":"variability4tosca/tests/test-artifacts-pruning-manged-rules-multiple-same/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nartifact_types:\nfirst.artifact.type:\nderived_from: tosca.artifacts.Root\nsecond.artifact.type:\nderived_from: tosca.artifacts.Root\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nhost:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ntopology_template:\nnode_templates:\napplication:\ntype: application~application#first.artifact.type::ansible@host\nrequirements:\n- host: host\nartifacts:\nfirst_artifact_type:\ntype: first.artifact.type\nfile: first_artifact_file\nhost:\ntype: host\n
"},{"location":"variability4tosca/tests/test-artifacts-required-artifact-constraint-sat-pruning/","title":"artifacts-required-artifact-constraint-sat-pruning","text":""},{"location":"variability4tosca/tests/test-artifacts-required-artifact-constraint-sat-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nartifact_pruning: true\ntype_default_condition: true\nrequired_artifact_constraint: true\nnode_templates:\nnode_one:\ntype: node\nconditions: false\nartifacts:\n- artifact_one:\ntype: artifact_a\n- artifact_one:\ntype: artifact_b\nconditions: true\n
"},{"location":"variability4tosca/tests/test-artifacts-required-artifact-constraint-sat-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-artifacts-required-artifact-constraint-sat/","title":"artifacts-required-artifact-constraint-sat","text":""},{"location":"variability4tosca/tests/test-artifacts-required-artifact-constraint-sat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nrequired_artifact_constraint: true\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one:\ntype: artifact_a\n- artifact_one:\ntype: artifact_b\nconditions: false\n
"},{"location":"variability4tosca/tests/test-artifacts-required-artifact-constraint-sat/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nartifacts:\nartifact_one:\ntype: artifact_a\n
"},{"location":"variability4tosca/tests/test-artifacts-required-artifact-constraint-unsat/","title":"artifacts-required-artifact-constraint-unsat","text":""},{"location":"variability4tosca/tests/test-artifacts-required-artifact-constraint-unsat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nrequired_artifact_constraint: true\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one:\ntype: artifact_a\nconditions: false\n- artifact_one:\ntype: artifact_b\nconditions: false\n
"},{"location":"variability4tosca/tests/test-artifacts-required-artifact-constraint-unsat/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-artifacts-throw-ambiguous-artifact/","title":"artifacts-throw-ambiguous-artifact","text":""},{"location":"variability4tosca/tests/test-artifacts-throw-ambiguous-artifact/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one:\ntype: artifact_a\n- artifact_one:\ntype: artifact_b\n
"},{"location":"variability4tosca/tests/test-artifacts-throw-ambiguous-artifact/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Artifact \"artifact_one@1\" of node \"node_one\" is ambiguous\n
"},{"location":"variability4tosca/tests/test-artifacts-throw-ambiguous-default/","title":"artifacts-throw-ambiguous-default","text":""},{"location":"variability4tosca/tests/test-artifacts-throw-ambiguous-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one_one:\ntype: artifact_a\ndefault_alternative: true\n- artifact_one_one:\ntype: artifact_b\ndefault_alternative: true\n
"},{"location":"variability4tosca/tests/test-artifacts-throw-ambiguous-default/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Artifact \"artifact_one_one@0\" of node \"node_one\" has multiple defaults\n
"},{"location":"variability4tosca/tests/test-artifacts-throw-missing-artifact-container/","title":"artifacts-throw-missing-artifact-container","text":""},{"location":"variability4tosca/tests/test-artifacts-throw-missing-artifact-container/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nconditions: false\nartifacts:\nartifact_one:\ntype: artifact_a\n
"},{"location":"variability4tosca/tests/test-artifacts-throw-missing-artifact-container/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Container of artifact \"artifact_one@0\" of node \"node_one\" does not exist\n
"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-none/","title":"artifacts-unique-artifact-constraint-sat-none","text":""},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-none/#description","title":"Description","text":"

Unique artifact constraints is SAT since no artifact is present.

"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-none/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nunique_artifact_constraint: true\nchecks: false\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one:\ntype: artifact_a\nconditions: false\n- artifact_one:\ntype: artifact_b\nconditions: false\n
"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-none/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\n
"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-one/","title":"artifacts-unique-artifact-constraint-sat-one","text":""},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-one/#description","title":"Description","text":"

Unique artifact constraints is SAT since one artifact is present.

"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-one/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nunique_artifact_constraint: true\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one:\ntype: artifact_a\n- artifact_one:\ntype: artifact_b\nconditions: false\n
"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-one/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nartifacts:\nartifact_one:\ntype: artifact_a\n
"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-other/","title":"artifacts-unique-artifact-constraint-sat-other","text":""},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-other/#description","title":"Description","text":"

Unique artifact constraints is SAT since the other one artifact is present.

"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-other/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nunique_artifact_constraint: true\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one:\ntype: artifact_a\nconditions: false\n- artifact_one:\ntype: artifact_b\n
"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-other/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node\nartifacts:\nartifact_one:\ntype: artifact_b\n
"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-unsat/","title":"artifacts-unique-artifact-constraint-unsat","text":""},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-unsat/#description","title":"Description","text":"

Unique artifact constraints is UNSAT since two artifacts with same name of same container are present.

"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-unsat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nunique_artifact_constraint: true\nnode_templates:\nnode_one:\ntype: node\nartifacts:\n- artifact_one:\ntype: artifact_a\n- artifact_one:\ntype: artifact_b\n
"},{"location":"variability4tosca/tests/test-artifacts-unique-artifact-constraint-unsat/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-empty/","title":"Operator \"and\" Evaluates to \"True\" (Empty)","text":""},{"location":"variability4tosca/tests/test-boolean-operators-and-empty/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-and-empty/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nand: []\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-empty/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-false/","title":"Operator \"and\" Evaluates to \"false\"","text":""},{"location":"variability4tosca/tests/test-boolean-operators-and-false/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the expression evaluates to \"false\".

"},{"location":"variability4tosca/tests/test-boolean-operators-and-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nand:\n- true\n- false\n- true\n- true\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-nested-false/","title":"Operator \"and\" Evaluates to \"false\" (Nested)","text":""},{"location":"variability4tosca/tests/test-boolean-operators-and-nested-false/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the expression evaluates to \"false\".

"},{"location":"variability4tosca/tests/test-boolean-operators-and-nested-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nand:\n- and:\n- true\n- false\n- true\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-nested-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-nested-true/","title":"Operator \"and\" Evaluates to \"true\"","text":""},{"location":"variability4tosca/tests/test-boolean-operators-and-nested-true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-and-nested-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nand:\n- true\n- true\n- true\n- true\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-nested-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-true/","title":"Operator \"and\" Evaluates to \"true\" (Nested)","text":""},{"location":"variability4tosca/tests/test-boolean-operators-and-true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-and-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nand:\n- and:\n- true\n- true\n- true\n
"},{"location":"variability4tosca/tests/test-boolean-operators-and-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-boolean-operators-exo-false-all/","title":"Operator \"exo\": all false -> false","text":""},{"location":"variability4tosca/tests/test-boolean-operators-exo-false-all/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the expression evaluates to \"false\".

"},{"location":"variability4tosca/tests/test-boolean-operators-exo-false-all/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nexo:\n- false\n- false\n- false\n- false\n
"},{"location":"variability4tosca/tests/test-boolean-operators-exo-false-all/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-boolean-operators-exo-true-all/","title":"Operator \"exo\": all true -> false","text":""},{"location":"variability4tosca/tests/test-boolean-operators-exo-true-all/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the expression evaluates to \"false\".

"},{"location":"variability4tosca/tests/test-boolean-operators-exo-true-all/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nexo:\n- true\n- true\n- true\n- true\n
"},{"location":"variability4tosca/tests/test-boolean-operators-exo-true-all/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-boolean-operators-exo-true/","title":"Operator \"exo\": One ture -> true","text":""},{"location":"variability4tosca/tests/test-boolean-operators-exo-true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-exo-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nexo:\n- true\n- false\n- false\n- false\n
"},{"location":"variability4tosca/tests/test-boolean-operators-exo-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-boolean-operators-implies-false-false-true/","title":"Operator \"implies\": false false -> true","text":""},{"location":"variability4tosca/tests/test-boolean-operators-implies-false-false-true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-implies-false-false-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nimplies:\n- false\n- false\n
"},{"location":"variability4tosca/tests/test-boolean-operators-implies-false-false-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-boolean-operators-implies-false-true-true/","title":"Operator \"implies\": false true -> true","text":""},{"location":"variability4tosca/tests/test-boolean-operators-implies-false-true-true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-implies-false-true-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nimplies:\n- false\n- true\n
"},{"location":"variability4tosca/tests/test-boolean-operators-implies-false-true-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-boolean-operators-implies-true-false-false/","title":"Operator \"implies\": true false -> false","text":""},{"location":"variability4tosca/tests/test-boolean-operators-implies-true-false-false/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the expression evaluates to \"false\".

"},{"location":"variability4tosca/tests/test-boolean-operators-implies-true-false-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nimplies:\n- true\n- false\n
"},{"location":"variability4tosca/tests/test-boolean-operators-implies-true-false-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-boolean-operators-implies-true-true-true/","title":"Operator \"implies\": true true -> true","text":""},{"location":"variability4tosca/tests/test-boolean-operators-implies-true-true-true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-implies-true-true-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nimplies:\n- true\n- true\n
"},{"location":"variability4tosca/tests/test-boolean-operators-implies-true-true-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-boolean-operators-not-false/","title":"Operator \"not\" Evaluates to \"false\"","text":""},{"location":"variability4tosca/tests/test-boolean-operators-not-false/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the expression evaluates to \"false\".

"},{"location":"variability4tosca/tests/test-boolean-operators-not-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nnot: true\n
"},{"location":"variability4tosca/tests/test-boolean-operators-not-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-boolean-operators-not-true/","title":"Operator \"not\" Evaluates to \"true\"","text":""},{"location":"variability4tosca/tests/test-boolean-operators-not-true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-not-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nnot: false\n
"},{"location":"variability4tosca/tests/test-boolean-operators-not-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-boolean-operators-or-empty/","title":"Operator \"or\" Evaluates to \"False\" (Empty)","text":""},{"location":"variability4tosca/tests/test-boolean-operators-or-empty/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the expression evaluates to \"false\".

"},{"location":"variability4tosca/tests/test-boolean-operators-or-empty/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nor: []\n
"},{"location":"variability4tosca/tests/test-boolean-operators-or-empty/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-boolean-operators-or-false/","title":"Operator \"or\" Evaluates to \"False\"","text":""},{"location":"variability4tosca/tests/test-boolean-operators-or-false/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the expression evaluates to \"false\".

"},{"location":"variability4tosca/tests/test-boolean-operators-or-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nor:\n- false\n- false\n- false\n- false\n
"},{"location":"variability4tosca/tests/test-boolean-operators-or-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-boolean-operators-or-true-all/","title":"Operator \"or\" Evaluates to \"true\" (All \"true\")","text":""},{"location":"variability4tosca/tests/test-boolean-operators-or-true-all/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-or-true-all/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nor:\n- true\n- true\n- true\n- true\n
"},{"location":"variability4tosca/tests/test-boolean-operators-or-true-all/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-boolean-operators-or-true/","title":"Operator \"or\" Evaluates to \"true\"","text":""},{"location":"variability4tosca/tests/test-boolean-operators-or-true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the expression evaluates to \"true\".

"},{"location":"variability4tosca/tests/test-boolean-operators-or-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nor:\n- false\n- true\n- false\n- false\n
"},{"location":"variability4tosca/tests/test-boolean-operators-or-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-circles-alpha/","title":"circles-alpha","text":""},{"location":"variability4tosca/tests/test-circles-alpha/#description","title":"Description","text":"
  • node and relation defaults are enabled

  • node_one checks if relation_one is present

  • relation_one checks if node_one and node_two are present (first circle)
  • node_two checks if node_one is present (second circle)

  • if node_one is absent, then also node_two and relation_one are absent

  • since the solution is optimized towards minimal numbers of nodes, the expected template is empty
"},{"location":"variability4tosca/tests/test-circles-alpha/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nrelation_default_condition: true\ntype_default_condition: true\noptimization_topology: true\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nconditions:\nnode_presence: node_one\nrequirements:\n- relation_one: node_one\n
"},{"location":"variability4tosca/tests/test-circles-alpha/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-circles-bravo/","title":"circles-bravo","text":""},{"location":"variability4tosca/tests/test-circles-bravo/#description","title":"Description","text":"
  • node and relation defaults are enabled

  • node_one checks if relation_one is present

  • relation_one checks if node_one and node_two are present (first circle)
  • node_two checks if node_one is present (second circle)

  • node_one is present since true is assigned as condition

  • thus, node_two is present
  • thus, relation_one is present
"},{"location":"variability4tosca/tests/test-circles-bravo/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nrelation_default_condition: true\ntype_default_condition: true\noptimization_topology: true\nnode_templates:\nnode_one:\ntype: node_one\nconditions: true\nnode_two:\ntype: node_two\nconditions:\nnode_presence: node_one\nrequirements:\n- relation_one: node_one\n
"},{"location":"variability4tosca/tests/test-circles-bravo/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nrequirements:\n- relation_one: node_one\n
"},{"location":"variability4tosca/tests/test-circles-charlie/","title":"circles-charlie","text":""},{"location":"variability4tosca/tests/test-circles-charlie/#description","title":"Description","text":"

(node_one <=> node_two && node_two <=> !node_one) is contradiction

"},{"location":"variability4tosca/tests/test-circles-charlie/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nrelation_default_condition: true\ntype_default_condition: true\noptimization_topology: true\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nconditions:\nnot:\nnode_presence: node_one\nrequirements:\n- relation_one: node_one\n
"},{"location":"variability4tosca/tests/test-circles-charlie/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-circles-delta/","title":"circles-delta","text":""},{"location":"variability4tosca/tests/test-circles-delta/#description","title":"Description","text":"
  • node and relation defaults are enabled

  • node_one is present

  • relation_one checks if node_one and node_two are present (first circle)
  • node_two checks if node_one is NOT present (second circle)

  • since node_one is present, node_two is absent

  • thus, also relation_one is absent
"},{"location":"variability4tosca/tests/test-circles-delta/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nrelation_default_condition: true\ntype_default_condition: true\nexpected_incoming_relation_check: false\noptimization_topology: true\nnode_templates:\nnode_one:\ntype: node_one\nconditions: true\nnode_two:\ntype: node_two\nconditions:\nnot:\nnode_presence: node_one\nrequirements:\n- relation_one: node_one\n
"},{"location":"variability4tosca/tests/test-circles-delta/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\n
"},{"location":"variability4tosca/tests/test-circles-echo/","title":"circles-echo","text":""},{"location":"variability4tosca/tests/test-circles-echo/#description","title":"Description","text":"
  • node and relation pruning is enabled

  • node_one checks if relation_one is present

  • relation_one checks if node_one and node_two are present (first circle)
  • node_two checks if node_one is present (second circle)

  • if node_one is absent, then also node_two and relation_one are absent

  • since the solution is optimized towards minimal numbers of nodes, the expected template is empty

  • note, this is the same behaviour as if only node and relation defaults would have been enabled

"},{"location":"variability4tosca/tests/test-circles-echo/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_pruning: true\nrelation_pruning: true\ntype_default_condition: true\noptimization_topology: true\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nconditions:\nnode_presence: node_one\nrequirements:\n- relation_one: node_one\n
"},{"location":"variability4tosca/tests/test-circles-echo/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-circles-golf/","title":"circles-golf","text":""},{"location":"variability4tosca/tests/test-circles-golf/#description","title":"Description","text":"
  • node and relation pruning is enabled

  • node_one checks if relation_two_one or relation_three_one is present

  • relation_two_one checks if node_one and node_two are present (first circle)
  • node_two checks if node_one is present (second circle)
  • relation_three_one checks if node_one and node_three is present (third circle)
  • node_three is absent

  • expected template is empty wrt optimization

"},{"location":"variability4tosca/tests/test-circles-golf/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_pruning: true\nrelation_pruning: true\ntype_default_condition: true\noptimization_topology: true\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nconditions:\nnode_presence: node_one\nrequirements:\n- relation_two_one: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three_one: node_one\n
"},{"location":"variability4tosca/tests/test-circles-golf/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-circles-hotel/","title":"circles-hotel","text":""},{"location":"variability4tosca/tests/test-circles-hotel/#description","title":"Description","text":"
  • node and relation pruning is enabled

  • only node_three is present since pruning does not hold since node_three has no incoming relation in the first place

"},{"location":"variability4tosca/tests/test-circles-hotel/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_pruning: true\nrelation_pruning: true\ntype_default_condition: true\noptimization_topology: true\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nconditions:\nnode_presence: node_one\nrequirements:\n- relation_two_one: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three_one: node_one\n
"},{"location":"variability4tosca/tests/test-circles-hotel/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-circles-india/","title":"circles-india","text":""},{"location":"variability4tosca/tests/test-circles-india/#description","title":"Description","text":"
  • node pruning is enabled
  • relation defaults (NOT pruning) is enabled

  • since node_three is present, relation_three_one is present (condition is not overridden by pruning since relation pruning is not enabled)

  • since relation_three_one is present, node_one is present
  • since node_one is present, node_two is present, thus, relation_two_one is present
"},{"location":"variability4tosca/tests/test-circles-india/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_pruning: true\nrelation_default_condition: true\ntype_default_condition: true\noptimization_topology: true\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nconditions:\nnode_presence: node_one\nrequirements:\n- relation_two_one: node_one\nnode_three:\ntype: node_three\nrequirements:\n- relation_three_one:\nnode: node_one\nconditions:\nsource_presence: SELF\n
"},{"location":"variability4tosca/tests/test-circles-india/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nrequirements:\n- relation_two_one: node_one\nnode_three:\ntype: node_three\nrequirements:\n- relation_three_one: node_one\n
"},{"location":"variability4tosca/tests/test-consistency-throw-hosting-relation-missing-constraint/","title":"consistency-throw-hosting-relation-missing-constraint","text":""},{"location":"variability4tosca/tests/test-consistency-throw-hosting-relation-missing-constraint/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nhosting_stack_constraint: true\nnode_templates:\none:\ntype: one\nrequirements:\n- host:\nnode: two\nconditions: false\ntwo:\ntype: two\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-consistency-throw-hosting-relation-missing-constraint/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-consistency-throw-hosting-relation-missing/","title":"consistency-throw-hosting-relation-missing","text":""},{"location":"variability4tosca/tests/test-consistency-throw-hosting-relation-missing/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nconstraints: false\nnode_templates:\none:\ntype: one\nrequirements:\n- host:\nnode: two\nconditions: false\ntwo:\ntype: two\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-consistency-throw-hosting-relation-missing/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"one\" expected to have a hosting relation\n
"},{"location":"variability4tosca/tests/test-consistency-throw-multiple-hosting-relations-constraint/","title":"consistency-throw-multiple-hosting-relations-constraint","text":""},{"location":"variability4tosca/tests/test-consistency-throw-multiple-hosting-relations-constraint/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nconstraints: false\noptimization_topology: false\nhosting_stack_constraint: true\nnode_templates:\none:\ntype: one\nrequirements:\n- host:\nnode: two\n- host:\nnode: three\ntwo:\ntype: two\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-consistency-throw-multiple-hosting-relations-constraint/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-consistency-throw-multiple-hosting-relations/","title":"consistency-throw-multiple-hosting-relations","text":""},{"location":"variability4tosca/tests/test-consistency-throw-multiple-hosting-relations/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nconstraints: false\noptimization_topology: false\nnode_templates:\none:\ntype: one\nrequirements:\n- host:\nnode: two\n- host:\nnode: three\ntwo:\ntype: two\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-consistency-throw-multiple-hosting-relations/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"one\" has more than one hosting relations\n
"},{"location":"variability4tosca/tests/test-consistency-throw-relation-source-missing/","title":"consistency-throw-relation-source-missing","text":""},{"location":"variability4tosca/tests/test-consistency-throw-relation-source-missing/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\none:\ntype: one\nrequirements:\n- two: two\ntwo:\ntype: two\nconditions: false\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-consistency-throw-relation-source-missing/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Relation target \"two\" of relation \"two@0\" of node \"one\" does not exist\n
"},{"location":"variability4tosca/tests/test-consistency-throw-relation-target-missing/","title":"consistency-throw-relation-target-missing","text":""},{"location":"variability4tosca/tests/test-consistency-throw-relation-target-missing/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\none:\ntype: one\nconditions: false\nrequirements:\n- two:\nnode: two\ntwo:\ntype: two\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-consistency-throw-relation-target-missing/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Relation source \"one\" of relation \"two@0\" of node \"one\" does not exist\n
"},{"location":"variability4tosca/tests/test-constraint-operators-equal-false/","title":"Operator \"equal\" Evaluates to \"false\"","text":""},{"location":"variability4tosca/tests/test-constraint-operators-equal-false/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since not all parameters are equal.

"},{"location":"variability4tosca/tests/test-constraint-operators-equal-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nequal:\n- 1\n- 1\n- 2\n
"},{"location":"variability4tosca/tests/test-constraint-operators-equal-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-equal-true/","title":"Operator \"equal\" Evaluates to \"true\"","text":""},{"location":"variability4tosca/tests/test-constraint-operators-equal-true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since all parameters are equal.

"},{"location":"variability4tosca/tests/test-constraint-operators-equal-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nequal:\n- 1\n- 1\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-equal-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-equal/","title":"Operator \"greater_or_equal\" Evaluates to \"true\" (Greater)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-equal/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the first parameter is greater than the second parameter.

"},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-equal/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\ngreater_or_equal:\n- 2\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-equal/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-greater/","title":"Operator \"greater_or_equal\" Evaluates to \"true\" (Equal)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-greater/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the both parameters are equal.

"},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-greater/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\ngreater_or_equal:\n- 1\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-greater/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-less/","title":"Operator \"greater_or_equal\" Evaluates to \"false\" (Less)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-less/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the first parameter is less than the second parameter.

"},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-less/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\ngreater_or_equal:\n- 0\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-or-equal-less/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-equal/","title":"Operator \"greater\" Evaluates to \"false\" (Equal)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-equal/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the parameter are equal.

"},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-equal/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\ngreater:\n- 1\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-equal/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-greater/","title":"Operator \"greater\" Evaluates to \"true\" (Greater)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-greater/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the second parameter is greater than the first parameter.

"},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-greater/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\ngreater:\n- 2\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-greater/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-less/","title":"Operator \"greater\" Evaluates to \"false\" (Less)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-less/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the first parameter is less than the second parameter.

"},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-less/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\ngreater:\n- 0\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-greater-than-less/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-in_range_false/","title":"Operator \"in_range\" Evaluates to \"false\"","text":""},{"location":"variability4tosca/tests/test-constraint-operators-in_range_false/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the parameter is not in range.

"},{"location":"variability4tosca/tests/test-constraint-operators-in_range_false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nin_range:\n- 2\n- - 0\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-in_range_false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-in_range_true/","title":"Operator \"in_range\" Evaluates to \"true\"","text":""},{"location":"variability4tosca/tests/test-constraint-operators-in_range_true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the parameter is in range.

"},{"location":"variability4tosca/tests/test-constraint-operators-in_range_true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nin_range:\n- 1\n- - 0\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-in_range_true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-length_false/","title":"Operator \"length\" Evaluates to \"false\"","text":""},{"location":"variability4tosca/tests/test-constraint-operators-length_false/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the parameter has not expected length.

"},{"location":"variability4tosca/tests/test-constraint-operators-length_false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nlength:\n- hallo\n- 4\n
"},{"location":"variability4tosca/tests/test-constraint-operators-length_false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-length_true/","title":"Operator \"length\" Evaluates to \"true\"","text":""},{"location":"variability4tosca/tests/test-constraint-operators-length_true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the parameter has expected length.

"},{"location":"variability4tosca/tests/test-constraint-operators-length_true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nlength:\n- hallo\n- 5\n
"},{"location":"variability4tosca/tests/test-constraint-operators-length_true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_equal/","title":"Operator \"less_or_equal\" Evaluates to \"true\" (Equal)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_equal/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since both parameters are equal.

"},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_equal/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nless_or_equal:\n- 1\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_equal/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_greater/","title":"Operator \"less_or_equal\" Evaluates to \"false\" (Greater)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_greater/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the first parameter is greater than the second.

"},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_greater/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nless_or_equal:\n- 2\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_greater/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_less/","title":"Operator \"less_or_equal\" Evaluates to \"true\" (Less)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_less/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the first parameter is less than the second.

"},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_less/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nless_or_equal:\n- 0\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_or_equal_less/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_than_equal/","title":"Operator \"less\" Evaluates to \"false\" (Equal)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-less_than_equal/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since both parameters are equal.

"},{"location":"variability4tosca/tests/test-constraint-operators-less_than_equal/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nless:\n- 1\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_than_equal/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_than_greater/","title":"Operator \"less\" Evaluates to \"false\" (Greater)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-less_than_greater/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the first parameter is greater than the second parameter.

"},{"location":"variability4tosca/tests/test-constraint-operators-less_than_greater/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nless:\n- 2\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_than_greater/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_than_less/","title":"Operator \"less\" Evaluates to \"true\" (Less)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-less_than_less/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the first parameter is less than the second.

"},{"location":"variability4tosca/tests/test-constraint-operators-less_than_less/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nless:\n- 0\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-less_than_less/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-max_length_equal/","title":"Operator \"max_length\" Evaluates to \"true\" (Equal)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-max_length_equal/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the parameter \"hallo\" has exactly 5 characters.

"},{"location":"variability4tosca/tests/test-constraint-operators-max_length_equal/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmax_length:\n- hallo\n- 5\n
"},{"location":"variability4tosca/tests/test-constraint-operators-max_length_equal/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-max_length_greater/","title":"Operator \"max_length\" Evaluates to \"false\" (Greater)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-max_length_greater/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the parameter \"hallo\" has more than 4 characters.

"},{"location":"variability4tosca/tests/test-constraint-operators-max_length_greater/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmax_length:\n- hallo\n- 4\n
"},{"location":"variability4tosca/tests/test-constraint-operators-max_length_greater/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-max_length_less/","title":"Operator \"max_length\" Evaluates to \"true\" (Less)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-max_length_less/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the parameter \"hallo\" has less than 6 characters.

"},{"location":"variability4tosca/tests/test-constraint-operators-max_length_less/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmax_length:\n- hallo\n- 6\n
"},{"location":"variability4tosca/tests/test-constraint-operators-max_length_less/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-min_length_equal/","title":"Operator \"min_length\" Evaluates to \"true\" (Equal)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-min_length_equal/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the parameter \"hallo\" has exactly 5 characters.

"},{"location":"variability4tosca/tests/test-constraint-operators-min_length_equal/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmin_length:\n- hallo\n- 5\n
"},{"location":"variability4tosca/tests/test-constraint-operators-min_length_equal/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-min_length_greater/","title":"Operator \"min_length\" Evaluates to \"true\" (Greater)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-min_length_greater/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the parameter \"hallo\" has more than 4 characters.

"},{"location":"variability4tosca/tests/test-constraint-operators-min_length_greater/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmin_length:\n- hallo\n- 4\n
"},{"location":"variability4tosca/tests/test-constraint-operators-min_length_greater/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-constraint-operators-min_length_less/","title":"Operator \"min_length\" Evaluates to \"false\" (Less)","text":""},{"location":"variability4tosca/tests/test-constraint-operators-min_length_less/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the parameter \"hallo\" has less than 4 characters.

"},{"location":"variability4tosca/tests/test-constraint-operators-min_length_less/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nmin_length:\n- hallo\n- 6\n
"},{"location":"variability4tosca/tests/test-constraint-operators-min_length_less/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-valid_values_false/","title":"Operator \"valid_values\" Evaluates to \"false\"","text":""},{"location":"variability4tosca/tests/test-constraint-operators-valid_values_false/#description","title":"Description","text":"

Assigns \"false\" to the property \"value\" of the node \"container\" since the parameter is not a valid value.

"},{"location":"variability4tosca/tests/test-constraint-operators-valid_values_false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nvalid_values:\n- 2\n- - 0\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-valid_values_false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-constraint-operators-valid_values_true/","title":"Operator \"valid_values\" Evaluates to \"true\"","text":""},{"location":"variability4tosca/tests/test-constraint-operators-valid_values_true/#description","title":"Description","text":"

Assigns \"true\" to the property \"value\" of the node \"container\" since the parameter is a valid value.

"},{"location":"variability4tosca/tests/test-constraint-operators-valid_values_true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nvalid_values:\n- 1\n- - 0\n- 1\n
"},{"location":"variability4tosca/tests/test-constraint-operators-valid_values_true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-date-operators-after-false/","title":"date-operators-after-false","text":""},{"location":"variability4tosca/tests/test-date-operators-after-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nafter:\n- 2023-01-01T00:00:00.000Z\n- 2023-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-after-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-date-operators-after-or-same-false/","title":"date-operators-after-or-same-false","text":""},{"location":"variability4tosca/tests/test-date-operators-after-or-same-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nafter_or_same:\n- 2023-01-01T00:00:00.000Z\n- 2023-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-after-or-same-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-date-operators-after-or-same-true/","title":"date-operators-after-or-same-true","text":""},{"location":"variability4tosca/tests/test-date-operators-after-or-same-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nafter_or_same:\n- 2023-01-01T00:00:00.000Z\n- 2022-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-after-or-same-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-date-operators-after-true/","title":"date-operators-after-true","text":""},{"location":"variability4tosca/tests/test-date-operators-after-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nafter:\n- 2023-01-01T00:00:00.000Z\n- 2022-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-after-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-date-operators-before-false/","title":"date-operators-before-false","text":""},{"location":"variability4tosca/tests/test-date-operators-before-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nbefore:\n- 2023-01-01T00:00:00.000Z\n- 2022-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-before-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-date-operators-before-or-same-false/","title":"date-operators-before-or-same-false","text":""},{"location":"variability4tosca/tests/test-date-operators-before-or-same-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nbefore_or_same:\n- 2023-01-01T00:00:00.000Z\n- 2022-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-before-or-same-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-date-operators-before-or-same-true/","title":"date-operators-before-or-same-true","text":""},{"location":"variability4tosca/tests/test-date-operators-before-or-same-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nbefore_or_same:\n- 2023-01-01T00:00:00.000Z\n- 2023-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-before-or-same-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-date-operators-before-true/","title":"date-operators-before-true","text":""},{"location":"variability4tosca/tests/test-date-operators-before-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nbefore:\n- 2023-01-01T00:00:00.000Z\n- 2023-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-before-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-date-operators-same-false/","title":"date-operators-same-false","text":""},{"location":"variability4tosca/tests/test-date-operators-same-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nsame:\n- 2023-01-01T00:00:00.000Z\n- 2023-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-same-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-date-operators-same-true/","title":"date-operators-same-true","text":""},{"location":"variability4tosca/tests/test-date-operators-same-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nsame:\n- 2023-01-01T00:00:00.000Z\n- 2023-01-01T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-same-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-date-operators-within-false/","title":"date-operators-within-false","text":""},{"location":"variability4tosca/tests/test-date-operators-within-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nwithin:\n- 2023-01-04T00:00:00.000Z\n- - 2023-01-01T00:00:00.000Z\n- 2023-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-within-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: false\n
"},{"location":"variability4tosca/tests/test-date-operators-within-true/","title":"date-operators-within-true","text":""},{"location":"variability4tosca/tests/test-date-operators-within-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nwithin:\n- 2023-01-02T00:00:00.000Z\n- - 2023-01-01T00:00:00.000Z\n- 2023-01-03T00:00:00.000Z\n
"},{"location":"variability4tosca/tests/test-date-operators-within-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: true\n
"},{"location":"variability4tosca/tests/test-groups-conditional/","title":"Conditional Group","text":""},{"location":"variability4tosca/tests/test-groups-conditional/#description","title":"Description","text":"
  • Removes node \"magic\" and relations \"magic.0\" und \"application.magic\" from topology (and from group members of group \"group_one\") since \"group_one\" is a variability group and its conditions are \"false\".
  • Removes group \"group_one\" since it is a variability group.
  • Removes node \"magic\" from group \"group_two\" since the node is not present.
  • Removes group \"group_three\" since its conditions are \"false\". Members are not removed since the group is a conditional group and not a variability group.
"},{"location":"variability4tosca/tests/test-groups-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\ngroups:\ngroup_one:\ntype: variability.groups.ConditionalMembers\nmembers:\n- magic\n- - magic\n- 0\n- - application\n- magic\nconditions: false\ngroup_two:\ntype: tosca.groups.Root\nmembers:\n- container\n- magic\ngroup_three:\ntype: tosca.groups.Root\nmembers:\n- vm\nconditions: false\nnode_templates:\napplication:\ntype: docker.container.application\nrequirements:\n- host: container\n- magic: magic\n- more: another_application\ncontainer:\ntype: docker.container\nrequirements:\n- host: engine\nengine:\ntype: docker.engine\nrequirements:\n- host: vm\nanother_application:\ntype: another.application\nrequirements:\n- host: another_runtime\nanother_runtime:\ntype: another.runtime\nrequirements:\n- host: vm\nvm:\ntype: openstack.vm\nmagic:\ntype: magic\nrequirements:\n- magic: application\n
"},{"location":"variability4tosca/tests/test-groups-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ngroups:\ngroup_two:\ntype: tosca.groups.Root\nmembers:\n- container\nnode_templates:\napplication:\ntype: docker.container.application\nrequirements:\n- host: container\n- more: another_application\ncontainer:\ntype: docker.container\nrequirements:\n- host: engine\nengine:\ntype: docker.engine\nrequirements:\n- host: vm\nanother_application:\ntype: another.application\nrequirements:\n- host: another_runtime\nanother_runtime:\ntype: another.runtime\nrequirements:\n- host: vm\nvm:\ntype: openstack.vm\n
"},{"location":"variability4tosca/tests/test-groups-default-condition-nothing/","title":"groups-default-condition-nothing","text":""},{"location":"variability4tosca/tests/test-groups-default-condition-nothing/#description","title":"Description","text":"

Group \"group_three\" is not removed since its conditions are \"true\".

"},{"location":"variability4tosca/tests/test-groups-default-condition-nothing/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\ngroups:\ngroup_one:\ntype: variability.groups.ConditionalMembers\nmembers:\n- magic\n- - magic\n- 0\n- - application\n- magic\nconditions: false\ngroup_two:\ntype: tosca.groups.Root\nmembers:\n- container\n- magic\ngroup_three:\ntype: tosca.groups.Root\nmembers:\n- magic\nconditions: true\nnode_templates:\napplication:\ntype: docker.container.application\nrequirements:\n- host: container\n- magic: magic\n- more: another_application\ncontainer:\ntype: docker.container\nrequirements:\n- host: engine\nengine:\ntype: docker.engine\nrequirements:\n- host: vm\nanother_application:\ntype: another.application\nrequirements:\n- host: another_runtime\nanother_runtime:\ntype: another.runtime\nrequirements:\n- host: vm\nvm:\ntype: openstack.vm\nmagic:\ntype: magic\nrequirements:\n- magic: application\n
"},{"location":"variability4tosca/tests/test-groups-default-condition-nothing/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ngroups:\ngroup_two:\ntype: tosca.groups.Root\nmembers:\n- container\ngroup_three:\ntype: tosca.groups.Root\nmembers: []\nnode_templates:\napplication:\ntype: docker.container.application\nrequirements:\n- host: container\n- more: another_application\ncontainer:\ntype: docker.container\nrequirements:\n- host: engine\nengine:\ntype: docker.engine\nrequirements:\n- host: vm\nanother_application:\ntype: another.application\nrequirements:\n- host: another_runtime\nanother_runtime:\ntype: another.runtime\nrequirements:\n- host: vm\nvm:\ntype: openstack.vm\n
"},{"location":"variability4tosca/tests/test-groups-default-condition/","title":"groups-default-condition","text":""},{"location":"variability4tosca/tests/test-groups-default-condition/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ngroup_default_condition: true\ntype_default_condition: true\nexpected_incoming_relation_check: false\ngroups:\ngroup_one:\ntype: variability.groups.ConditionalMembers\nmembers:\n- magic\n- - magic\n- 0\n- - application\n- magic\nconditions: false\ngroup_two:\ntype: tosca.groups.Root\nmembers:\n- container\n- magic\ngroup_three:\ntype: tosca.groups.Root\nmembers:\n- magic\nnode_templates:\napplication:\ntype: docker.container.application\nrequirements:\n- host: container\n- magic: magic\n- more: another_application\ncontainer:\ntype: docker.container\nrequirements:\n- host: engine\nengine:\ntype: docker.engine\nrequirements:\n- host: vm\nanother_application:\ntype: another.application\nrequirements:\n- host: another_runtime\nanother_runtime:\ntype: another.runtime\nrequirements:\n- host: vm\nvm:\ntype: openstack.vm\nmagic:\ntype: magic\nrequirements:\n- magic: application\n
"},{"location":"variability4tosca/tests/test-groups-default-condition/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ngroups:\ngroup_two:\ntype: tosca.groups.Root\nmembers:\n- container\nnode_templates:\napplication:\ntype: docker.container.application\nrequirements:\n- host: container\n- more: another_application\ncontainer:\ntype: docker.container\nrequirements:\n- host: engine\nengine:\ntype: docker.engine\nrequirements:\n- host: vm\nanother_application:\ntype: another.application\nrequirements:\n- host: another_runtime\nanother_runtime:\ntype: another.runtime\nrequirements:\n- host: vm\nvm:\ntype: openstack.vm\n
"},{"location":"variability4tosca/tests/test-groups-group-presence-absent/","title":"groups-group-presence-absent","text":""},{"location":"variability4tosca/tests/test-groups-group-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\ngroup_presence: group_one\ngroups:\ngroup_one:\ntype: group_one\nconditions: false\nmembers: []\n
"},{"location":"variability4tosca/tests/test-groups-group-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-groups-group-presence-present/","title":"groups-group-presence-present","text":""},{"location":"variability4tosca/tests/test-groups-group-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\ngroup_presence: group_one\ngroups:\ngroup_one:\ntype: group_one\nconditions: true\nmembers: []\n
"},{"location":"variability4tosca/tests/test-groups-group-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\ngroups:\ngroup_one:\ntype: group_one\nmembers: []\n
"},{"location":"variability4tosca/tests/test-groups-prune/","title":"groups-prune","text":""},{"location":"variability4tosca/tests/test-groups-prune/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ngroup_pruning: true\ntype_default_condition: true\nexpected_incoming_relation_check: false\ngroups:\ngroup_one:\ntype: variability.groups.ConditionalMembers\nmembers:\n- magic\n- - magic\n- 0\n- - application\n- magic\nconditions: false\ngroup_two:\ntype: tosca.groups.Root\nmembers:\n- container\n- magic\ngroup_three:\ntype: tosca.groups.Root\nmembers:\n- magic\nconditions: true\nnode_templates:\napplication:\ntype: docker.container.application\nrequirements:\n- host: container\n- magic: magic\n- more: another_application\ncontainer:\ntype: docker.container\nrequirements:\n- host: engine\nengine:\ntype: docker.engine\nrequirements:\n- host: vm\nanother_application:\ntype: another.application\nrequirements:\n- host: another_runtime\nanother_runtime:\ntype: another.runtime\nrequirements:\n- host: vm\nvm:\ntype: openstack.vm\nmagic:\ntype: magic\nrequirements:\n- magic: application\n
"},{"location":"variability4tosca/tests/test-groups-prune/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ngroups:\ngroup_two:\ntype: tosca.groups.Root\nmembers:\n- container\nnode_templates:\napplication:\ntype: docker.container.application\nrequirements:\n- host: container\n- more: another_application\ncontainer:\ntype: docker.container\nrequirements:\n- host: engine\nengine:\ntype: docker.engine\nrequirements:\n- host: vm\nanother_application:\ntype: another.application\nrequirements:\n- host: another_runtime\nanother_runtime:\ntype: another.runtime\nrequirements:\n- host: vm\nvm:\ntype: openstack.vm\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-constraints-elastic/","title":"hosting-aware-pruning-constraints-elastic","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-constraints-elastic/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: false\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_compute\n- host:\nnode: gcp_runtime\n- database:\nnode: os_database\nconditions:\nlogic_expression: is_static\nimplied: true\n- database:\nnode: gcp_database\nconditions:\nlogic_expression: is_elastic\nimplied: true\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-constraints-elastic/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: gcp_runtime\n- database: gcp_database\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-constraints-static/","title":"hosting-aware-pruning-constraints-static","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-constraints-static/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: false\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_compute\n- host:\nnode: gcp_runtime\n- database:\nnode: os_database\nconditions:\nlogic_expression: is_static\nimplied: true\n- database:\nnode: gcp_database\nconditions:\nlogic_expression: is_elastic\nimplied: true\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-constraints-static/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: os_compute\n- database: os_database\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-fig-10-broken/","title":"hosting-aware-pruning-fig-10-broken","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-fig-10-broken/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-artifact-host\noptimization_topology: min\noptimization_topology_unique: false\nhosting_stack_constraint: true\nnode_templates:\napp:\ntype: app\npersistent: true\nrequirements:\n- host: elastic\n- host: static\n- database:\nnode: database\nimplied: true\ndatabase:\ntype: database\nstatic:\ntype: static\nelastic:\ntype: elastic\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-fig-10-broken/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-fig-10-fixed/","title":"hosting-aware-pruning-fig-10-fixed","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-fig-10-fixed/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive-artifact-host\noptimization_topology: min\noptimization_topology_unique: false\nhosting_stack_constraint: true\nnode_templates:\napp:\ntype: app\npersistent: true\nrequirements:\n- host: elastic\n- host: static\n- database:\nnode: database\nimplied: true\ndatabase:\ntype: database\nstatic:\ntype: static\nelastic:\ntype: elastic\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-fig-10-fixed/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napp:\ntype: app\nrequirements:\n- host: elastic\n- database: database\ndatabase:\ntype: database\nelastic:\ntype: elastic\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-host-elastic/","title":"hosting-aware-pruning-host-elastic","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-host-elastic/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: false\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_compute\n- host:\nnode: gcp_runtime\n- database:\nnode: os_database\n- database:\nnode: gcp_database\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nconditions:\nlogic_expression: is_static\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\ngcp_runtime:\ntype: gcp.runtime\nconditions:\nlogic_expression: is_elastic\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nconditions:\nlogic_expression: is_elastic\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-host-elastic/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

The result is ambiguous considering nodes (without optimization)\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-host-static/","title":"hosting-aware-pruning-host-static","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-host-static/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: false\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_compute\n- host:\nnode: gcp_runtime\n- database:\nnode: os_database\n- database:\nnode: gcp_database\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nconditions:\nlogic_expression: is_static\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\ngcp_runtime:\ntype: gcp.runtime\nconditions:\nlogic_expression: is_elastic\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nconditions:\nlogic_expression: is_elastic\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-host-static/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: os_compute\n- database: os_database\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-motivation-elastic/","title":"hosting-aware-pruning-motivation-elastic","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-motivation-elastic/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming\nhosting_stack_constraint: false\noptimization_topology: false\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_compute\nconditions:\nlogic_expression: is_static\n- host:\nnode: gcp_runtime\nconditions:\nlogic_expression: is_elastic\n- database:\nnode: os_database\nconditions:\nlogic_expression: is_static\n- database:\nnode: gcp_database\nconditions:\nlogic_expression: is_elastic\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nconditions:\nlogic_expression: is_static\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-motivation-elastic/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: gcp_runtime\n- database: gcp_database\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-motivation-static/","title":"hosting-aware-pruning-motivation-static","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-motivation-static/#description","title":"Description","text":"
  • 2 conditions at shop hosting relations
  • required to trigger incoming pruning
  • alternative is to model 2 conditions at the direct hosts

  • 2 conditions at shop database connections

  • required, since database must be pruned
  • alternative is to model 2 conditions at the databases directly

  • 1 condition at monitor

  • required, since incoming pruning of monitor host is not triggered

  • 5 conditions in total

  • hosting_stack_constraint has no effect

  • optimization has no effect
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-motivation-static/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming\nhosting_stack_constraint: false\noptimization_topology: false\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_compute\nconditions:\nlogic_expression: is_static\n- host:\nnode: gcp_runtime\nconditions:\nlogic_expression: is_elastic\n- database:\nnode: os_database\nconditions:\nlogic_expression: is_static\n- database:\nnode: gcp_database\nconditions:\nlogic_expression: is_elastic\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nconditions:\nlogic_expression: is_static\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-motivation-static/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: os_compute\n- database: os_database\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-provider-elastic/","title":"hosting-aware-pruning-provider-elastic","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-provider-elastic/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: false\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_compute\n- host:\nnode: gcp_runtime\n- database:\nnode: os_database\n- database:\nnode: gcp_database\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\nconditions:\nlogic_expression: is_static\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\nconditions:\nlogic_expression: is_elastic\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-provider-elastic/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

The result is ambiguous considering nodes (without optimization)\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-provider-static/","title":"hosting-aware-pruning-provider-static","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-provider-static/#description","title":"Description","text":"

-

"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-provider-static/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: false\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_compute\n- host:\nnode: gcp_runtime\n- database:\nnode: os_database\n- database:\nnode: gcp_database\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\nconditions:\nlogic_expression: is_static\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_database:\ntype: gcp.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.provider\nconditions:\nlogic_expression: is_elastic\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-provider-static/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: os_compute\n- database: os_database\nos_database:\ntype: os.database\nrequirements:\n- host: os_compute\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os.provider\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-ambiguous/","title":"hosting-aware-pruning-transitive-ambiguous","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-ambiguous/#description","title":"Description","text":"
  • ambiguous since circle at agent
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-ambiguous/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: false\noptimization_topology: false\noptimization_topology_unique: true\nnode_templates:\nagent:\ntype: agent\nrequirements:\n- host: vm\nworker:\ntype: worker\npersistent: true\nrequirements:\n- host:\nnode: vm\nvm:\ntype: vm\nrequirements:\n- host: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-ambiguous/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

The result is ambiguous considering nodes (without optimization)\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-both/","title":"hosting-aware-pruning-transitive-both","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-both/#description","title":"Description","text":"
  • hypervisor is preserved in contrast to \"transitive-unexpected\"
  • and not ambiguous as in \"transitive-ambiguous\"
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-both/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nagent:\ntype: agent\nrequirements:\n- host: vm\nworker:\ntype: worker\npersistent: true\nrequirements:\n- host:\nnode: vm\nvm:\ntype: vm\nrequirements:\n- host: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-both/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nagent:\ntype: agent\nrequirements:\n- host: vm\nworker:\ntype: worker\nrequirements:\n- host: vm\nvm:\ntype: vm\nrequirements:\n- host: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-preserved/","title":"hosting-aware-pruning-transitive-preserved","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-preserved/#description","title":"Description","text":"
  • hypervisor is preserved in contrast to \"transitive-unexpected\"
  • and not ambiguous as in \"transitive-ambiguous\"
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-preserved/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology_unique: true\nnode_templates:\nagent:\ntype: agent\nrequirements:\n- host: vm\nworker:\ntype: worker\npersistent: true\nrequirements:\n- host:\nnode: vm\nvm:\ntype: vm\nrequirements:\n- host: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-preserved/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nagent:\ntype: agent\nrequirements:\n- host: vm\nworker:\ntype: worker\nrequirements:\n- host: vm\nvm:\ntype: vm\nrequirements:\n- host: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-unexpected/","title":"hosting-aware-pruning-transitive-unexpected","text":""},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-unexpected/#description","title":"Description","text":"
  • circle at hypervisor
  • circle at agent

  • pruned due to optimization

"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-unexpected/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: false\noptimization_topology: true\noptimization_topology_unique: true\nexpected_hosting_check: false\nnode_templates:\nagent:\ntype: agent\nrequirements:\n- host: vm\nworker:\ntype: worker\npersistent: true\nrequirements:\n- host:\nnode: vm\nvm:\ntype: vm\nrequirements:\n- host: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-hosting-aware-pruning-transitive-unexpected/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\n
"},{"location":"variability4tosca/tests/test-implications-constraints/","title":"implications-constraints","text":""},{"location":"variability4tosca/tests/test-implications-constraints/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nhosting_stack_constraint: true\noptimization_topology: false\noptimization_topology_unique: true\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\nconstraints:\n- implies:\n- logic_expression: is_static\n- relation_presence:\n- worker\n- dev_host\n- implies:\n- logic_expression: is_elastic\n- relation_presence:\n- worker\n- prod_host\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- dev_database:\nnode: dev_database\n- dev_host:\nnode: dev_host\n- prod_database:\nnode: prod_database\n- prod_host:\nnode: prod_host\ndev_database:\ntype: dev_database\nrequirements:\n- host: dev_host\ndev_host:\ntype: dev_host\nrequirements:\n- host:\nnode: dev_cloud\ndev_cloud:\ntype: dev_cloud\nprod_database:\ntype: prod_database\nrequirements:\n- host: prod_host\nprod_host:\ntype: prod_host\nrequirements:\n- host:\nnode: prod_cloud\nprod_cloud:\ntype: prod_cloud\n
"},{"location":"variability4tosca/tests/test-implications-constraints/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- prod_database: prod_database\n- prod_host: prod_host\nprod_database:\ntype: prod_database\nrequirements:\n- host: prod_host\nprod_host:\ntype: prod_host\nrequirements:\n- host: prod_cloud\nprod_cloud:\ntype: prod_cloud\n
"},{"location":"variability4tosca/tests/test-implications-implied-left/","title":"implications-implied-left","text":""},{"location":"variability4tosca/tests/test-implications-implied-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-implied-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- left: left\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\n
"},{"location":"variability4tosca/tests/test-implications-implied-right/","title":"implications-implied-right","text":""},{"location":"variability4tosca/tests/test-implications-implied-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-implied-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- right: right\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-implies-left/","title":"implications-implies-left","text":""},{"location":"variability4tosca/tests/test-implications-implies-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nimplies:\n- - relation_presence:\n- SELF\n- left\n- logic_expression: is_left\n- - relation_presence:\n- SELF\n- right\n- logic_expression: is_right\nrequirements:\n- left: left\n- right: right\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-implies-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- left: left\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\n
"},{"location":"variability4tosca/tests/test-implications-implies-right/","title":"implications-implies-right","text":""},{"location":"variability4tosca/tests/test-implications-implies-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nimplies:\n- - relation_presence:\n- SELF\n- left\n- logic_expression: is_left\n- - relation_presence:\n- SELF\n- right\n- logic_expression: is_right\nrequirements:\n- left: left\n- right: right\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-implies-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- right: right\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-incoming-left/","title":"implications-incoming-left","text":""},{"location":"variability4tosca/tests/test-implications-incoming-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nright:\ntype: right\nrequirements:\n- host: far_right\nfar_right:\ntype: far.right\n
"},{"location":"variability4tosca/tests/test-implications-incoming-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- left: left\nleft:\ntype: left\n
"},{"location":"variability4tosca/tests/test-implications-incoming-right/","title":"implications-incoming-right","text":""},{"location":"variability4tosca/tests/test-implications-incoming-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nright:\ntype: right\nrequirements:\n- host: far_right\nfar_right:\ntype: far.right\n
"},{"location":"variability4tosca/tests/test-implications-incoming-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- right: right\nright:\ntype: right\nrequirements:\n- host: far_right\nfar_right:\ntype: far.right\n
"},{"location":"variability4tosca/tests/test-implications-motivating-scenario-cloud/","title":"implications-motivating-scenario-cloud","text":""},{"location":"variability4tosca/tests/test-implications-motivating-scenario-cloud/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: true\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_kubernetes\nconditions:\nlogic_expression: is_static\n- host:\nnode: gcp_runtime\nconditions:\nlogic_expression: is_elastic\n- database:\nnode: database\nconditions: true\nimplied: true\ndatabase:\ntype: shop.database\nrequirements:\n- host:\nnode: os_dbms\n- host:\nnode: gcp_dbms\nos_dbms:\ntype: os.dbms\nrequirements:\n- host: os_kubernetes\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_kubernetes\nos_logger:\ntype: os.logger\nrequirements:\n- host: os_kubernetes\nos_kubernetes:\ntype: os.kubernetes\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os_cloud\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.cloud\n
"},{"location":"variability4tosca/tests/test-implications-motivating-scenario-cloud/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: gcp_runtime\n- database: database\ndatabase:\ntype: shop.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.cloud\n
"},{"location":"variability4tosca/tests/test-implications-motivating-scenario-static/","title":"implications-motivating-scenario-static","text":""},{"location":"variability4tosca/tests/test-implications-motivating-scenario-static/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: true\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_kubernetes\nconditions:\nlogic_expression: is_static\n- host:\nnode: gcp_runtime\nconditions:\nlogic_expression: is_elastic\n- database:\nnode: database\nconditions: true\nimplied: true\ndatabase:\ntype: shop.database\nrequirements:\n- host:\nnode: os_dbms\n- host:\nnode: gcp_dbms\nos_dbms:\ntype: os.dbms\nrequirements:\n- host: os_kubernetes\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_kubernetes\nos_logger:\ntype: os.logger\nrequirements:\n- host: os_kubernetes\nos_kubernetes:\ntype: os.kubernetes\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os_cloud\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.cloud\n
"},{"location":"variability4tosca/tests/test-implications-motivating-scenario-static/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: os_kubernetes\n- database: database\ndatabase:\ntype: shop.database\nrequirements:\n- host: os_dbms\nos_dbms:\ntype: os.dbms\nrequirements:\n- host: os_kubernetes\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_kubernetes\nos_logger:\ntype: os.logger\nrequirements:\n- host: os_kubernetes\nos_kubernetes:\ntype: os.kubernetes\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os_cloud\n
"},{"location":"variability4tosca/tests/test-implications-naive-constraints/","title":"implications-naive-constraints","text":""},{"location":"variability4tosca/tests/test-implications-naive-constraints/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incomingnaive-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\nconstraints:\n- implies:\n- logic_expression: is_static\n- relation_presence:\n- worker\n- dev_host\n- implies:\n- logic_expression: is_static\n- relation_presence:\n- worker\n- dev_database\n- implies:\n- logic_expression: is_elastic\n- relation_presence:\n- worker\n- prod_host\n- implies:\n- logic_expression: is_elastic\n- relation_presence:\n- worker\n- prod_database\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- dev_database:\nnode: dev_database\n- dev_host:\nnode: dev_host\n- prod_database:\nnode: prod_database\n- prod_host:\nnode: prod_host\ndev_database:\ntype: dev_database\nrequirements:\n- host: dev_host\ndev_host:\ntype: dev_host\nrequirements:\n- host:\nnode: dev_cloud\ndev_cloud:\ntype: dev_cloud\nprod_database:\ntype: prod_database\nrequirements:\n- host: prod_host\nprod_host:\ntype: prod_host\nrequirements:\n- host:\nnode: prod_cloud\nprod_cloud:\ntype: prod_cloud\n
"},{"location":"variability4tosca/tests/test-implications-naive-constraints/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- prod_database: prod_database\n- prod_host: prod_host\nprod_database:\ntype: prod_database\nrequirements:\n- host: prod_host\nprod_host:\ntype: prod_host\nrequirements:\n- host: prod_cloud\nprod_cloud:\ntype: prod_cloud\n
"},{"location":"variability4tosca/tests/test-implications-naive-implied-left/","title":"implications-naive-implied-left","text":""},{"location":"variability4tosca/tests/test-implications-naive-implied-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-naive-implied-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- left: left\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\n
"},{"location":"variability4tosca/tests/test-implications-naive-implied-right/","title":"implications-naive-implied-right","text":""},{"location":"variability4tosca/tests/test-implications-naive-implied-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-naive-implied-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- right: right\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-naive-implies-left/","title":"implications-naive-implies-left","text":""},{"location":"variability4tosca/tests/test-implications-naive-implies-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nimplies:\n- - relation_presence:\n- SELF\n- left\n- logic_expression: is_left\n- - relation_presence:\n- SELF\n- right\n- logic_expression: is_right\nrequirements:\n- left: left\n- right: right\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-naive-implies-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- left: left\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\n
"},{"location":"variability4tosca/tests/test-implications-naive-implies-right/","title":"implications-naive-implies-right","text":""},{"location":"variability4tosca/tests/test-implications-naive-implies-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nimplies:\n- - relation_presence:\n- SELF\n- left\n- logic_expression: is_left\n- - relation_presence:\n- SELF\n- right\n- logic_expression: is_right\nrequirements:\n- left: left\n- right: right\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-naive-implies-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- right: right\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-naive-incoming-left/","title":"implications-naive-incoming-left","text":""},{"location":"variability4tosca/tests/test-implications-naive-incoming-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nright:\ntype: right\nrequirements:\n- host: far_right\nfar_right:\ntype: far.right\n
"},{"location":"variability4tosca/tests/test-implications-naive-incoming-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- left: left\nleft:\ntype: left\n
"},{"location":"variability4tosca/tests/test-implications-naive-incoming-right/","title":"implications-naive-incoming-right","text":""},{"location":"variability4tosca/tests/test-implications-naive-incoming-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nright:\ntype: right\nrequirements:\n- host: far_right\nfar_right:\ntype: far.right\n
"},{"location":"variability4tosca/tests/test-implications-naive-incoming-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- right: right\nright:\ntype: right\nrequirements:\n- host: far_right\nfar_right:\ntype: far.right\n
"},{"location":"variability4tosca/tests/test-implications-naive-motivating-scenario-cloud/","title":"implications-naive-motivating-scenario-cloud","text":""},{"location":"variability4tosca/tests/test-implications-naive-motivating-scenario-cloud/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive-host\nhosting_stack_constraint: true\noptimization_topology: true\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_kubernetes\nconditions:\nlogic_expression: is_static\n- host:\nnode: gcp_runtime\nconditions:\nlogic_expression: is_elastic\n- database:\nnode: database\nconditions: true\nimplied: true\ndatabase:\ntype: shop.database\nrequirements:\n- host:\nnode: os_dbms\n- host:\nnode: gcp_dbms\nos_dbms:\ntype: os.dbms\nrequirements:\n- host: os_kubernetes\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_kubernetes\nos_logger:\ntype: os.logger\nrequirements:\n- host: os_kubernetes\nos_kubernetes:\ntype: os.kubernetes\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os_cloud\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.cloud\n
"},{"location":"variability4tosca/tests/test-implications-naive-motivating-scenario-cloud/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: gcp_runtime\n- database: database\ndatabase:\ntype: shop.database\nrequirements:\n- host: gcp_dbms\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.cloud\n
"},{"location":"variability4tosca/tests/test-implications-naive-motivating-scenario-static/","title":"implications-naive-motivating-scenario-static","text":""},{"location":"variability4tosca/tests/test-implications-naive-motivating-scenario-static/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nstatic:\ntype: boolean\ndefault: true\npresets:\nstatic:\ninputs:\nstatic: true\nelastic:\ninputs:\nstatic: false\nexpressions:\nis_static:\nequal:\n- variability_input: static\n- true\nis_elastic:\nequal:\n- variability_input: static\n- false\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive-host\nhosting_stack_constraint: true\noptimization_topology: true\nnode_templates:\nshop:\ntype: shop.component\npersistent: true\nrequirements:\n- host:\nnode: os_kubernetes\nconditions:\nlogic_expression: is_static\n- host:\nnode: gcp_runtime\nconditions:\nlogic_expression: is_elastic\n- database:\nnode: database\nconditions: true\nimplied: true\ndatabase:\ntype: shop.database\nrequirements:\n- host:\nnode: os_dbms\n- host:\nnode: gcp_dbms\nos_dbms:\ntype: os.dbms\nrequirements:\n- host: os_kubernetes\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_kubernetes\nos_logger:\ntype: os.logger\nrequirements:\n- host: os_kubernetes\nos_kubernetes:\ntype: os.kubernetes\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os_cloud\ngcp_dbms:\ntype: gcp.dbms\nrequirements:\n- host: gcp_cloud\ngcp_runtime:\ntype: gcp.runtime\nrequirements:\n- host: gcp_cloud\ngcp_cloud:\ntype: gcp.cloud\n
"},{"location":"variability4tosca/tests/test-implications-naive-motivating-scenario-static/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nshop:\ntype: shop.component\nrequirements:\n- host: os_kubernetes\n- database: database\ndatabase:\ntype: shop.database\nrequirements:\n- host: os_dbms\nos_dbms:\ntype: os.dbms\nrequirements:\n- host: os_kubernetes\nos_monitor:\ntype: os.monitor\nrequirements:\n- host: os_kubernetes\nos_logger:\ntype: os.logger\nrequirements:\n- host: os_kubernetes\nos_kubernetes:\ntype: os.kubernetes\nrequirements:\n- host: os_compute\nos_compute:\ntype: os.compute\nrequirements:\n- host: os_cloud\nos_cloud:\ntype: os_cloud\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive-another-no-optimization/","title":"implications-naive-naive-another-no-optimization","text":""},{"location":"variability4tosca/tests/test-implications-naive-naive-another-no-optimization/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incomingnaive-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nhosting_stack_constraint: true\noptimization_topology: false\noptimization_topology_unique: true\nnode_templates:\napp:\ntype: app\npersistent: true\nrequirements:\n- database:\nnode: database\nimplied: true\n- host:\nnode: static\n- host:\nnode: elastic\ndatabase:\ntype: database\nrequirements:\n- host:\nnode: static\nstatic:\ntype: static\nelastic:\ntype: elastic\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive-another-no-optimization/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napp:\ntype: app\nrequirements:\n- database: database\n- host: static\ndatabase:\ntype: database\nrequirements:\n- host: static\nstatic:\ntype: static\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive-another-not/","title":"implications-naive-naive-another-not","text":""},{"location":"variability4tosca/tests/test-implications-naive-naive-another-not/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\napp:\ntype: app\npersistent: true\nrequirements:\n- database:\nnode: database\nimplied: true\n- host:\nnode: static\n- host:\nnode: elastic\ndatabase:\ntype: database\nrequirements:\n- host:\nnode: static\nstatic:\ntype: static\nelastic:\ntype: elastic\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive-another-not/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive-another/","title":"implications-naive-naive-another","text":""},{"location":"variability4tosca/tests/test-implications-naive-naive-another/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incomingnaive-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\napp:\ntype: app\npersistent: true\nrequirements:\n- database:\nnode: database\nimplied: true\n- host:\nnode: static\n- host:\nnode: elastic\ndatabase:\ntype: database\nrequirements:\n- host:\nnode: static\nstatic:\ntype: static\nelastic:\ntype: elastic\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive-another/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napp:\ntype: app\nrequirements:\n- database: database\n- host: static\ndatabase:\ntype: database\nrequirements:\n- host: static\nstatic:\ntype: static\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive-not/","title":"implications-naive-naive-not","text":""},{"location":"variability4tosca/tests/test-implications-naive-naive-not/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- host:\nnode: dev_host\n- host:\nnode: prod_host\ndev_host:\ntype: dev_host\nprod_host:\ntype: prod_host\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive-not/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive/","title":"implications-naive-naive","text":""},{"location":"variability4tosca/tests/test-implications-naive-naive/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incomingnaive-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- host:\nnode: dev_host\n- host:\nnode: prod_host\ndev_host:\ntype: dev_host\nprod_host:\ntype: prod_host\n
"},{"location":"variability4tosca/tests/test-implications-naive-naive/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

The result is ambiguous considering nodes (besides optimization)\n
"},{"location":"variability4tosca/tests/test-implications-naive-requires/","title":"implications-naive-requires","text":""},{"location":"variability4tosca/tests/test-implications-naive-requires/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nconditions: false\nright:\ntype: right\nrequirements:\n- far_right: far_right\nfar_right:\ntype: far.right\n
"},{"location":"variability4tosca/tests/test-implications-naive-requires/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-implications-naive-unexpected/","title":"implications-naive-unexpected","text":""},{"location":"variability4tosca/tests/test-implications-naive-unexpected/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left: left\n- right: right\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-naive-unexpected/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\n
"},{"location":"variability4tosca/tests/test-implications-requires/","title":"implications-requires","text":""},{"location":"variability4tosca/tests/test-implications-requires/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\ndefault: left\npresets:\nleft:\ninputs:\nmode: left\nright:\ninputs:\nmode: right\nexpressions:\nis_left:\nequal:\n- variability_input: mode\n- left\nis_right:\nequal:\n- variability_input: mode\n- right\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left:\nnode: left\nconditions:\nlogic_expression: is_left\nimplied: true\n- right:\nnode: right\nconditions:\nlogic_expression: is_right\nimplied: true\nleft:\ntype: left\nconditions: false\nright:\ntype: right\nrequirements:\n- far_right: far_right\nfar_right:\ntype: far.right\n
"},{"location":"variability4tosca/tests/test-implications-requires/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-implications-unexpected/","title":"implications-unexpected","text":""},{"location":"variability4tosca/tests/test-implications-unexpected/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incoming-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_topology_unique: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- left: left\n- right: right\nleft:\ntype: left\nrequirements:\n- host: left_host\nleft_host:\ntype: left.host\nrequirements:\n- host: left_host_host\nleft_host_host:\ntype: left.host.host\nright:\ntype: right\nrequirements:\n- host: right_host\nright_host:\ntype: right.host\n
"},{"location":"variability4tosca/tests/test-implications-unexpected/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\n
"},{"location":"variability4tosca/tests/test-implied-default-fixed-left/","title":"implied-default-fixed-left","text":""},{"location":"variability4tosca/tests/test-implied-default-fixed-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_2\ntopology_template:\nvariability:\ninputs:\nl:\ntype: boolean\nexpressions:\nis_l:\nequal:\n- variability_input: l\n- true\nis_r:\nequal:\n- variability_input: l\n- false\noptions:\nexpected_incoming_relation_check: false\nrequired_incoming_relation_constraint: false\nenrich_technologies: false\nnode_templates:\napplication:\ntype: Application\npersistent: true\nrequirements:\n- connection:\nnode: left\nconditions:\nlogic_expression: is_l\n- connection:\nnode: right\ndefault_alternative: true\nright:\ntype: Right\npersistent: true\nleft:\ntype: Left\npersistent: true\n
"},{"location":"variability4tosca/tests/test-implied-default-fixed-left/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

l: true\n
"},{"location":"variability4tosca/tests/test-implied-default-fixed-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napplication:\ntype: Application\nrequirements:\n- connection: left\nright:\ntype: Right\nleft:\ntype: Left\n
"},{"location":"variability4tosca/tests/test-implied-default-fixed-right/","title":"implied-default-fixed-right","text":""},{"location":"variability4tosca/tests/test-implied-default-fixed-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_2\ntopology_template:\nvariability:\ninputs:\nl:\ntype: boolean\nexpressions:\nis_l:\nequal:\n- variability_input: l\n- true\nis_r:\nequal:\n- variability_input: l\n- false\noptions:\nexpected_incoming_relation_check: false\nrequired_incoming_relation_constraint: false\nenrich_technologies: false\nnode_templates:\napplication:\ntype: Application\npersistent: true\nrequirements:\n- connection:\nnode: left\nconditions:\nlogic_expression: is_l\n- connection:\nnode: right\ndefault_alternative: true\nright:\ntype: Right\npersistent: true\nleft:\ntype: Left\npersistent: true\n
"},{"location":"variability4tosca/tests/test-implied-default-fixed-right/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

l: false\n
"},{"location":"variability4tosca/tests/test-implied-default-fixed-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napplication:\ntype: Application\nrequirements:\n- connection: right\nright:\ntype: Right\nleft:\ntype: Left\n
"},{"location":"variability4tosca/tests/test-implied-default-manual-left/","title":"implied-default-manual-left","text":""},{"location":"variability4tosca/tests/test-implied-default-manual-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_2\ntopology_template:\nvariability:\ninputs:\nl:\ntype: boolean\nexpressions:\nis_l:\nequal:\n- variability_input: l\n- true\nis_r:\nequal:\n- variability_input: l\n- false\noptions:\nexpected_incoming_relation_check: false\nrequired_incoming_relation_constraint: false\nenrich_technologies: false\nnode_templates:\napplication:\ntype: Application\npersistent: true\nrequirements:\n- connection:\nnode: left\nconditions:\nlogic_expression: is_l\nimplied: false\n- connection:\nnode: right\nimplied: false\ndefault_alternative: true\nright:\ntype: Right\npersistent: true\nleft:\ntype: Left\npersistent: true\n
"},{"location":"variability4tosca/tests/test-implied-default-manual-left/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

l: true\n
"},{"location":"variability4tosca/tests/test-implied-default-manual-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napplication:\ntype: Application\nrequirements:\n- connection: left\nright:\ntype: Right\nleft:\ntype: Left\n
"},{"location":"variability4tosca/tests/test-implied-default-manual-right/","title":"implied-default-manual-right","text":""},{"location":"variability4tosca/tests/test-implied-default-manual-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_2\ntopology_template:\nvariability:\ninputs:\nl:\ntype: boolean\nexpressions:\nis_l:\nequal:\n- variability_input: l\n- true\nis_r:\nequal:\n- variability_input: l\n- false\noptions:\nexpected_incoming_relation_check: false\nrequired_incoming_relation_constraint: false\nenrich_technologies: false\nnode_templates:\napplication:\ntype: Application\npersistent: true\nrequirements:\n- connection:\nnode: left\nconditions:\nlogic_expression: is_l\nimplied: false\n- connection:\nnode: right\nimplied: false\ndefault_alternative: true\nright:\ntype: Right\npersistent: true\nleft:\ntype: Left\npersistent: true\n
"},{"location":"variability4tosca/tests/test-implied-default-manual-right/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

l: false\n
"},{"location":"variability4tosca/tests/test-implied-default-manual-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napplication:\ntype: Application\nrequirements:\n- connection: right\nright:\ntype: Right\nleft:\ntype: Left\n
"},{"location":"variability4tosca/tests/test-implied-host-broken/","title":"implied-host-broken","text":""},{"location":"variability4tosca/tests/test-implied-host-broken/#description","title":"Description","text":"

Only one hosting relation must be present. Hence, there is a conflict between implied relations and hosting constraints.

"},{"location":"variability4tosca/tests/test-implied-host-broken/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_2\ntopology_template:\nvariability:\ninputs:\nl:\ntype: boolean\nexpressions:\nis_l:\nequal:\n- variability_input: l\n- true\nis_r:\nequal:\n- variability_input: l\n- false\noptions:\nenrich_technologies: false\nnode_templates:\napplication:\ntype: Application\npersistent: true\nrequirements:\n- host:\nnode: left\nimplied: true\n- host:\nnode: right\nimplied: true\nright:\ntype: Right\nconditions:\nlogic_expression: is_r\nleft:\ntype: Left\nconditions:\nlogic_expression: is_l\n
"},{"location":"variability4tosca/tests/test-implied-host-broken/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

l: true\n
"},{"location":"variability4tosca/tests/test-implied-host-broken/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-implied-host-fixed-left/","title":"implied-host-fixed-left","text":""},{"location":"variability4tosca/tests/test-implied-host-fixed-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_2\ntopology_template:\nvariability:\ninputs:\nl:\ntype: boolean\nexpressions:\nis_l:\nequal:\n- variability_input: l\n- true\nis_r:\nequal:\n- variability_input: l\n- false\noptions:\nenrich_technologies: false\nnode_templates:\napplication:\ntype: Application\npersistent: true\nrequirements:\n- host: left\n- host: right\nright:\ntype: Right\nconditions:\nlogic_expression: is_r\nleft:\ntype: Left\nconditions:\nlogic_expression: is_l\n
"},{"location":"variability4tosca/tests/test-implied-host-fixed-left/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

l: true\n
"},{"location":"variability4tosca/tests/test-implied-host-fixed-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napplication:\ntype: Application\nrequirements:\n- host: left\nleft:\ntype: Left\n
"},{"location":"variability4tosca/tests/test-implied-host-fixed-right/","title":"implied-host-fixed-right","text":""},{"location":"variability4tosca/tests/test-implied-host-fixed-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_2\ntopology_template:\nvariability:\ninputs:\nl:\ntype: boolean\nexpressions:\nis_l:\nequal:\n- variability_input: l\n- true\nis_r:\nequal:\n- variability_input: l\n- false\noptions:\nenrich_technologies: false\nnode_templates:\napplication:\ntype: Application\npersistent: true\nrequirements:\n- host: left\n- host: right\nright:\ntype: Right\nconditions:\nlogic_expression: is_r\nleft:\ntype: Left\nconditions:\nlogic_expression: is_l\n
"},{"location":"variability4tosca/tests/test-implied-host-fixed-right/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

l: true\n
"},{"location":"variability4tosca/tests/test-implied-host-fixed-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napplication:\ntype: Application\nrequirements:\n- host: left\nleft:\ntype: Left\n
"},{"location":"variability4tosca/tests/test-implied-host-manual-left/","title":"implied-host-manual-left","text":""},{"location":"variability4tosca/tests/test-implied-host-manual-left/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_2\ntopology_template:\nvariability:\ninputs:\nl:\ntype: boolean\nexpressions:\nis_l:\nequal:\n- variability_input: l\n- true\nis_r:\nequal:\n- variability_input: l\n- false\noptions:\nenrich_technologies: false\nnode_templates:\napplication:\ntype: Application\npersistent: true\nrequirements:\n- host:\nnode: left\nimplied: false\n- host:\nnode: right\nimplied: false\nright:\ntype: Right\nconditions:\nlogic_expression: is_r\nleft:\ntype: Left\nconditions:\nlogic_expression: is_l\n
"},{"location":"variability4tosca/tests/test-implied-host-manual-left/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

l: true\n
"},{"location":"variability4tosca/tests/test-implied-host-manual-left/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napplication:\ntype: Application\nrequirements:\n- host: left\nleft:\ntype: Left\n
"},{"location":"variability4tosca/tests/test-implied-host-manual-right/","title":"implied-host-manual-right","text":""},{"location":"variability4tosca/tests/test-implied-host-manual-right/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_2\ntopology_template:\nvariability:\ninputs:\nl:\ntype: boolean\nexpressions:\nis_l:\nequal:\n- variability_input: l\n- true\nis_r:\nequal:\n- variability_input: l\n- false\noptions:\nenrich_technologies: false\nnode_templates:\napplication:\ntype: Application\npersistent: true\nrequirements:\n- host:\nnode: left\nimplied: false\n- host:\nnode: right\nimplied: false\nright:\ntype: Right\nconditions:\nlogic_expression: is_r\nleft:\ntype: Left\nconditions:\nlogic_expression: is_l\n
"},{"location":"variability4tosca/tests/test-implied-host-manual-right/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

l: false\n
"},{"location":"variability4tosca/tests/test-implied-host-manual-right/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\napplication:\ntype: Application\nrequirements:\n- host: right\nright:\ntype: Right\n
"},{"location":"variability4tosca/tests/test-import-conditional/","title":"import-conditional","text":""},{"location":"variability4tosca/tests/test-import-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\nimports:\n- file: some_file\nconditions: true\n- file: another_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-import-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nimports:\n- some_file\n
"},{"location":"variability4tosca/tests/test-import-empty/","title":"import-empty","text":""},{"location":"variability4tosca/tests/test-import-empty/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\nimports:\n- file: some_file\nconditions: false\n- file: another_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-import-empty/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-import-get-import-absent/","title":"import-get-import-absent","text":""},{"location":"variability4tosca/tests/test-import-get-import-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\nimports:\n- file: some_file\nconditions: false\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nimport_presence: 0\n
"},{"location":"variability4tosca/tests/test-import-get-import-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-import-get-import-present/","title":"import-get-import-present","text":""},{"location":"variability4tosca/tests/test-import-get-import-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\nimports:\n- file: some_file\nconditions: true\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nimport_presence: 0\n
"},{"location":"variability4tosca/tests/test-import-get-import-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nimports:\n- some_file\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-inputs-conditional-list/","title":"inputs-conditional-list","text":""},{"location":"variability4tosca/tests/test-inputs-conditional-list/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninputs:\n- one:\ntype: string\n- two:\ntype: string\nconditions: false\n- three:\ntype: string\nconditions: true\n
"},{"location":"variability4tosca/tests/test-inputs-conditional-list/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\none:\ntype: string\nthree:\ntype: string\n
"},{"location":"variability4tosca/tests/test-inputs-conditional/","title":"inputs-conditional","text":""},{"location":"variability4tosca/tests/test-inputs-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninputs:\none:\ntype: string\ntwo:\ntype: string\nconditions: false\nthree:\ntype: string\nconditions: true\n
"},{"location":"variability4tosca/tests/test-inputs-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\none:\ntype: string\nthree:\ntype: string\n
"},{"location":"variability4tosca/tests/test-inputs-default-alternative/","title":"inputs-default-alternative","text":""},{"location":"variability4tosca/tests/test-inputs-default-alternative/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninputs:\n- one:\ntype: a\ndefault_alternative: true\n- one:\ntype: b\nconditions: false\n
"},{"location":"variability4tosca/tests/test-inputs-default-alternative/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\none:\ntype: a\n
"},{"location":"variability4tosca/tests/test-inputs-input-presence-absent/","title":"inputs-input-presence-absent","text":""},{"location":"variability4tosca/tests/test-inputs-input-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninputs:\ninput:\nconditions: false\ntype: string\nnode_templates:\ncontainer:\ntype: container\nconditions:\ninput_presence: input\n
"},{"location":"variability4tosca/tests/test-inputs-input-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-inputs-input-presence-present/","title":"inputs-input-presence-present","text":""},{"location":"variability4tosca/tests/test-inputs-input-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninputs:\ninput:\nconditions: true\ntype: string\nnode_templates:\ncontainer:\ntype: container\nconditions:\ninput_presence: input\n
"},{"location":"variability4tosca/tests/test-inputs-input-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\ninput:\ntype: string\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-consumed-still/","title":"inputs-pruning-consumed-still","text":""},{"location":"variability4tosca/tests/test-inputs-pruning-consumed-still/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninput_default_condition: true\ninput_default_consistency_condition: true\ninput_default_semantic_condition: true\nproperty_default_condition: true\ninputs:\nsome_input:\ntype: string\nnode_templates:\ncontainer:\ntype: container\nconditions: true\nproperties:\nsome_property:\nget_input: some_input\nanother_container:\ntype: container\nconditions: false\nproperties:\nsome_property:\nget_input: some_input\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-consumed-still/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\nsome_input:\ntype: string\nnode_templates:\ncontainer:\ntype: container\nproperties:\nsome_property:\nget_input: some_input\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-consumed/","title":"inputs-pruning-consumed","text":""},{"location":"variability4tosca/tests/test-inputs-pruning-consumed/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninput_default_condition: true\ninput_default_consistency_condition: true\ninput_default_semantic_condition: true\nproperty_default_condition: true\ninputs:\nsome_input:\ntype: string\nnode_templates:\ncontainer:\ntype: container\nconditions: true\nproperties:\nsome_property:\nget_input: some_input\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-consumed/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\nsome_input:\ntype: string\nnode_templates:\ncontainer:\ntype: container\nproperties:\nsome_property:\nget_input: some_input\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-no-consumer/","title":"inputs-pruning-no-consumer","text":""},{"location":"variability4tosca/tests/test-inputs-pruning-no-consumer/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninput_default_condition: true\ninput_default_consistency_condition: true\ninput_default_semantic_condition: true\nproperty_default_condition: true\ninputs:\nsome_input:\ntype: string\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-no-consumer/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-not-consumed-anymore-v3/","title":"inputs-pruning-not-consumed-anymore-v3","text":""},{"location":"variability4tosca/tests/test-inputs-pruning-not-consumed-anymore-v3/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\ntopology_template:\nvariability:\noptions:\ntechnology_required: false\nenrich_technologies: false\ninputs:\nsome_input:\ntype: string\nnode_templates:\ncontainer:\ntype: container\nconditions: false\npersistent: true\nproperties:\nsome_property:\nget_input: some_input\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-not-consumed-anymore-v3/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-not-consumed-anymore/","title":"inputs-pruning-not-consumed-anymore","text":""},{"location":"variability4tosca/tests/test-inputs-pruning-not-consumed-anymore/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninput_default_condition: true\ninput_default_consistency_condition: true\ninput_default_semantic_condition: true\nproperty_default_condition: true\ninputs:\nsome_input:\ntype: string\nnode_templates:\ncontainer:\ntype: container\nconditions: false\nproperties:\nsome_property:\nget_input: some_input\n
"},{"location":"variability4tosca/tests/test-inputs-pruning-not-consumed-anymore/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat-other/","title":"inputs-unique-input-constraint-sat-other","text":""},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat-other/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nunique_input_constraint: true\ninputs:\n- one:\ntype: string_a\nconditions: false\n- one:\ntype: string_b\n- three:\ntype: string\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat-other/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\none:\ntype: string_b\nthree:\ntype: string\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed-default/","title":"inputs-unique-input-constraint-sat-pruning-consumed-default","text":""},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninput_default_condition: true\ninput_default_consistency_condition: true\ninput_default_semantic_condition: true\nproperty_default_condition: true\nunique_input_constraint: true\ninputs:\n- some_input:\ntype: string\n- some_input:\ntype: string_other\ndefault_alternative: true\nnode_templates:\ncontainer:\ntype: container\nconditions: true\nproperties:\nsome_property:\nget_input: 0\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\nsome_input:\ntype: string\nnode_templates:\ncontainer:\ntype: container\nproperties:\nsome_property:\nget_input: some_input\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed/","title":"inputs-unique-input-constraint-sat-pruning-consumed","text":""},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\ninput_default_condition: true\ninput_default_consistency_condition: true\ninput_default_semantic_condition: true\nproperty_default_condition: true\nunique_input_constraint: true\ninputs:\n- some_input:\ntype: string\n- some_input:\ntype: string_other\nnode_templates:\ncontainer:\ntype: container\nconditions: true\nproperties:\nsome_property:\nget_input: 0\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\nsome_input:\ntype: string\nnode_templates:\ncontainer:\ntype: container\nproperties:\nsome_property:\nget_input: some_input\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat/","title":"inputs-unique-input-constraint-sat","text":""},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nunique_input_constraint: true\ninputs:\n- one:\ntype: string_a\n- one:\ntype: string_b\nconditions: false\n- three:\ntype: string\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-sat/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ninputs:\none:\ntype: string_a\nthree:\ntype: string\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-unsat/","title":"inputs-unique-input-constraint-unsat","text":""},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-unsat/#description","title":"Description","text":"

UNSAT since two inputs are present with same name

"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-unsat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nunique_input_constraint: true\ninputs:\n- one:\ntype: string_a\n- one:\ntype: string_b\n- three:\ntype: string\n
"},{"location":"variability4tosca/tests/test-inputs-unique-input-constraint-unsat/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-nodes-conditional-type-default/","title":"nodes-conditional-type-default","text":""},{"location":"variability4tosca/tests/test-nodes-conditional-type-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype:\n- type_one:\nconditions: false\n- type_two:\ndefault_alternative: true\n
"},{"location":"variability4tosca/tests/test-nodes-conditional-type-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: type_two\n
"},{"location":"variability4tosca/tests/test-nodes-conditional-type/","title":"nodes-conditional-type","text":""},{"location":"variability4tosca/tests/test-nodes-conditional-type/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype:\n- type_one:\nconditions: false\n- type_two:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-nodes-conditional-type/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: type_two\n
"},{"location":"variability4tosca/tests/test-nodes-conditional/","title":"nodes-conditional","text":""},{"location":"variability4tosca/tests/test-nodes-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\none:\ntype: one\nconditions: false\nrequirements:\n- two:\nnode: two\nconditions: false\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-nodes-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-nodes-default-false-false/","title":"nodes-default-false-false","text":""},{"location":"variability4tosca/tests/test-nodes-default-false-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: false\nrelation_pruning: true\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\nnode_one:\ntype: node_one\ndefault_condition: false\nnode_two:\ntype: node_two\nconditions: false\nrequirements:\n- relation_two: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three: node_one\n
"},{"location":"variability4tosca/tests/test-nodes-default-false-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\n
"},{"location":"variability4tosca/tests/test-nodes-default-false-true/","title":"nodes-default-false-true","text":""},{"location":"variability4tosca/tests/test-nodes-default-false-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: false\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\ndefault_condition: true\nnode_two:\ntype: node_two\nconditions: false\nrequirements:\n- relation_two: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three: node_one\n
"},{"location":"variability4tosca/tests/test-nodes-default-false-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-nodes-default-host-absent/","title":"nodes-default-host-absent","text":""},{"location":"variability4tosca/tests/test-nodes-default-host-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\npruning: true\ndefault_condition_mode: host\nrequirements:\n- host:\nnode: node_two\nconditions:\ntarget_presence: SELF\nnode_two:\ntype: node_two\nconditions: false\n
"},{"location":"variability4tosca/tests/test-nodes-default-host-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-nodes-default-host-present/","title":"nodes-default-host-present","text":""},{"location":"variability4tosca/tests/test-nodes-default-host-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\npruning: true\ndefault_condition_mode: host\nrequirements:\n- host:\nnode: node_two\nconditions:\ntarget_presence: SELF\nnode_two:\ntype: node_two\nconditions: true\n
"},{"location":"variability4tosca/tests/test-nodes-default-host-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nrequirements:\n- host: node_two\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-nodes-default-true-false/","title":"nodes-default-true-false","text":""},{"location":"variability4tosca/tests/test-nodes-default-true-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\nnode_one:\ntype: node_one\ndefault_condition: false\nnode_two:\ntype: node_two\nconditions: false\nrequirements:\n- relation_two: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three: node_one\n
"},{"location":"variability4tosca/tests/test-nodes-default-true-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\n
"},{"location":"variability4tosca/tests/test-nodes-default-true-true/","title":"nodes-default-true-true","text":""},{"location":"variability4tosca/tests/test-nodes-default-true-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\ndefault_condition: true\nnode_two:\ntype: node_two\nconditions: false\nrequirements:\n- relation_two: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three: node_one\n
"},{"location":"variability4tosca/tests/test-nodes-default-true-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-absent/","title":"nodes-host-presence-absent","text":""},{"location":"variability4tosca/tests/test-nodes-host-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhost_presence: container\nrequirements:\n- host: node\nnode:\ntype: node\nconditions: false\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-false-false/","title":"nodes-host-presence-false-false","text":""},{"location":"variability4tosca/tests/test-nodes-host-presence-false-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhost_presence: container\nrequirements:\n- host_one: node_one\n- host_two: node_two\nnode_one:\ntype: node_one\nconditions: false\nnode_two:\ntype: node_two\nconditions: false\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-false-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-present/","title":"nodes-host-presence-present","text":""},{"location":"variability4tosca/tests/test-nodes-host-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhost_presence: SELF\nrequirements:\n- host: node\nnode:\ntype: node\nconditions: true\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nrequirements:\n- host: node\nnode:\ntype: node\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-true-false/","title":"nodes-host-presence-true-false","text":""},{"location":"variability4tosca/tests/test-nodes-host-presence-true-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhost_presence: SELF\nrequirements:\n- host_one: node_one\n- host_two: node_two\nnode_one:\ntype: node_one\nconditions: true\nnode_two:\ntype: node_two\nconditions: false\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-true-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nrequirements:\n- host_one: node_one\nnode_one:\ntype: node_one\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-true-true-constraint/","title":"nodes-host-presence-true-true-constraint","text":""},{"location":"variability4tosca/tests/test-nodes-host-presence-true-true-constraint/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nrelation_pruning: true\ntype_default_condition: true\nhosting_stack_constraint: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhost_presence: SELF\nrequirements:\n- host_one: node_one\n- host_two: node_two\nnode_one:\ntype: node_one\nconditions: true\nnode_two:\ntype: node_two\nconditions: true\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-true-true-constraint/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-true-true/","title":"nodes-host-presence-true-true","text":""},{"location":"variability4tosca/tests/test-nodes-host-presence-true-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nrelation_pruning: true\ntype_default_condition: true\nconstraints: false\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhost_presence: SELF\nrequirements:\n- host_one: node_one\n- host_two: node_two\nnode_one:\ntype: node_one\nconditions: true\nnode_two:\ntype: node_two\nconditions: true\n
"},{"location":"variability4tosca/tests/test-nodes-host-presence-true-true/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"container\" has more than one hosting relations\n
"},{"location":"variability4tosca/tests/test-nodes-node-presence-absent/","title":"nodes-node-presence-absent","text":""},{"location":"variability4tosca/tests/test-nodes-node-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nnode_presence: node\nnode:\ntype: node\nconditions: false\n
"},{"location":"variability4tosca/tests/test-nodes-node-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-nodes-node-presence-present/","title":"nodes-node-presence-present","text":""},{"location":"variability4tosca/tests/test-nodes-node-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nnode_presence: node\nnode:\ntype: node\nconditions: true\n
"},{"location":"variability4tosca/tests/test-nodes-node-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nnode:\ntype: node\n
"},{"location":"variability4tosca/tests/test-nodes-required-incoming-relation-constraint-sat/","title":"nodes-required-incoming-relation-constraint-sat","text":""},{"location":"variability4tosca/tests/test-nodes-required-incoming-relation-constraint-sat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nrelation_pruning: true\ntype_pruning: true\nrequired_incoming_relation_constraint: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\npersistent: true\n
"},{"location":"variability4tosca/tests/test-nodes-required-incoming-relation-constraint-sat/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-nodes-required-incoming-relation-constraint-unsat/","title":"nodes-required-incoming-relation-constraint-unsat","text":""},{"location":"variability4tosca/tests/test-nodes-required-incoming-relation-constraint-unsat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nrelation_pruning: true\ntype_pruning: true\nrequired_incoming_relation_constraint: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\npersistent: true\n
"},{"location":"variability4tosca/tests/test-nodes-required-incoming-relation-constraint-unsat/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-nodes-type-specific/","title":"nodes-type-specific","text":""},{"location":"variability4tosca/tests/test-nodes-type-specific/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_default_condition: true\ntype_specific_conditions:\nnode_types:\none:\nconditions:\nor: []\nnode_templates:\none:\ntype: one\ntwo:\ntype: two\n
"},{"location":"variability4tosca/tests/test-nodes-type-specific/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ntwo:\ntype: two\n
"},{"location":"variability4tosca/tests/test-other-benchmark/","title":"Benchmark","text":""},{"location":"variability4tosca/tests/test-other-benchmark/#description","title":"Description","text":"

To benchmark our implementation of a Variability4TOSCA processor, we run several tests. Thereby, a service template is generated and then resolved based on a seed. A seed of value n results in 2n node templates and 2n relationship templates, thus, 4n templates. For example, a seed of 10,000 generates 20,0000 node templates and 20,0000 relationship templates. When variability is resolved, n node templates and n relationship templates are removed.

"},{"location":"variability4tosca/tests/test-other-benchmark/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\nexpressions:\ncondition_0_present:\nequal:\n- variability_input: mode\n- present\ncondition_0_removed:\nequal:\n- variability_input: mode\n- absent\ncondition_1_present:\nequal:\n- variability_input: mode\n- present\ncondition_1_removed:\nequal:\n- variability_input: mode\n- absent\noptions:\ntype_default_condition: true\nnode_templates:\ncomponent_0_present:\ntype: component_type_0_present\nconditions:\nlogic_expression: condition_0_present\nrequirements:\n- relation_present:\nnode: component_1_present\nconditions:\nlogic_expression: condition_0_present\nrelationship: relationship_0_present\n- relation_removed:\nnode: component_1_removed\nconditions:\nlogic_expression: condition_0_removed\nrelationship: relationship_0_removed\ncomponent_0_removed:\ntype: component_type_0_removed\nconditions:\nlogic_expression: condition_0_removed\ncomponent_1_present:\ntype: component_type_1_present\nconditions:\nlogic_expression: condition_1_present\nrequirements:\n- relation_present:\nnode: component_0_present\nconditions:\nlogic_expression: condition_1_present\nrelationship: relationship_1_present\n- relation_removed:\nnode: component_0_removed\nconditions:\nlogic_expression: condition_1_removed\nrelationship: relationship_1_removed\ncomponent_1_removed:\ntype: component_type_1_removed\nconditions:\nlogic_expression: condition_1_removed\nrelationship_templates:\nrelationship_0_present:\ntype: relationship_type_0_present\nrelationship_0_removed:\ntype: relationship_type_0_removed\nrelationship_1_present:\ntype: relationship_type_1_present\nrelationship_1_removed:\ntype: relationship_type_1_removed\n
"},{"location":"variability4tosca/tests/test-other-benchmark/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

mode: present\n
"},{"location":"variability4tosca/tests/test-other-benchmark/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncomponent_0_present:\ntype: component_type_0_present\nrequirements:\n- relation_present:\nnode: component_1_present\nrelationship: relationship_0_present\ncomponent_1_present:\ntype: component_type_1_present\nrequirements:\n- relation_present:\nnode: component_0_present\nrelationship: relationship_1_present\nrelationship_templates:\nrelationship_0_present:\ntype: relationship_type_0_present\nrelationship_1_present:\ntype: relationship_type_1_present\n
"},{"location":"variability4tosca/tests/test-other-concat/","title":"Operator \"concat\"","text":""},{"location":"variability4tosca/tests/test-other-concat/#description","title":"Description","text":"

Assigns the value of the intrinsic function to the property \"value\" of the node \"container\".

"},{"location":"variability4tosca/tests/test-other-concat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nconcat:\n- hello\n- ' '\n- world\n
"},{"location":"variability4tosca/tests/test-other-concat/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: hello world\n
"},{"location":"variability4tosca/tests/test-other-default-variability-input/","title":"Get Variability Expression","text":""},{"location":"variability4tosca/tests/test-other-default-variability-input/#description","title":"Description","text":"

Assigns \"Miles\" to the variable \"value\" of the node \"container\" since the variability expression \"name\" resolves to \"Miles\".

"},{"location":"variability4tosca/tests/test-other-default-variability-input/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nsome_input:\ndefault:\nconcat:\n- some\n- _\n- value\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nvariability_input: some_input\n
"},{"location":"variability4tosca/tests/test-other-default-variability-input/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: some_value\n
"},{"location":"variability4tosca/tests/test-other-join/","title":"Operator \"concat\"","text":""},{"location":"variability4tosca/tests/test-other-join/#description","title":"Description","text":"

Assigns the value of the intrinsic function to the property \"value\" of the node \"container\".

"},{"location":"variability4tosca/tests/test-other-join/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\njoin:\n- - hello\n- world\n- ' '\n
"},{"location":"variability4tosca/tests/test-other-join/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: hello world\n
"},{"location":"variability4tosca/tests/test-other-logic-expression-false/","title":"other-logic-expression-false","text":""},{"location":"variability4tosca/tests/test-other-logic-expression-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\nexpressions:\nname:\nnode_presence: node_one\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nlogic_expression: name\nnode_one:\ntype: node_one\nconditions: false\n
"},{"location":"variability4tosca/tests/test-other-logic-expression-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-other-logic-expression-true/","title":"other-logic-expression-true","text":""},{"location":"variability4tosca/tests/test-other-logic-expression-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\nexpressions:\nname:\nnode_presence: node_one\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nlogic_expression: name\nnode_one:\ntype: node_one\nconditions: true\n
"},{"location":"variability4tosca/tests/test-other-logic-expression-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nnode_one:\ntype: node_one\n
"},{"location":"variability4tosca/tests/test-other-logic-value-expression/","title":"other-logic-value-expression","text":""},{"location":"variability4tosca/tests/test-other-logic-value-expression/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nconditions:\nand:\n- equal:\n- token:\n- hello world\n- ' '\n- 1\n- world\n- node_presence: node_one\nnode_one:\ntype: node_one\nconditions: true\n
"},{"location":"variability4tosca/tests/test-other-logic-value-expression/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nnode_one:\ntype: node_one\n
"},{"location":"variability4tosca/tests/test-other-nothing/","title":"other-nothing","text":""},{"location":"variability4tosca/tests/test-other-nothing/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\none:\ntype: one\nrequirements:\n- two: two\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-other-nothing/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\none:\ntype: one\nrequirements:\n- two: two\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-other-preset/","title":"other-preset","text":""},{"location":"variability4tosca/tests/test-other-preset/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\npresets:\none:\ninputs:\nmode: one\ntwo:\ninputs:\nmode: two\nexpressions:\nis_one:\nequal:\n- variability_input: mode\n- one\nis_two:\nequal:\n- variability_input: mode\n- two\noptions:\ntype_default_condition: true\nnode_templates:\none:\ntype: one\nconditions:\nlogic_expression: is_one\ntwo:\ntype: two\nconditions:\nlogic_expression: is_two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-other-preset/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-other-presets/","title":"other-presets","text":""},{"location":"variability4tosca/tests/test-other-presets/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nmode:\ntype: string\npresets:\none:\ninputs:\nmode: one\ntwo:\ninputs:\nmode: two\nexpressions:\nis_one:\nequal:\n- variability_input: mode\n- one\nis_two:\nequal:\n- variability_input: mode\n- two\noptions:\ntype_default_condition: true\nnode_templates:\none:\ntype: one\nconditions:\nlogic_expression: is_one\ntwo:\ntype: two\nconditions:\nlogic_expression: is_two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-other-presets/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-other-throw-CONTAINER/","title":"other-throw-CONTAINER","text":""},{"location":"variability4tosca/tests/test-other-throw-CONTAINER/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nCONTAINER:\ntype: container\n
"},{"location":"variability4tosca/tests/test-other-throw-CONTAINER/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node must not be named \"CONTAINER\"\n
"},{"location":"variability4tosca/tests/test-other-throw-SELF/","title":"other-throw-SELF","text":""},{"location":"variability4tosca/tests/test-other-throw-SELF/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nSELF:\ntype: SELF\n
"},{"location":"variability4tosca/tests/test-other-throw-SELF/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node must not be named \"SELF\"\n
"},{"location":"variability4tosca/tests/test-other-throw-not-unique/","title":"other-throw-not-unique","text":""},{"location":"variability4tosca/tests/test-other-throw-not-unique/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_templates:\none:\ntype: one\nconditions:\nnot:\nnode_presence: two\nrequirements:\n- host: one_host\none_host:\ntype: one_host\ntwo:\ntype: two\nconditions:\nnot:\nnode_presence: one\nrequirements:\n- host: two_host\ntwo_host:\ntype: two_host\n
"},{"location":"variability4tosca/tests/test-other-throw-not-unique/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

The result is ambiguous considering nodes (without optimization)\n
"},{"location":"variability4tosca/tests/test-other-token/","title":"Operator \"concat\"","text":""},{"location":"variability4tosca/tests/test-other-token/#description","title":"Description","text":"

Assigns the value of the intrinsic function to the property \"value\" of the node \"container\".

"},{"location":"variability4tosca/tests/test-other-token/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\ntoken:\n- hello world\n- ' '\n- 1\n
"},{"location":"variability4tosca/tests/test-other-token/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: world\n
"},{"location":"variability4tosca/tests/test-other-value-expression/","title":"Get Variability Expression","text":""},{"location":"variability4tosca/tests/test-other-value-expression/#description","title":"Description","text":"

Assigns \"Miles\" to the variable \"value\" of the node \"container\" since the variability expression \"name\" resolves to \"Miles\".

"},{"location":"variability4tosca/tests/test-other-value-expression/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\nexpressions:\nname: Miles\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nvalue_expression: name\n
"},{"location":"variability4tosca/tests/test-other-value-expression/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: Miles\n
"},{"location":"variability4tosca/tests/test-other-variability-input/","title":"Get Variability Input","text":""},{"location":"variability4tosca/tests/test-other-variability-input/#description","title":"Description","text":"

Assigns \"Miles\" to property \"value\" of the node \"container\" since the input \"name\" has the value \"Miles\".

"},{"location":"variability4tosca/tests/test-other-variability-input/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nname:\ntype: string\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- value:\nexpression:\nvariability_input: name\n
"},{"location":"variability4tosca/tests/test-other-variability-input/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

name: Miles\n
"},{"location":"variability4tosca/tests/test-other-variability-input/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nvalue: Miles\n
"},{"location":"variability4tosca/tests/test-other-version/","title":"other-version","text":""},{"location":"variability4tosca/tests/test-other-version/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\n
"},{"location":"variability4tosca/tests/test-other-version/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-other-weight/","title":"other-weight","text":""},{"location":"variability4tosca/tests/test-other-weight/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nweight: 1\n
"},{"location":"variability4tosca/tests/test-other-weight/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-outputs-conditional-list/","title":"outputs-conditional-list","text":""},{"location":"variability4tosca/tests/test-outputs-conditional-list/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutputs:\n- one:\ntype: string\n- two:\ntype: string\nconditions: false\n- three:\ntype: string\nconditions: true\n
"},{"location":"variability4tosca/tests/test-outputs-conditional-list/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\noutputs:\none:\ntype: string\nthree:\ntype: string\n
"},{"location":"variability4tosca/tests/test-outputs-conditional/","title":"outputs-conditional","text":""},{"location":"variability4tosca/tests/test-outputs-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutputs:\none:\ntype: string\ntwo:\ntype: string\nconditions: false\nthree:\ntype: string\nconditions: true\n
"},{"location":"variability4tosca/tests/test-outputs-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\noutputs:\none:\ntype: string\nthree:\ntype: string\n
"},{"location":"variability4tosca/tests/test-outputs-default/","title":"outputs-default","text":""},{"location":"variability4tosca/tests/test-outputs-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutputs:\n- one:\ntype: a\ndefault_alternative: true\n- one:\ntype: b\nconditions: false\n
"},{"location":"variability4tosca/tests/test-outputs-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\noutputs:\none:\ntype: a\n
"},{"location":"variability4tosca/tests/test-outputs-input-presence-absent/","title":"outputs-input-presence-absent","text":""},{"location":"variability4tosca/tests/test-outputs-input-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutputs:\ninput:\nconditions: false\ntype: string\nnode_templates:\ncontainer:\ntype: container\nconditions:\noutput_presence: input\n
"},{"location":"variability4tosca/tests/test-outputs-input-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-outputs-input-presence-present/","title":"outputs-input-presence-present","text":""},{"location":"variability4tosca/tests/test-outputs-input-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutputs:\ninput:\nconditions: true\ntype: string\nnode_templates:\ncontainer:\ntype: container\nconditions:\noutput_presence: input\n
"},{"location":"variability4tosca/tests/test-outputs-input-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\noutputs:\ninput:\ntype: string\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-1/","title":"outputs-pruning-not-produced-anymore-unfurl-1","text":""},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-1/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutput_default_condition: true\noutput_default_consistency_condition: true\noutput_default_semantic_condition: true\nproperty_default_condition: true\noutputs:\ninput:\ntype: string\nvalue: \"{{ '::container::some_property' | eval }}\"\nnode_templates:\ncontainer:\ntype: container\nconditions: false\nproperties:\nsome_property: some_value\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-1/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-2/","title":"outputs-pruning-not-produced-anymore-unfurl-2","text":""},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-2/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutput_default_condition: true\noutput_default_consistency_condition: true\noutput_default_semantic_condition: true\nproperty_default_condition: true\noutputs:\ninput:\ntype: string\nvalue:\neval: '::container::some_property'\nnode_templates:\ncontainer:\ntype: container\nconditions: false\nproperties:\nsome_property: some_value\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-2/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera-v3/","title":"outputs-pruning-not-produced-anymore-xopera-v3","text":""},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera-v3/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\ntopology_template:\nvariability:\noptions:\ntechnology_required: false\nenrich_technologies: false\noutputs:\ninput:\ntype: string\nvalue:\nget_property:\n- container\n- some_property\nnode_templates:\ncontainer:\ntype: container\nconditions: false\npersistent: true\nproperties:\nsome_property: some_value\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera-v3/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera/","title":"outputs-pruning-not-produced-anymore-xopera","text":""},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutput_default_condition: true\noutput_default_consistency_condition: true\noutput_default_semantic_condition: true\nproperty_default_condition: true\noutputs:\ninput:\ntype: string\nvalue:\nget_property:\n- container\n- some_property\nnode_templates:\ncontainer:\ntype: container\nconditions: false\nproperties:\nsome_property: some_value\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute-not/","title":"outputs-pruning-produced-unfurl-attribute-not","text":""},{"location":"variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute-not/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\nnode_types:\ncontainer:\nderived_from: tosca.nodes.Root\nattributes:\nsome_attribute:\ntype: string\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutput_default_condition: true\noutput_default_consistency_condition: true\noutput_default_semantic_condition: true\nproperty_default_condition: true\noutputs:\ninput:\ntype: string\nvalue: \"{{ '::container::some_attribute' | eval }}\"\nnode_templates:\ncontainer:\ntype: container\nconditions: false\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute-not/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nnode_types:\ncontainer:\nderived_from: tosca.nodes.Root\nattributes:\nsome_attribute:\ntype: string\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute/","title":"outputs-pruning-produced-unfurl-attribute","text":""},{"location":"variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\nnode_types:\ncontainer:\nderived_from: tosca.nodes.Root\nattributes:\nsome_attribute:\ntype: string\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutput_default_condition: true\noutput_default_consistency_condition: true\noutput_default_semantic_condition: true\nproperty_default_condition: true\noutputs:\ninput:\ntype: string\nvalue: \"{{ '::container::some_attribute' | eval }}\"\nnode_templates:\ncontainer:\ntype: container\nconditions: true\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nnode_types:\ncontainer:\nderived_from: tosca.nodes.Root\nattributes:\nsome_attribute:\ntype: string\ntopology_template:\noutputs:\ninput:\ntype: string\nvalue: \"{{ '::container::some_attribute' | eval }}\"\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-produced-unfurl/","title":"outputs-pruning-produced-unfurl","text":""},{"location":"variability4tosca/tests/test-outputs-pruning-produced-unfurl/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutput_default_condition: true\noutput_default_consistency_condition: true\noutput_default_semantic_condition: true\nproperty_default_condition: true\noutputs:\ninput:\ntype: string\nvalue: \"{{ '::container::some_property' | eval }}\"\nnode_templates:\ncontainer:\ntype: container\nconditions: true\nproperties:\nsome_property: some_value\n
"},{"location":"variability4tosca/tests/test-outputs-pruning-produced-unfurl/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\noutputs:\ninput:\ntype: string\nvalue: \"{{ '::container::some_property' | eval }}\"\nnode_templates:\ncontainer:\ntype: container\nproperties:\nsome_property: some_value\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-default/","title":"outputs-unique-output-constraint-sat-default","text":""},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nunique_output_constraint: true\noutputs:\n- one:\ntype: string_a\nconditions: false\n- one:\ntype: string_b\ndefault_alternative: true\n- three:\ntype: string\nconditions: true\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\noutputs:\none:\ntype: string_b\nthree:\ntype: string\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-other/","title":"outputs-unique-output-constraint-sat-other","text":""},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-other/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nunique_output_constraint: true\noutputs:\n- one:\ntype: string_a\nconditions: false\n- one:\ntype: string_b\n- three:\ntype: string\nconditions: true\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-other/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\noutputs:\none:\ntype: string_b\nthree:\ntype: string\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-not-produced-anymore-xopera/","title":"outputs-unique-output-constraint-sat-pruning-not-produced-anymore-xopera","text":""},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-not-produced-anymore-xopera/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutput_default_condition: true\noutput_default_consistency_condition: true\noutput_default_semantic_condition: true\nproperty_default_condition: true\nunique_output_constraint: true\noutputs:\n- input:\ntype: string_a\nvalue:\nget_property:\n- container\n- some_property\n- input:\ntype: string_b\nvalue:\nget_property:\n- container\n- another_property\nnode_templates:\ncontainer:\ntype: container\nconditions: false\nproperties:\n- some_property: some_value\n- another_property:\nconditions: false\nvalue: another_value\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-not-produced-anymore-xopera/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-produced-xopera/","title":"outputs-unique-output-constraint-sat-pruning-produced-xopera","text":""},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-produced-xopera/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\noutput_default_condition: true\noutput_default_consistency_condition: true\noutput_default_semantic_condition: true\nproperty_default_condition: true\nunique_output_constraint: true\noutputs:\n- input:\ntype: string_a\nvalue:\nget_property:\n- container\n- some_property\n- input:\ntype: string_b\nvalue:\nget_property:\n- container\n- another_property\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- some_property: some_value\n- another_property:\nconditions: false\nvalue: another_value\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-produced-xopera/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\noutputs:\ninput:\ntype: string_a\nvalue:\nget_property:\n- container\n- some_property\nnode_templates:\ncontainer:\ntype: container\nproperties:\nsome_property: some_value\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat/","title":"outputs-unique-output-constraint-sat","text":""},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nunique_output_constraint: true\noutputs:\n- one:\ntype: string_a\n- one:\ntype: string_b\nconditions: false\n- three:\ntype: string\nconditions: true\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-sat/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\noutputs:\none:\ntype: string_a\nthree:\ntype: string\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-unsat/","title":"outputs-unique-output-constraint-unsat","text":""},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-unsat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nunique_output_constraint: true\noutputs:\n- one:\ntype: string_a\n- one:\ntype: string_b\n- three:\ntype: string\nconditions: true\n
"},{"location":"variability4tosca/tests/test-outputs-unique-output-constraint-unsat/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-persistent-persistent-false/","title":"persistent-persistent-false","text":""},{"location":"variability4tosca/tests/test-persistent-persistent-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\npersistent_check: false\noptimization_topology: true\nhosting_stack_constraint: true\nnode_templates:\nworker:\ntype: worker\npersistent: false\nrequirements:\n- host:\nnode: vm\nvm:\ntype: vm\nrequirements:\n- host:\nnode: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-persistent-persistent-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-persistent-persistent-throw/","title":"persistent-persistent-throw","text":""},{"location":"variability4tosca/tests/test-persistent-persistent-throw/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nhosting_stack_constraint: true\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- host:\nnode: vm\nvm:\ntype: vm\nrequirements:\n- host:\nnode: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-persistent-persistent-throw/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node default condition mode \"incoming(naive)-host\" requires at least one persistent node template\n
"},{"location":"variability4tosca/tests/test-persistent-persistent-undefined/","title":"persistent-persistent-undefined","text":""},{"location":"variability4tosca/tests/test-persistent-persistent-undefined/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\npersistent_check: false\noptimization_topology: true\nhosting_stack_constraint: true\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- host:\nnode: vm\nvm:\ntype: vm\nrequirements:\n- host:\nnode: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-persistent-persistent-undefined/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-persistent-persistent/","title":"persistent-persistent","text":""},{"location":"variability4tosca/tests/test-persistent-persistent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-host\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nhosting_stack_constraint: true\nnode_templates:\nworker:\ntype: worker\npersistent: true\nrequirements:\n- host:\nnode: vm\nvm:\ntype: vm\nrequirements:\n- host:\nnode: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-persistent-persistent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nworker:\ntype: worker\nrequirements:\n- host: vm\nvm:\ntype: vm\nrequirements:\n- host: hypervisor\nhypervisor:\ntype: hypervisor\n
"},{"location":"variability4tosca/tests/test-policies-conditional/","title":"policies-conditional","text":""},{"location":"variability4tosca/tests/test-policies-conditional/#description","title":"Description","text":"
  • Removes node \"node_two\" from node templates and policy \"policy_one\" and \"policy_three\" since conditions is \"false\". - Removes policy \"policy_two\" since conditions is \"false\".
"},{"location":"variability4tosca/tests/test-policies-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nconditions: false\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- node_two\nconditions: true\n- policy_two:\ntype: policy_two\ntargets:\n- node_one\n- node_two\nconditions: false\n- policy_three:\ntype: policy_three\ntargets:\n- node_one\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- policy_three:\ntype: policy_three\ntargets:\n- node_one\n
"},{"location":"variability4tosca/tests/test-policies-default-condition-nothing/","title":"policies-default-condition-nothing","text":""},{"location":"variability4tosca/tests/test-policies-default-condition-nothing/#description","title":"Description","text":"

Do not remove policy \"policy_one\" since pruning is not forced.

"},{"location":"variability4tosca/tests/test-policies-default-condition-nothing/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\npolicy_default_condition: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\nconditions: false\nnode_two:\ntype: node_two\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\nconditions: true\n- policy_two:\ntype: policy_two\ntargets:\n- node_one\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-default-condition-nothing/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_two:\ntype: node_two\npolicies:\n- policy_one:\ntype: policy_one\ntargets: []\n- policy_two:\ntype: policy_two\ntargets:\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-default-condition/","title":"policies-default-condition","text":""},{"location":"variability4tosca/tests/test-policies-default-condition/#description","title":"Description","text":"

Remove policy \"policy_one\" since is has no present targets.

"},{"location":"variability4tosca/tests/test-policies-default-condition/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\npolicy_default_condition: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\nconditions: false\nnode_two:\ntype: node_two\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- policy_two:\ntype: policy_two\ntargets:\n- node_one\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-default-condition/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_two:\ntype: node_two\npolicies:\n- policy_two:\ntype: policy_two\ntargets:\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-absent-members/","title":"Policy Targets Absent Members","text":""},{"location":"variability4tosca/tests/test-policies-has-present-target-absent-members/#description","title":"Description","text":"

The policy \"policy_one\" targets two absent nodes and a group whose both members are absent. Thus, the policy \"policy_one\" has no present targets.

"},{"location":"variability4tosca/tests/test-policies-has-present-target-absent-members/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhas_present_target: policy_one\nnode_one:\ntype: node_one\nconditions: false\nnode_two:\ntype: node_two\nconditions: false\nnode_three:\ntype: node_three\nconditions: false\nnode_four:\ntype: node_four\nconditions: false\ngroups:\ngroup_one:\ntype: group_one\nmembers:\n- node_three\n- node_four\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- node_two\n- group_one\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-absent-members/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\ngroups:\ngroup_one:\ntype: group_one\nmembers: []\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- group_one\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-absent-nodes/","title":"Policy Targets Absent Nodes","text":""},{"location":"variability4tosca/tests/test-policies-has-present-target-absent-nodes/#description","title":"Description","text":"

The policy \"policy_one\" targets two absent nodes, thus, has no present targets.

"},{"location":"variability4tosca/tests/test-policies-has-present-target-absent-nodes/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhas_present_target: policy_one\nnode_one:\ntype: node_one\nconditions: false\nnode_two:\ntype: node_two\nconditions: false\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-absent-nodes/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\npolicies:\n- policy_one:\ntype: policy_one\ntargets: []\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-no-targets/","title":"Policy Has No Targets","text":""},{"location":"variability4tosca/tests/test-policies-has-present-target-no-targets/#description","title":"Description","text":"

The policy \"policy_one\" has no targets. Thus, the policy has no present targets and, therefore, is removed.

"},{"location":"variability4tosca/tests/test-policies-has-present-target-no-targets/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\npolicies:\n- policy_one:\ntype: policy_one\ntargets: []\nconditions:\nhas_present_target: policy_one\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-no-targets/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-present-member/","title":"Policy Targets Present Member","text":""},{"location":"variability4tosca/tests/test-policies-has-present-target-present-member/#description","title":"Description","text":"

The policy \"policy_one\" targets two absent nodes and a group which has one absent and one present node. Since one node is present, the policy \"policy_one\" has present targets.

"},{"location":"variability4tosca/tests/test-policies-has-present-target-present-member/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhas_present_target: policy_one\nnode_one:\ntype: node_one\nconditions: false\nnode_two:\ntype: node_two\nconditions: false\nnode_three:\ntype: node_three\nconditions: false\nnode_four:\ntype: node_four\nconditions: true\ngroups:\ngroup_one:\ntype: group_one\nmembers:\n- node_three\n- node_four\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- node_two\n- group_one\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-present-member/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nnode_four:\ntype: node_four\ngroups:\ngroup_one:\ntype: group_one\nmembers:\n- node_four\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- group_one\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-present-node/","title":"Policy Targets One Present Node","text":""},{"location":"variability4tosca/tests/test-policies-has-present-target-present-node/#description","title":"Description","text":"

The policy \"policy_one\" targets one absent and one present node, thus, has present targets.

"},{"location":"variability4tosca/tests/test-policies-has-present-target-present-node/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhas_present_target: policy_one\nnode_one:\ntype: node_one\nconditions: true\nnode_two:\ntype: node_two\nconditions: false\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-present-node/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nnode_one:\ntype: node_one\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-present-nodes/","title":"Policy Targets Present Nodes","text":""},{"location":"variability4tosca/tests/test-policies-has-present-target-present-nodes/#description","title":"Description","text":"

The policy \"policy_one\" targets two present nodes, thus, has present targets.

"},{"location":"variability4tosca/tests/test-policies-has-present-target-present-nodes/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nhas_present_target: policy_one\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-has-present-target-present-nodes/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-policy-presence-absent/","title":"policies-policy-presence-absent","text":""},{"location":"variability4tosca/tests/test-policies-policy-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\npolicy_presence: policy_one\npolicies:\n- policy_one:\ntype: policy_one\nconditions: false\ntargets: []\n
"},{"location":"variability4tosca/tests/test-policies-policy-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-policies-policy-presence-present/","title":"policies-policy-presence-present","text":""},{"location":"variability4tosca/tests/test-policies-policy-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\npolicy_presence: policy_one\npolicies:\n- policy_one:\ntype: policy_one\nconditions: true\ntargets: []\n
"},{"location":"variability4tosca/tests/test-policies-policy-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\npolicies:\n- policy_one:\ntype: policy_one\ntargets: []\n
"},{"location":"variability4tosca/tests/test-policies-prune/","title":"Policy Pruning","text":""},{"location":"variability4tosca/tests/test-policies-prune/#description","title":"Description","text":"

Remove policy \"policy_one\" even though assigned conditions evaluate to \"true\" since policy pruning is enabled.

"},{"location":"variability4tosca/tests/test-policies-prune/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\npolicy_pruning: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\nconditions: false\nnode_two:\ntype: node_two\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\nconditions: true\n- policy_two:\ntype: policy_two\ntargets:\n- node_one\n- node_two\n
"},{"location":"variability4tosca/tests/test-policies-prune/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_two:\ntype: node_two\npolicies:\n- policy_two:\ntype: policy_two\ntargets:\n- node_two\n
"},{"location":"variability4tosca/tests/test-properties-artifact-container-presence-absent/","title":"properties-artifact-container-presence-absent","text":""},{"location":"variability4tosca/tests/test-properties-artifact-container-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nexpected_artifact_check: false\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nartifacts:\nartifact_one:\nconditions: false\nfile: path\nproperties:\n- property_one:\nconditions:\ncontainer_presence: SELF\nvalue: 69\n
"},{"location":"variability4tosca/tests/test-properties-artifact-container-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-properties-artifact-container-presence-present/","title":"properties-artifact-container-presence-present","text":""},{"location":"variability4tosca/tests/test-properties-artifact-container-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nartifacts:\nartifact_one:\nconditions: true\nfile: path\nproperties:\n- property_one:\nconditions:\ncontainer_presence: SELF\nvalue: 69\n
"},{"location":"variability4tosca/tests/test-properties-artifact-container-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nartifacts:\nartifact_one:\ntype: tosca.artifacts.File\nfile: path\nproperties:\nproperty_one: 69\n
"},{"location":"variability4tosca/tests/test-properties-conditional/","title":"properties-conditional","text":""},{"location":"variability4tosca/tests/test-properties-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nvalue: value_one_one\nconditions: false\n- key_one:\nvalue: value_one_two\n- key_two: value_two\n- key_three: value_three\n- key_four:\nvalue: value_four\nconditions: true\nrequirements:\n- connects_to:\nnode: node_two\nrelationship: relation_one\nartifacts:\nartifact_one:\nproperties:\n- property_artifact_one_one:\nvalue: value_artifact_one_one\nconditions: false\n- property_artifact_one_one:\nvalue: value_artifact_one_two\nconditions: true\nnode_two:\ntype: node_two\nrelationship_templates:\nrelation_one:\ntype: relation_one\nproperties:\n- key_one:\nvalue: value_one_one\nconditions: false\n- key_one:\nvalue: value_one_two\n- key_two: value_two\n- key_three: value_three\n- key_four:\nvalue: value_four\nconditions: true\ngroups:\ngroup_one:\ntype: group_one\nmembers:\n- node_one\nproperties:\n- property_group_one_one:\nvalue: value_group_one_one\nconditions: false\n- property_group_one_one:\nvalue: value_group_one_two\nconditions: true\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\nproperties:\n- property_policy_one_one:\nvalue: value_policy_one_one\nconditions: false\n- property_policy_one_one:\nvalue: value_policy_one_two\nconditions: true\n
"},{"location":"variability4tosca/tests/test-properties-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one: value_one_two\nkey_two: value_two\nkey_three: value_three\nkey_four: value_four\nrequirements:\n- connects_to:\nnode: node_two\nrelationship: relation_one\nartifacts:\nartifact_one:\ntype: tosca.artifacts.File\nproperties:\nproperty_artifact_one_one: value_artifact_one_two\nnode_two:\ntype: node_two\nrelationship_templates:\nrelation_one:\ntype: relation_one\nproperties:\nkey_one: value_one_two\nkey_two: value_two\nkey_three: value_three\nkey_four: value_four\ngroups:\ngroup_one:\ntype: group_one\nmembers:\n- node_one\nproperties:\nproperty_group_one_one: value_group_one_two\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\nproperties:\nproperty_policy_one_one: value_policy_one_two\n
"},{"location":"variability4tosca/tests/test-properties-default-alternative-false/","title":"properties-default-alternative-false","text":""},{"location":"variability4tosca/tests/test-properties-default-alternative-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nvalue: value_one_one\nconditions: false\n- key_one:\nvalue: value_one_two\nconditions: false\n- key_one:\nvalue: value_one_three\ndefault_alternative: true\nnode_two:\ntype: node_two\nproperties:\n- key_two:\nvalue: value_two_one\nconditions: false\n- key_two:\nvalue: value_two_two\nconditions: true\n- key_two:\nvalue: value_two_three\ndefault_alternative: true\n
"},{"location":"variability4tosca/tests/test-properties-default-alternative-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one: value_one_three\nnode_two:\ntype: node_two\nproperties:\nkey_two: value_two_two\n
"},{"location":"variability4tosca/tests/test-properties-default-alternative/","title":"properties-default-alternative","text":""},{"location":"variability4tosca/tests/test-properties-default-alternative/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nvalue: value_one_one\nconditions: false\n- key_one:\nvalue: value_one_two\nconditions: false\n- key_one:\nvalue: value_one_three\ndefault_alternative: false\nnode_two:\ntype: node_two\nproperties:\n- key_two:\nvalue: value_two_one\nconditions: false\n- key_two:\nvalue: value_two_two\nconditions: true\n- key_two:\nvalue: value_two_three\ndefault_alternative: true\n
"},{"location":"variability4tosca/tests/test-properties-default-alternative/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nproperties:\nkey_two: value_two_two\n
"},{"location":"variability4tosca/tests/test-properties-default-condition/","title":"properties-default-condition","text":""},{"location":"variability4tosca/tests/test-properties-default-condition/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nproperty_default_condition: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one: value_one\nconditions: false\n
"},{"location":"variability4tosca/tests/test-properties-default-condition/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-properties-expression/","title":"properties-expression","text":""},{"location":"variability4tosca/tests/test-properties-expression/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nsome_input:\ntype: string\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nexpression:\nvariability_input: some_input\n
"},{"location":"variability4tosca/tests/test-properties-expression/#variability-inputs","title":"Variability Inputs","text":"

When resolving variability, the following variability inputs shall be used.

some_input: some_value\n
"},{"location":"variability4tosca/tests/test-properties-expression/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one: some_value\n
"},{"location":"variability4tosca/tests/test-properties-list-another/","title":"properties-list-another","text":""},{"location":"variability4tosca/tests/test-properties-list-another/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nvalue: value_one_one\nconditions: false\n- key_one:\n- value_one_two\n- value_one_three\n
"},{"location":"variability4tosca/tests/test-properties-list-another/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one:\n- value_one_two\n- value_one_three\n
"},{"location":"variability4tosca/tests/test-properties-list/","title":"properties-list","text":""},{"location":"variability4tosca/tests/test-properties-list/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nvalue: value_one_one\nconditions: false\n- key_one:\nvalue:\n- value_one_two\n- value_one_three\nconditions: true\n
"},{"location":"variability4tosca/tests/test-properties-list/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one:\n- value_one_two\n- value_one_three\n
"},{"location":"variability4tosca/tests/test-properties-map-another/","title":"properties-map-another","text":""},{"location":"variability4tosca/tests/test-properties-map-another/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nvalue: value_one_one\nconditions: false\n- key_one:\nsome_key: some_value\n
"},{"location":"variability4tosca/tests/test-properties-map-another/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one:\nsome_key: some_value\n
"},{"location":"variability4tosca/tests/test-properties-map/","title":"properties-map","text":""},{"location":"variability4tosca/tests/test-properties-map/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nvalue: value_one_one\nconditions: false\n- key_one:\nvalue:\nsome_key: some_value\nconditions: true\n
"},{"location":"variability4tosca/tests/test-properties-map/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one:\nsome_key: some_value\n
"},{"location":"variability4tosca/tests/test-properties-node-container-presence-absent/","title":"properties-node-container-presence-absent","text":""},{"location":"variability4tosca/tests/test-properties-node-container-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- property_one:\nconditions:\ncontainer_presence: SELF\nvalue: 69\nconditions: false\n
"},{"location":"variability4tosca/tests/test-properties-node-container-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-properties-node-container-presence-present/","title":"properties-node-container-presence-present","text":""},{"location":"variability4tosca/tests/test-properties-node-container-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- property_one:\nconditions:\ncontainer_presence: SELF\nvalue: 69\nconditions: true\n
"},{"location":"variability4tosca/tests/test-properties-node-container-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nproperty_one: 69\n
"},{"location":"variability4tosca/tests/test-properties-node-node-presence-CONTAINER-absent/","title":"properties-node-node-presence-CONTAINER-absent","text":""},{"location":"variability4tosca/tests/test-properties-node-node-presence-CONTAINER-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- property_one:\nconditions:\nnode_presence: CONTAINER\nvalue: 69\nconditions: false\n
"},{"location":"variability4tosca/tests/test-properties-node-node-presence-CONTAINER-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-properties-node-node-presence-CONTAINER-present/","title":"properties-node-node-presence-CONTAINER-present","text":""},{"location":"variability4tosca/tests/test-properties-node-node-presence-CONTAINER-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- property_one:\nconditions:\nnode_presence: CONTAINER\nvalue: 69\nconditions: true\n
"},{"location":"variability4tosca/tests/test-properties-node-node-presence-CONTAINER-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nproperty_one: 69\n
"},{"location":"variability4tosca/tests/test-properties-node-property-presence-number-absent/","title":"properties-node-property-presence-number-absent","text":""},{"location":"variability4tosca/tests/test-properties-node-property-presence-number-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- property_one:\nconditions: false\nvalue: 69\nconditions:\nnode_property_presence:\n- container\n- 0\n
"},{"location":"variability4tosca/tests/test-properties-node-property-presence-number-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-properties-node-property-presence-number-present/","title":"properties-node-property-presence-number-present","text":""},{"location":"variability4tosca/tests/test-properties-node-property-presence-number-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- property_one:\nconditions: true\nvalue: 69\nconditions:\nnode_property_presence:\n- container\n- 0\n
"},{"location":"variability4tosca/tests/test-properties-node-property-presence-number-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nproperty_one: 69\n
"},{"location":"variability4tosca/tests/test-properties-node-property-presence-string-absent/","title":"properties-node-property-presence-string-absent","text":""},{"location":"variability4tosca/tests/test-properties-node-property-presence-string-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- property_one:\nconditions: false\nvalue: 69\nconditions:\nnode_property_presence:\n- container\n- property_one\n
"},{"location":"variability4tosca/tests/test-properties-node-property-presence-string-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-properties-node-property-presence-string-present/","title":"properties-node-property-presence-string-present","text":""},{"location":"variability4tosca/tests/test-properties-node-property-presence-string-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\n- property_one:\nconditions: true\nvalue: 69\nconditions:\nnode_property_presence:\n- container\n- property_one\n
"},{"location":"variability4tosca/tests/test-properties-node-property-presence-string-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nproperties:\nproperty_one: 69\n
"},{"location":"variability4tosca/tests/test-properties-properties/","title":"properties-properties","text":""},{"location":"variability4tosca/tests/test-properties-properties/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nproperty_pruning: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nvalue: value_one\nconditions: true\nconditions: false\n
"},{"location":"variability4tosca/tests/test-properties-properties/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-properties-relation-container-presence-absent/","title":"properties-relation-container-presence-absent","text":""},{"location":"variability4tosca/tests/test-properties-relation-container-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\ncontainer:\ntype: container\nrequirements:\n- relation_one:\nnode: container\nrelationship: relation_one\nconditions: false\nrelationship_templates:\nrelation_one:\ntype: relation_one\nproperties:\n- property_one:\nconditions:\ncontainer_presence: SELF\nvalue: 69\n
"},{"location":"variability4tosca/tests/test-properties-relation-container-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\n
"},{"location":"variability4tosca/tests/test-properties-relation-container-presence-present/","title":"properties-relation-container-presence-present","text":""},{"location":"variability4tosca/tests/test-properties-relation-container-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nrequirements:\n- relation_one:\nnode: container\nrelationship: relation_one\nconditions: true\nrelationship_templates:\nrelation_one:\ntype: relation_one\nproperties:\n- property_one:\nconditions:\ncontainer_presence: SELF\nvalue: 69\n
"},{"location":"variability4tosca/tests/test-properties-relation-container-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nrequirements:\n- relation_one:\nnode: container\nrelationship: relation_one\nrelationship_templates:\nrelation_one:\ntype: relation_one\nproperties:\nproperty_one: 69\n
"},{"location":"variability4tosca/tests/test-properties-throw-ambiguous-property/","title":"properties-throw-ambiguous-property","text":""},{"location":"variability4tosca/tests/test-properties-throw-ambiguous-property/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one: value_one\n- key_one: value_one\n- key_two: value_two\n
"},{"location":"variability4tosca/tests/test-properties-throw-ambiguous-property/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Property \"key_one@1\" of node \"node_one\" is ambiguous\n
"},{"location":"variability4tosca/tests/test-properties-throw-missing-property-container/","title":"properties-throw-missing-property-container","text":""},{"location":"variability4tosca/tests/test-properties-throw-missing-property-container/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one: value_one\nconditions: false\n
"},{"location":"variability4tosca/tests/test-properties-throw-missing-property-container/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Container of property \"key_one@0\" of node \"node_one\" does not exist\n
"},{"location":"variability4tosca/tests/test-properties-throw-multiple-default/","title":"properties-throw-multiple-default","text":""},{"location":"variability4tosca/tests/test-properties-throw-multiple-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nvalue: value_one_one\nconditions: false\n- key_one:\nvalue: value_one_two\nconditions: false\n- key_one:\nvalue: value_one_three\ndefault_alternative: true\n- key_one:\nvalue: value_one_four\ndefault_alternative: true\nnode_two:\ntype: node_two\nproperties:\n- key_two:\nvalue: value_two_one\nconditions: false\n- key_two:\nvalue: value_two_two\nconditions: true\n- key_two:\nvalue: value_two_three\ndefault_alternative: true\n
"},{"location":"variability4tosca/tests/test-properties-throw-multiple-default/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Property \"key_one@0\" of node \"node_one\" has multiple defaults\n
"},{"location":"variability4tosca/tests/test-properties-unique-property-constraint-sat/","title":"properties-unique-property-constraint-sat","text":""},{"location":"variability4tosca/tests/test-properties-unique-property-constraint-sat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nunique_property_constraint: true\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one:\nconditions: false\nvalue: value_one_a\n- key_one: value_one_b\n- key_two: value_two\n
"},{"location":"variability4tosca/tests/test-properties-unique-property-constraint-sat/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\nkey_one: value_one_b\nkey_two: value_two\n
"},{"location":"variability4tosca/tests/test-properties-unique-property-constraint-unsat/","title":"properties-unique-property-constraint-unsat","text":""},{"location":"variability4tosca/tests/test-properties-unique-property-constraint-unsat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nunique_property_constraint: true\nnode_templates:\nnode_one:\ntype: node_one\nproperties:\n- key_one: value_one_a\n- key_one: value_one_b\n- key_two: value_two\n
"},{"location":"variability4tosca/tests/test-properties-unique-property-constraint-unsat/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-pruning-alpha-default-naive/","title":"pruning-alpha-default-naive","text":""},{"location":"variability4tosca/tests/test-pruning-alpha-default-naive/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"naive\" default condition of nodes is enabled

  • \"naive\" allows that target is removed

  • thus, also relation is removed
"},{"location":"variability4tosca/tests/test-pruning-alpha-default-naive/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incomingnaive\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\noptimization_topology: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-alpha-default-naive/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-alpha-default/","title":"pruning-alpha-default","text":""},{"location":"variability4tosca/tests/test-pruning-alpha-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled
"},{"location":"variability4tosca/tests/test-pruning-alpha-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-alpha-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-alpha-pruning/","title":"pruning-alpha-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-alpha-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled
"},{"location":"variability4tosca/tests/test-pruning-alpha-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-alpha-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-alpha/","title":"pruning-artifact-default-alpha","text":""},{"location":"variability4tosca/tests/test-pruning-artifact-default-alpha/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: artifact\nartifact_default_condition: true\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-alpha/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container_type\nartifacts:\nartifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\nartifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-bravo/","title":"pruning-artifact-default-bravo","text":""},{"location":"variability4tosca/tests/test-pruning-artifact-default-bravo/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: artifact\nartifact_default_condition: true\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-bravo/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-charlie/","title":"pruning-artifact-default-charlie","text":""},{"location":"variability4tosca/tests/test-pruning-artifact-default-charlie/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: artifact\nartifact_default_condition: true\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-charlie/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container_type\nartifacts:\nartifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-delta/","title":"pruning-artifact-default-delta","text":""},{"location":"variability4tosca/tests/test-pruning-artifact-default-delta/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: artifact\nartifact_default_condition: true\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container_type\nconditions: false\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-delta/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-naive/","title":"pruning-artifact-default-naive","text":""},{"location":"variability4tosca/tests/test-pruning-artifact-default-naive/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: artifactnaive\nartifact_default_condition: true\ntype_default_condition: true\noptimization_topology: true\nnode_templates:\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\n
"},{"location":"variability4tosca/tests/test-pruning-artifact-default-naive/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-pruning-bravo-default/","title":"pruning-bravo-default","text":""},{"location":"variability4tosca/tests/test-pruning-bravo-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • target is \"true\" assigned

"},{"location":"variability4tosca/tests/test-pruning-bravo-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\nconditions: true\n
"},{"location":"variability4tosca/tests/test-pruning-bravo-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-bravo-pruning/","title":"pruning-bravo-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-bravo-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • target is \"true\" assigned

"},{"location":"variability4tosca/tests/test-pruning-bravo-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\nconditions: true\n
"},{"location":"variability4tosca/tests/test-pruning-bravo-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-charlie-default/","title":"pruning-charlie-default","text":""},{"location":"variability4tosca/tests/test-pruning-charlie-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • target is \"false\" assigned

  • thus, target and relation are removed
"},{"location":"variability4tosca/tests/test-pruning-charlie-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-charlie-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-charlie-pruning/","title":"pruning-charlie-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-charlie-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • target is \"false\" assigned

  • thus, target and relation are removed
"},{"location":"variability4tosca/tests/test-pruning-charlie-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-charlie-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-delta-default/","title":"pruning-delta-default","text":""},{"location":"variability4tosca/tests/test-pruning-delta-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • \"true\" is assigned to relation

"},{"location":"variability4tosca/tests/test-pruning-delta-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: true\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-delta-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-delta-pruning/","title":"pruning-delta-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-delta-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • \"true\" is assigned to relation

"},{"location":"variability4tosca/tests/test-pruning-delta-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: true\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-delta-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-echo-default/","title":"pruning-echo-default","text":""},{"location":"variability4tosca/tests/test-pruning-echo-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • \"false\" is assigned to relation

  • thus, relation is removed
  • thus, target is removed
"},{"location":"variability4tosca/tests/test-pruning-echo-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-echo-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-echo-pruning/","title":"pruning-echo-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-echo-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • \"false\" is assigned to relation

  • thus, relation is removed
  • thus, target is removed
"},{"location":"variability4tosca/tests/test-pruning-echo-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-echo-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-foxtrott-default/","title":"pruning-foxtrott-default","text":""},{"location":"variability4tosca/tests/test-pruning-foxtrott-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • \"false\" is assigned to relation

  • \"true\" is assigned to target
  • thus, relation is removed
  • but target is preserved
"},{"location":"variability4tosca/tests/test-pruning-foxtrott-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nconditions: true\n
"},{"location":"variability4tosca/tests/test-pruning-foxtrott-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-foxtrott-pruning/","title":"pruning-foxtrott-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-foxtrott-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • \"false\" is assigned to relation

  • \"true\" is assigned to target
  • thus, relation is removed

  • target is also removed due to pruning

"},{"location":"variability4tosca/tests/test-pruning-foxtrott-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nconditions: true\n
"},{"location":"variability4tosca/tests/test-pruning-foxtrott-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-hotel-default/","title":"pruning-hotel-default","text":""},{"location":"variability4tosca/tests/test-pruning-hotel-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • \"true\" is assigned to source

"},{"location":"variability4tosca/tests/test-pruning-hotel-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nconditions: true\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-hotel-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-hotel-pruning/","title":"pruning-hotel-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-hotel-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • \"true\" is assigned to source

"},{"location":"variability4tosca/tests/test-pruning-hotel-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nconditions: true\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-hotel-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-alpha/","title":"pruning-incoming-artifact-pruning-alpha","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-alpha/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: container\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-alpha/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: container\ncontainer:\ntype: container_type\nartifacts:\nartifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\nartifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-bravo/","title":"pruning-incoming-artifact-pruning-bravo","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-bravo/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: container\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-bravo/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-charlie/","title":"pruning-incoming-artifact-pruning-charlie","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-charlie/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: container\nconditions: false\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-charlie/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-delta/","title":"pruning-incoming-artifact-pruning-delta","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-delta/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: container\nconditions: false\ntource:\ntype: tource\nrequirements:\n- relation:\nnode: container\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-delta/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\ntource:\ntype: tource\nrequirements:\n- relation: container\ncontainer:\ntype: container_type\nartifacts:\nartifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-echo/","title":"pruning-incoming-artifact-pruning-echo","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-echo/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\nnode_templates:\nsource:\ntype: source\nconditions: false\nrequirements:\n- relation:\nnode: container\ntource:\ntype: tource\nrequirements:\n- relation:\nnode: container\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-echo/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ntource:\ntype: tource\nrequirements:\n- relation: container\ncontainer:\ntype: container_type\nartifacts:\nartifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-foxtrott/","title":"pruning-incoming-artifact-pruning-foxtrott","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-foxtrott/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: container\nconditions: false\ntource:\ntype: tource\nrequirements:\n- relation:\nnode: container\nconditions: false\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-foxtrott/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\ntource:\ntype: tource\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-golf/","title":"pruning-incoming-artifact-pruning-golf","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-golf/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: container\ntource:\ntype: tource\nrequirements:\n- relation:\nnode: container\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\nconditions: false\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-golf/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\ntource:\ntype: tource\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-hotel/","title":"pruning-incoming-artifact-pruning-hotel","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-hotel/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifact\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: container\ntource:\ntype: tource\nrequirements:\n- relation:\nnode: container\nconditions: true\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\nconditions: false\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-hotel/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\ntource:\ntype: tource\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-alpha/","title":"pruning-incoming-artifact-pruning-naive-alpha","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-alpha/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifactnaive\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\noptimization_topology: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: container\nconditions: true\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-alpha/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-bravo/","title":"pruning-incoming-artifact-pruning-naive-bravo","text":""},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-bravo/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming-artifactnaive\nnode_pruning: true\nartifact_default_condition: true\nartifact_pruning: true\nrelation_default_condition: true\nrelation_pruning: true\ntype_default_condition: true\ntype_pruning: true\noptimization_topology: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: container\ncontainer:\ntype: container_type\nartifacts:\n- artifact_one:\ntype: artifact_one_type\nfile: artifact_one_file\n- artifact_two:\ntype: artifact_two_type\nfile: artifact_two_file\n
"},{"location":"variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-bravo/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-india-default/","title":"pruning-india-default","text":""},{"location":"variability4tosca/tests/test-pruning-india-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • \"false\" is assigned to source

  • thus, relation is removed
  • thus, target is removed
"},{"location":"variability4tosca/tests/test-pruning-india-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nconditions: false\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-india-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-pruning-india-pruning/","title":"pruning-india-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-india-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • \"false\" is assigned to source

  • thus, relation is removed
  • thus, target is removed
"},{"location":"variability4tosca/tests/test-pruning-india-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nconditions: false\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-india-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-pruning-juliett-default/","title":"pruning-juliett-default","text":""},{"location":"variability4tosca/tests/test-pruning-juliett-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • In addition, node \"another\" has a relation \"another\" on target

  • \"false\" is assigned to relation

  • thus, relation is removed
  • target is preserved since relation \"another\" is present
"},{"location":"variability4tosca/tests/test-pruning-juliett-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nanother:\ntype: another\nrequirements:\n- another:\nnode: target\n
"},{"location":"variability4tosca/tests/test-pruning-juliett-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\ntarget:\ntype: target\nanother:\ntype: another\nrequirements:\n- another: target\n
"},{"location":"variability4tosca/tests/test-pruning-juliett-pruning/","title":"pruning-juliett-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-juliett-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • In addition, node \"another\" has a relation \"another\" on target

  • \"false\" is assigned to relation

  • thus, relation is removed
  • target is preserved since relation \"another\" is present
"},{"location":"variability4tosca/tests/test-pruning-juliett-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nanother:\ntype: another\nrequirements:\n- another:\nnode: target\n
"},{"location":"variability4tosca/tests/test-pruning-juliett-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\ntarget:\ntype: target\nanother:\ntype: another\nrequirements:\n- another: target\n
"},{"location":"variability4tosca/tests/test-pruning-kilo-default/","title":"pruning-kilo-default","text":""},{"location":"variability4tosca/tests/test-pruning-kilo-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • In addition, target has a relation \"another\" on another node \"another\"

  • \"false\" is assigned to relation \"relation\"

  • thus, relation \"relation\" is removed
  • thus, node \"target\" is removed
  • thus, relation \"another\" is removed
  • thus, node \"another\" is removed
"},{"location":"variability4tosca/tests/test-pruning-kilo-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nrequirements:\n- another:\nnode: another\nanother:\ntype: another\n
"},{"location":"variability4tosca/tests/test-pruning-kilo-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-kilo-pruning/","title":"pruning-kilo-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-kilo-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • In addition, target has a relation \"another\" on another node \"another\"

  • \"false\" is assigned to relation \"relation\"

  • thus, relation \"relation\" is removed
  • thus, node \"target\" is removed
  • thus, relation \"another\" is removed
  • thus, node \"another\" is removed
"},{"location":"variability4tosca/tests/test-pruning-kilo-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nrequirements:\n- another:\nnode: another\nanother:\ntype: another\n
"},{"location":"variability4tosca/tests/test-pruning-kilo-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-lima-default/","title":"pruning-lima-default","text":""},{"location":"variability4tosca/tests/test-pruning-lima-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • In addition, target has a relation \"another\" on another node \"another\"

  • \"false\" is assigned to relation \"relation\"

  • thus, relation \"relation\" is removed
  • thus, node \"target\" is removed
  • thus, relation \"another\" is removed

  • node \"another\" is preserved since \"true\" is assigned

"},{"location":"variability4tosca/tests/test-pruning-lima-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nrequirements:\n- another:\nnode: another\nanother:\ntype: another\nconditions: true\n
"},{"location":"variability4tosca/tests/test-pruning-lima-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nanother:\ntype: another\n
"},{"location":"variability4tosca/tests/test-pruning-lima-pruning/","title":"pruning-lima-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-lima-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • In addition, target has a relation \"another\" on another node \"another\"

  • \"false\" is assigned to relation \"relation\"

  • thus, relation \"relation\" is removed
  • thus, node \"target\" is removed
  • thus, relation \"another\" is removed

  • node \"another\" is also removed due to pruning

"},{"location":"variability4tosca/tests/test-pruning-lima-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nrequirements:\n- another:\nnode: another\nanother:\ntype: another\nconditions: true\n
"},{"location":"variability4tosca/tests/test-pruning-lima-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\n
"},{"location":"variability4tosca/tests/test-pruning-mike-default/","title":"pruning-mike-default","text":""},{"location":"variability4tosca/tests/test-pruning-mike-default/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" default condition of relations is enabled
  • \"relation\" default condition of nodes is enabled

  • In addition, target has a relation \"another\" on another node \"another\"

  • Moreover, node \"ananother\" has a relation on \"another\"

  • \"false\" is assigned to relation \"relation\"

  • thus, relation \"relation\" is removed
  • thus, node \"target\" is removed
  • thus, relation \"another\" is removed

  • node \"another\" is preserved since node \"ananother\" has a requirement on it

"},{"location":"variability4tosca/tests/test-pruning-mike-default/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nrequirements:\n- another:\nnode: another\nanother:\ntype: another\nananother:\ntype: ananother\nrequirements:\n- ananother:\nnode: another\n
"},{"location":"variability4tosca/tests/test-pruning-mike-default/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nanother:\ntype: another\nananother:\ntype: ananother\nrequirements:\n- ananother: another\n
"},{"location":"variability4tosca/tests/test-pruning-mike-pruning/","title":"pruning-mike-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-mike-pruning/#description","title":"Description","text":"
  • Node \"source\" has a relation \"relation\" to node \"target\"
  • \"source-target\" pruning of relations is enabled
  • \"relation\" pruning of nodes is enabled

  • In addition, target has a relation \"another\" on another node \"another\"

  • Moreover, node \"ananother\" has a relation on \"another\"

  • \"false\" is assigned to relation \"relation\"

  • thus, relation \"relation\" is removed
  • thus, node \"target\" is removed
  • thus, relation \"another\" is removed

  • node \"another\" is preserved since node \"ananother\" has a requirement on it

"},{"location":"variability4tosca/tests/test-pruning-mike-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\nrequirements:\n- another:\nnode: another\nanother:\ntype: another\nananother:\ntype: ananother\nrequirements:\n- ananother:\nnode: another\n
"},{"location":"variability4tosca/tests/test-pruning-mike-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nanother:\ntype: another\nananother:\ntype: ananother\nrequirements:\n- ananother: another\n
"},{"location":"variability4tosca/tests/test-pruning-outgoing-relation-absent/","title":"pruning-outgoing-relation-absent","text":""},{"location":"variability4tosca/tests/test-pruning-outgoing-relation-absent/#description","title":"Description","text":"
  • The node \"source\" has an outgoing relation \"relation\" to node \"target\".
  • The node default condition mode \"outgoing\" is used.
  • Thus, there is no circle.

  • \"relation\" is absent

  • Thus, \"source\" is absent
  • \"target\" is always present
"},{"location":"variability4tosca/tests/test-pruning-outgoing-relation-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: outgoing\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: false\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-outgoing-relation-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-outgoing-relation-present/","title":"pruning-outgoing-relation-present","text":""},{"location":"variability4tosca/tests/test-pruning-outgoing-relation-present/#description","title":"Description","text":"
  • The node \"source\" has an outgoing relation \"relation\" to node \"target\".
  • The node default condition mode \"outgoing\" is used.
  • Thus, there is no circle.

  • \"relation\" is present

  • Thus, \"source\" is present
  • \"target\" is always present
"},{"location":"variability4tosca/tests/test-pruning-outgoing-relation-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: outgoing\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\nconditions: true\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-outgoing-relation-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-outgoing-target-absent/","title":"pruning-outgoing-target-absent","text":""},{"location":"variability4tosca/tests/test-pruning-outgoing-target-absent/#description","title":"Description","text":"
  • The node \"source\" has an outgoing relation \"relation\" to node \"target\".
  • The node default condition mode \"outgoing\" is used.
  • Thus, there is no circle.

  • \"target\" is absent

  • Thus, \"relation\" is absent
  • Thus, \"source\" is absent
"},{"location":"variability4tosca/tests/test-pruning-outgoing-target-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: outgoing\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\nconditions: false\n
"},{"location":"variability4tosca/tests/test-pruning-outgoing-target-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-pruning-outgoing-target-present/","title":"pruning-outgoing-target-present","text":""},{"location":"variability4tosca/tests/test-pruning-outgoing-target-present/#description","title":"Description","text":"
  • The node \"source\" has an outgoing relation \"relation\" to node \"target\".
  • The node default condition mode \"outgoing\" is used.
  • Thus, there is no circle.
  • Nothing is removed.
"},{"location":"variability4tosca/tests/test-pruning-outgoing-target-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: outgoing\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-outgoing-target-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-outgoingnaive-target-present/","title":"pruning-outgoingnaive-target-present","text":""},{"location":"variability4tosca/tests/test-pruning-outgoingnaive-target-present/#description","title":"Description","text":"
  • The node \"source\" has an outgoing relation \"relation\" to node \"target\".
  • The node default condition mode \"outgoingnaive\" is used.
  • Thus, there is a circle: \"source\" checks if \"relation\" is present and \"relation\" checks if \"source\" is present.
  • Thus, \"source\" and \"relation\" can be removed.
  • \"target\" is present since it has no default condition assigned.
"},{"location":"variability4tosca/tests/test-pruning-outgoingnaive-target-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: outgoingnaive\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\ntype_default_condition: true\nexpected_incoming_relation_check: false\noptimization_topology: true\nnode_templates:\nsource:\ntype: source\nrequirements:\n- relation:\nnode: target\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-outgoingnaive-target-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ntarget:\ntype: target\n
"},{"location":"variability4tosca/tests/test-pruning-pruning-false-false/","title":"pruning-pruning-false-false","text":""},{"location":"variability4tosca/tests/test-pruning-pruning-false-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\nnode_one:\ntype: node_one\npruning: false\nconditions: true\nnode_two:\ntype: node_two\nconditions: false\nrequirements:\n- relation_two: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three: node_one\n
"},{"location":"variability4tosca/tests/test-pruning-pruning-false-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\n
"},{"location":"variability4tosca/tests/test-pruning-pruning-false-true/","title":"pruning-pruning-false-true","text":""},{"location":"variability4tosca/tests/test-pruning-pruning-false-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\npruning: true\nconditions: true\nnode_two:\ntype: node_two\nconditions: false\nrequirements:\n- relation_two: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three: node_one\n
"},{"location":"variability4tosca/tests/test-pruning-pruning-false-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-pruning-pruning-true-false/","title":"pruning-pruning-true-false","text":""},{"location":"variability4tosca/tests/test-pruning-pruning-true-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\nnode_one:\ntype: node_one\npruning: false\nconditions: true\nnode_two:\ntype: node_two\nconditions: false\nrequirements:\n- relation_two: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three: node_one\n
"},{"location":"variability4tosca/tests/test-pruning-pruning-true-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\n
"},{"location":"variability4tosca/tests/test-pruning-pruning-true-true/","title":"pruning-pruning-true-true","text":""},{"location":"variability4tosca/tests/test-pruning-pruning-true-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_pruning: true\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\npruning: true\nconditions: true\nnode_two:\ntype: node_two\nconditions: false\nrequirements:\n- relation_two: node_one\nnode_three:\ntype: node_three\nconditions: false\nrequirements:\n- relation_three: node_one\n
"},{"location":"variability4tosca/tests/test-pruning-pruning-true-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-pruning-pruning/","title":"pruning-pruning","text":""},{"location":"variability4tosca/tests/test-pruning-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nnode_default_condition: true\nnode_default_condition_mode: incoming\nnode_pruning: true\nrelation_default_condition: true\nrelation_default_condition_mode: source-target\nrelation_pruning: true\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\nconditions: false\nrequirements:\n- relation_one_one:\nnode: node_three\nconditions: false\nnode_two:\ntype: node_two\nconditions: false\nrequirements:\n- relation_two_one: node_three\n- relation_two_two: node_five\nnode_three:\ntype: node_three\nconditions: true\nnode_four:\ntype: node_four\nnode_five:\ntype: node_five\nnode_six:\ntype: node_six\nrequirements:\n- relation_six_one: node_five\n
"},{"location":"variability4tosca/tests/test-pruning-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_four:\ntype: node_four\nnode_five:\ntype: node_five\nnode_six:\ntype: node_six\nrequirements:\n- relation_six_one: node_five\n
"},{"location":"variability4tosca/tests/test-pruning-relation/","title":"Relation Pruning","text":""},{"location":"variability4tosca/tests/test-pruning-relation/#description","title":"Description","text":"

Node \"node_one\" is not present. The relation \"relation_two\" is also not present even though assigned conditions evaluate to \"true\" since relation pruning is enabled.

"},{"location":"variability4tosca/tests/test-pruning-relation/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nrelation_pruning: true\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\nnode_one:\ntype: node_one\nconditions: false\nrequirements:\n- relation_two:\nnode: node_two\nconditions: true\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-pruning-relation/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-relationships-conditional/","title":"relationships-conditional","text":""},{"location":"variability4tosca/tests/test-relationships-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\none:\ntype: one\nconditions: false\nrequirements:\n- two:\nnode: two\nconditions: false\nrelationship: rtwo\ntwo:\ntype: two\nrequirements:\n- three:\nnode: three\nrelationship: rthree\nthree:\ntype: three\nrelationship_templates:\nrtwo:\ntype: rtwo\nrthree:\ntype: tthree\n
"},{"location":"variability4tosca/tests/test-relationships-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ntwo:\ntype: two\nrequirements:\n- three:\nnode: three\nrelationship: rthree\nthree:\ntype: three\nrelationship_templates:\nrthree:\ntype: tthree\n
"},{"location":"variability4tosca/tests/test-relationships-throw-multiple/","title":"relationships-throw-multiple","text":""},{"location":"variability4tosca/tests/test-relationships-throw-multiple/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\nnode_one:\ntype: node_one\nrequirements:\n- two:\nnode: node_two\nrelationship: relation_one\nnode_two:\ntype: node_two\nrequirements:\n- one:\nnode: node_one\nrelationship: relation_one\nrelationship_templates:\nrelation_one:\ntype: relation_one\n
"},{"location":"variability4tosca/tests/test-relationships-throw-multiple/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Relation \"relation_one\" is used multiple times\n
"},{"location":"variability4tosca/tests/test-relationships-throw-undefined/","title":"relationships-throw-undefined","text":""},{"location":"variability4tosca/tests/test-relationships-throw-undefined/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\none:\ntype: one\nconditions: false\nrequirements:\n- two:\nnode: two\nconditions: false\nrelationship: rtwo\ntwo:\ntype: two\nrequirements:\n- three:\nnode: three\nrelationship: rthree\nthree:\ntype: three\nrelationship_templates:\nrtwo:\ntype: rtwo\n
"},{"location":"variability4tosca/tests/test-relationships-throw-undefined/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Relationship \"rthree\" of relation \"three\" of node \"two\" does not exist!\n
"},{"location":"variability4tosca/tests/test-relationships-throw-unused/","title":"relationships-throw-unused","text":""},{"location":"variability4tosca/tests/test-relationships-throw-unused/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\none:\ntype: one\nconditions: false\nrequirements:\n- two:\nnode: two\nconditions: false\nrelationship: rtwo\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\nrelationship_templates:\nrtwo:\ntype: rtwo\nrthree:\ntype: rthree\n
"},{"location":"variability4tosca/tests/test-relationships-throw-unused/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Relation \"rthree\" is never used\n
"},{"location":"variability4tosca/tests/test-relationships-type-specific/","title":"relationships-type-specific","text":""},{"location":"variability4tosca/tests/test-relationships-type-specific/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nrelation_default_condition: true\ntype_specific_conditions:\nrelationship_types:\nrone:\nconditions:\nor: []\nnode_templates:\nsource:\ntype: source\nrequirements:\n- one:\nnode: target\nrelationship: rone\n- two:\nnode: target\nrelationship: rtwo\ntarget:\ntype: target\nrelationship_templates:\nrone:\ntype: rone\nrtwo:\ntype: rtwo\n
"},{"location":"variability4tosca/tests/test-relationships-type-specific/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nsource:\ntype: source\nrequirements:\n- two:\nnode: target\nrelationship: rtwo\ntarget:\ntype: target\nrelationship_templates:\nrtwo:\ntype: rtwo\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-conditional/","title":"requirement-assignment-conditional","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\none:\ntype: one\nrequirements:\n- two:\nnode: two\nconditions: false\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\none:\ntype: one\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-alternative-false/","title":"requirement-assignment-default-alternative-false","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-default-alternative-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\none:\ntype: one\nrequirements:\n- two:\nnode: two\nconditions: false\n- two_two:\nnode: two\ndefault_alternative: false\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-alternative-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\none:\ntype: one\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-alternative/","title":"requirement-assignment-default-alternative","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-default-alternative/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\none:\ntype: one\nrequirements:\n- two:\nnode: two\nconditions: false\n- two_two:\nnode: two\ndefault_alternative: true\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-alternative/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\none:\ntype: one\nrequirements:\n- two_two: two\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-condition-throw-source/","title":"requirement-assignment-default-condition-throw-source","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-default-condition-throw-source/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\none:\ntype: one\nconditions: false\nrequirements:\n- two:\nnode: two\nconditions: true\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-condition-throw-source/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Relation source \"one\" of relation \"two@0\" of node \"one\" does not exist\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-condition-throw-target/","title":"requirement-assignment-default-condition-throw-target","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-default-condition-throw-target/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\none:\ntype: one\nrequirements:\n- two:\nnode: two\nconditions: true\ntwo:\ntype: two\nconditions: false\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-condition-throw-target/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Relation target \"two\" of relation \"two@0\" of node \"one\" does not exist\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-condition/","title":"requirement-assignment-default-condition","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-default-condition/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nrelation_default_condition: true\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\none:\ntype: one\nconditions: false\nrequirements:\n- two: two\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-default-condition/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-one-hosting-relation/","title":"requirement-assignment-one-hosting-relation","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-one-hosting-relation/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\none:\ntype: one\nrequirements:\n- host:\nnode: two\nconditions: true\n- host:\nnode: three\nconditions: false\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-one-hosting-relation/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\none:\ntype: one\nrequirements:\n- host: two\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-relation-presence-index-absent/","title":"requirement-assignment-relation-presence-index-absent","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-relation-presence-index-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\ncontainer:\ntype: container\nconditions:\nrelation_presence:\n- node_one\n- 0\nnode_one:\ntype: node_one\nrequirements:\n- relation_one:\nnode: node_one\nconditions: false\n- relation_two:\nnode: node_two\nconditions: true\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-relation-presence-index-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nrequirements:\n- relation_two: node_two\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-relation-presence-name-absent/","title":"requirement-assignment-relation-presence-name-absent","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-relation-presence-name-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\ncontainer:\ntype: container\nconditions:\nrelation_presence:\n- node_one\n- relation_one\nnode_one:\ntype: node_one\nrequirements:\n- relation_one:\nnode: node_one\nconditions: false\n- relation_two:\nnode: node_two\nconditions: true\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-relation-presence-name-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nrequirements:\n- relation_two: node_two\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-source-presence-absent/","title":"requirement-assignment-source-presence-absent","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-source-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nexpected_incoming_relation_check: false\nnode_templates:\ncontainer:\ntype: container\nconditions:\nrelation_presence:\n- node_one\n- relation_one\nnode_one:\ntype: node_one\nconditions: false\nrequirements:\n- relation_one:\nnode: node_two\nconditions:\nsource_presence: SELF\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-source-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-source-presence-present/","title":"requirement-assignment-source-presence-present","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-source-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nrelation_presence:\n- node_one\n- relation_one\nnode_one:\ntype: node_one\nconditions: true\nrequirements:\n- relation_one:\nnode: node_two\nconditions:\nsource_presence: SELF\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-source-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nnode_one:\ntype: node_one\nrequirements:\n- relation_one: node_two\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-target-presence-absent/","title":"requirement-assignment-target-presence-absent","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-target-presence-absent/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nrelation_presence:\n- node_one\n- relation_one\nnode_one:\ntype: node_one\nrequirements:\n- relation_one:\nnode: node_two\nconditions:\ntarget_presence: SELF\nnode_two:\ntype: node_two\nconditions: false\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-target-presence-absent/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-target-presence-present/","title":"requirement-assignment-target-presence-present","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-target-presence-present/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\ncontainer:\ntype: container\nconditions:\nrelation_presence:\n- node_one\n- relation_one\nnode_one:\ntype: node_one\nrequirements:\n- relation_one:\nnode: node_two\nconditions:\ntarget_presence: SELF\nnode_two:\ntype: node_two\nconditions: true\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-target-presence-present/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container\nnode_one:\ntype: node_one\nrequirements:\n- relation_one: node_two\nnode_two:\ntype: node_two\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-throw-multiple-defaults/","title":"requirement-assignment-throw-multiple-defaults","text":""},{"location":"variability4tosca/tests/test-requirement-assignment-throw-multiple-defaults/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_default_condition: true\nnode_templates:\none:\ntype: one\nrequirements:\n- two:\nnode: two\ndefault_alternative: true\n- two:\nnode: two\ndefault_alternative: true\ntwo:\ntype: two\nrequirements:\n- three: three\nthree:\ntype: three\n
"},{"location":"variability4tosca/tests/test-requirement-assignment-throw-multiple-defaults/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Relation \"two@0\" of node \"one\" has multiple defaults\n
"},{"location":"variability4tosca/tests/test-scenario-complex-alpha/","title":"Scenario \"Alpha\"","text":""},{"location":"variability4tosca/tests/test-scenario-complex-alpha/#description","title":"Description","text":"

A more complex scenario that shows that the fact that node \"node_two\" is not present propagates even to the property \"property_two\" of the relationship template \"relationship_one\".

"},{"location":"variability4tosca/tests/test-scenario-complex-alpha/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition: false\nnode_pruning: false\nexpected_incoming_relation_check: false\nnode_templates:\nnode_one:\ntype: node_one\nnode_two:\ntype: node_two\nconditions: false\nproperties:\n- property_one: value_one\nrequirements:\n- relation_one:\nnode: node_one\nconditions: true\nrelationship: relationship_one\n- relation_two:\nnode: node_three\nconditions: false\n- relation_three:\nnode: node_four\ndefault_alternative: true\nartifacts:\n- artifact_one: file_one\n- artifact_one:\nfile: file_one\ndefault_alternative: true\nnode_three:\ntype: node_three\nnode_four:\ntype: node_four\nrelationship_templates:\nrelationship_one:\ntype: relationship_one\nproperties:\n- property_two: value_two\ngroups:\ngroup_one:\ntype: group_one\nmembers:\n- node_one\ngroup_two:\ntype: group_two\nmembers:\n- node_two\n- - node_two\n- relation_one\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n- policy_two:\ntype: policy_two\ntargets:\n- node_two\nconditions: true\n
"},{"location":"variability4tosca/tests/test-scenario-complex-alpha/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nnode_one:\ntype: node_one\nnode_three:\ntype: node_three\nnode_four:\ntype: node_four\ngroups:\ngroup_one:\ntype: group_one\nmembers:\n- node_one\npolicies:\n- policy_one:\ntype: policy_one\ntargets:\n- node_one\n
"},{"location":"variability4tosca/tests/test-scenario-worker-agent-false/","title":"scenario-worker-agent-false","text":""},{"location":"variability4tosca/tests/test-scenario-worker-agent-false/#description","title":"Description","text":"
  • agent and worker hosted on a virtual machine
  • virtual machine is only present if either agent or worker is present
  • worker is absent

  • agent is absent, thus, also the virtual machine is absent

"},{"location":"variability4tosca/tests/test-scenario-worker-agent-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\noptimization_topology: true\nnode_templates:\nagent:\ntype: agent\nconditions: false\nrequirements:\n- host: vm\nworker:\ntype: worker\nconditions: false\nrequirements:\n- host: vm\nvm:\ntype: vm\n
"},{"location":"variability4tosca/tests/test-scenario-worker-agent-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-scenario-worker-agent-true/","title":"scenario-worker-agent-true","text":""},{"location":"variability4tosca/tests/test-scenario-worker-agent-true/#description","title":"Description","text":"
  • agent and worker hosted on a virtual machine
  • virtual machine is only present if either agent or worker is present
  • worker is absent

  • agent is present, thus, also the virtual machine is present

"},{"location":"variability4tosca/tests/test-scenario-worker-agent-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\noptimization_topology: true\nnode_templates:\nagent:\ntype: agent\nconditions: true\nrequirements:\n- host: vm\nworker:\ntype: worker\nconditions: false\nrequirements:\n- host: vm\nvm:\ntype: vm\n
"},{"location":"variability4tosca/tests/test-scenario-worker-agent-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nagent:\ntype: agent\nrequirements:\n- host: vm\nvm:\ntype: vm\n
"},{"location":"variability4tosca/tests/test-scenario-worker-worker-false/","title":"scenario-worker-worker-false","text":""},{"location":"variability4tosca/tests/test-scenario-worker-worker-false/#description","title":"Description","text":"
  • agent and worker hosted on a virtual machine
  • virtual machine is only present if either agent or worker is present
  • agent is only present if the virtual machine is present, thus, circle

  • worker is absent

  • since pruning is enabled, all components are absent
"},{"location":"variability4tosca/tests/test-scenario-worker-worker-false/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\noptimization_topology: true\nnode_templates:\nagent:\ntype: agent\nconditions:\nhost_presence: SELF\nrequirements:\n- host: vm\nworker:\ntype: worker\nconditions: false\nrequirements:\n- host: vm\nvm:\ntype: vm\n
"},{"location":"variability4tosca/tests/test-scenario-worker-worker-false/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-scenario-worker-worker-true/","title":"scenario-worker-worker-true","text":""},{"location":"variability4tosca/tests/test-scenario-worker-worker-true/#description","title":"Description","text":"
  • agent and worker hosted on a virtual machine
  • virtual machine is only present if either agent or worker is present
  • agent is only present if the virtual machine is present, thus, circle

  • worker is present, thus, all components are present

"},{"location":"variability4tosca/tests/test-scenario-worker-worker-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\noptimization_topology: true\nnode_templates:\nagent:\ntype: agent\nconditions:\nhost_presence: SELF\nrequirements:\n- host: vm\nworker:\ntype: worker\nconditions: true\nrequirements:\n- host: vm\nvm:\ntype: vm\n
"},{"location":"variability4tosca/tests/test-scenario-worker-worker-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\nagent:\ntype: agent\nrequirements:\n- host: vm\nworker:\ntype: worker\nrequirements:\n- host: vm\nvm:\ntype: vm\n
"},{"location":"variability4tosca/tests/test-technologies-ambiguous-disabled/","title":"technologies-ambiguous-disabled","text":""},{"location":"variability4tosca/tests/test-technologies-ambiguous-disabled/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nambiguous_technology_check: false\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-ambiguous-disabled/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container~container::ansible\n
"},{"location":"variability4tosca/tests/test-technologies-ambiguous/","title":"technologies-ambiguous","text":""},{"location":"variability4tosca/tests/test-technologies-ambiguous/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nambiguous_technology_check: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-ambiguous/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"container\" has more than one technology\n
"},{"location":"variability4tosca/tests/test-technologies-conditional/","title":"technologies-conditional","text":""},{"location":"variability4tosca/tests/test-technologies-conditional/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: false\n
"},{"location":"variability4tosca/tests/test-technologies-conditional/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container~container::ansible\n
"},{"location":"variability4tosca/tests/test-technologies-constraint-disabled/","title":"technologies-constraint-disabled","text":""},{"location":"variability4tosca/tests/test-technologies-constraint-disabled/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntechnology_constraint: false\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-constraint-disabled/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"container\" has more than one technology\n
"},{"location":"variability4tosca/tests/test-technologies-constraint/","title":"technologies-constraint","text":""},{"location":"variability4tosca/tests/test-technologies-constraint/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntechnology_constraint: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-constraint/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Could not solve\n
"},{"location":"variability4tosca/tests/test-technologies-default-multiple/","title":"technologies-default-multiple","text":""},{"location":"variability4tosca/tests/test-technologies-default-multiple/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\ndefault_alternative: true\n- terraform:\ndefault_alternative: true\n
"},{"location":"variability4tosca/tests/test-technologies-default-multiple/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"container\" has multiple default technologies\n
"},{"location":"variability4tosca/tests/test-technologies-default-true/","title":"technologies-default-true","text":""},{"location":"variability4tosca/tests/test-technologies-default-true/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: false\n- terraform:\ndefault_alternative: true\n
"},{"location":"variability4tosca/tests/test-technologies-default-true/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container~container::terraform\n
"},{"location":"variability4tosca/tests/test-technologies-expected-disabled/","title":"technologies-expected-disabled","text":""},{"location":"variability4tosca/tests/test-technologies-expected-disabled/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: false\ntechnology_pruning: false\ntechnology_constraint: false\nexpected_technology_check: false\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: false\n
"},{"location":"variability4tosca/tests/test-technologies-expected-disabled/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"container\" has no present technology\n
"},{"location":"variability4tosca/tests/test-technologies-expected/","title":"technologies-expected","text":""},{"location":"variability4tosca/tests/test-technologies-expected/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: false\ntechnology_pruning: false\ntechnology_constraint: false\nexpected_technology_check: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: false\n
"},{"location":"variability4tosca/tests/test-technologies-expected/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"container\" expected to have a technology\n
"},{"location":"variability4tosca/tests/test-technologies-lowercase/","title":"technologies-lowercase","text":""},{"location":"variability4tosca/tests/test-technologies-lowercase/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- Ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-lowercase/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container~container::ansible\n
"},{"location":"variability4tosca/tests/test-technologies-missing-disabled/","title":"technologies-missing-disabled","text":""},{"location":"variability4tosca/tests/test-technologies-missing-disabled/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nmissing_technology_container_check: false\nnode_templates:\ncontainer:\ntype: container\nconditions: false\ntechnology:\n- ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-missing-disabled/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-technologies-missing/","title":"technologies-missing","text":""},{"location":"variability4tosca/tests/test-technologies-missing/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nmissing_technology_container_check: true\nnode_templates:\ncontainer:\ntype: container\nconditions: false\ntechnology:\n- ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-missing/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Container of technology \"ansible@0\" of node \"container\" does not exist\n
"},{"location":"variability4tosca/tests/test-technologies-optimization-double/","title":"technologies-optimization-double","text":""},{"location":"variability4tosca/tests/test-technologies-optimization-double/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\nnode_default_condition_mode: incomingnaive-host\nhosting_stack_constraint: true\noptimization_topology: true\noptimization_technologies: true\ntechnology_pruning: true\nnode_templates:\ncontainer:\ntype: container\npersistent: true\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: true\nrequirements:\n- relation:\nnode: container_host\nconditions: false\ncontainer_host:\ntype: container_host\ncontainer_host_agent:\ntype: container_host_agent\nrequirements:\n- host:\nnode: container_host\nanother:\ntype: another\ntechnology:\n- ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-optimization-double/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container~container::ansible\nanother:\ntype: another~another::ansible\n
"},{"location":"variability4tosca/tests/test-technologies-optimization-order/","title":"technologies-optimization-order","text":""},{"location":"variability4tosca/tests/test-technologies-optimization-order/#description","title":"Description","text":"

order of technologies does not matter

"},{"location":"variability4tosca/tests/test-technologies-optimization-order/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: true\noptimization_technologies_unique: true\ntechnology_pruning: true\ntechnology_constraint: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: true\nanother:\ntype: another\ntechnology:\n- ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-optimization-order/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container~container::ansible\nanother:\ntype: another~another::ansible\n
"},{"location":"variability4tosca/tests/test-technologies-optimization-unsat/","title":"technologies-optimization-unsat","text":""},{"location":"variability4tosca/tests/test-technologies-optimization-unsat/#description","title":"Description","text":"

technology optimization requires technology pruning

"},{"location":"variability4tosca/tests/test-technologies-optimization-unsat/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: true\ntechnology_pruning: false\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: true\nanother:\ntype: another\ntechnology:\n- ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-optimization-unsat/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"container\" has more than one technology\n
"},{"location":"variability4tosca/tests/test-technologies-optimization-weight/","title":"technologies-optimization-weight","text":""},{"location":"variability4tosca/tests/test-technologies-optimization-weight/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: true\noptimization_technologies_mode: weight\noptimization_technologies_unique: true\ntechnology_pruning: true\ntechnology_constraint: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- terraform:\nconditions: true\nweight: 0.5\n- ansible:\nconditions: true\nweight: 1\nanother:\ntype: another\ntechnology:\n- ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-optimization-weight/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container~container::terraform\nanother:\ntype: another~another::ansible\n
"},{"location":"variability4tosca/tests/test-technologies-optimization/","title":"technologies-optimization","text":""},{"location":"variability4tosca/tests/test-technologies-optimization/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: true\noptimization_technologies_unique: true\ntechnology_pruning: true\ntechnology_constraint: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- terraform:\nconditions: true\n- ansible:\nconditions: true\nanother:\ntype: another\ntechnology:\n- ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-optimization/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container~container::ansible\nanother:\ntype: another~another::ansible\n
"},{"location":"variability4tosca/tests/test-technologies-pruning-disabled/","title":"technologies-pruning-disabled","text":""},{"location":"variability4tosca/tests/test-technologies-pruning-disabled/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nmissing_technology_container_check: true\ntechnology_pruning: false\nnode_templates:\ncontainer:\ntype: container\nconditions: false\ntechnology:\n- ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-pruning-disabled/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Container of technology \"ansible@0\" of node \"container\" does not exist\n
"},{"location":"variability4tosca/tests/test-technologies-pruning/","title":"technologies-pruning","text":""},{"location":"variability4tosca/tests/test-technologies-pruning/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\ntype_pruning: true\nmissing_technology_container_check: true\ntechnology_pruning: true\nnode_templates:\ncontainer:\ntype: container\nconditions: false\ntechnology:\n- ansible:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-pruning/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"variability4tosca/tests/test-technologies-rules-v3/","title":"technologies-rules-v3","text":""},{"location":"variability4tosca/tests/test-technologies-rules-v3/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nansible_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\nterraform_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\nansible_terraform_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ndatabase:\nderived_from: tosca.nodes.Root\ndbms:\nderived_from: tosca.nodes.Root\ntopology_template:\nvariability:\ntechnology_rules:\n- component: application\ntechnology: terraform\nhosting:\n- terraform_host\n- component: application\ntechnology: terraform\nhosting:\n- ansible_terraform_host\n- component: another\ntechnology: terraform\nhosting:\n- another_terraform_host\n- component: database\ntechnology:\n- terraform\n- component: dbms\ntechnology:\n- terraform\n- component: application\ntechnology: ansible\nhosting:\n- ansible_host\n- component: application\ntechnology: ansible\nhosting:\n- ansible_terraform_host\n- component: application\ntechnology: helm\nhosting:\n- helm_host\nnode_templates:\napplication:\ntype: application\npersistent: true\nrequirements:\n- host:\nnode: ansible_host\nconditions: false\n- host:\nnode: terraform_host\nconditions: false\n- host:\nnode: ansible_terraform_host\n- database:\nnode: database\nansible_host:\ntype: ansible_host\nterraform_host:\ntype: terraform_host\nansible_terraform_host:\ntype: ansible_terraform_host\ndatabase:\ntype: database\ntechnology: terraform\nrequirements:\n- host:\nnode: dbms\ndbms:\ntype: dbms\ntechnology: terraform\n
"},{"location":"variability4tosca/tests/test-technologies-rules-v3/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nansible_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\nterraform_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\nansible_terraform_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ndatabase:\nderived_from: tosca.nodes.Root\ndbms:\nderived_from: tosca.nodes.Root\ntopology_template:\nnode_templates:\napplication:\ntype: application~application::terraform@ansible_terraform_host\nrequirements:\n- host: ansible_terraform_host\n- database: database\nansible_terraform_host:\ntype: ansible_terraform_host\ndatabase:\ntype: database~database::terraform\nrequirements:\n- host: dbms\ndbms:\ntype: dbms~dbms::terraform\n
"},{"location":"variability4tosca/tests/test-technologies-rules/","title":"technologies-rules","text":""},{"location":"variability4tosca/tests/test-technologies-rules/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nansible_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\nterraform_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\nansible_terraform_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ndatabase:\nderived_from: tosca.nodes.Root\ndbms:\nderived_from: tosca.nodes.Root\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\noptimization_technologies: true\noptimization_technologies_unique: true\ntechnology_pruning: true\ntechnology_constraint: true\nenrich_technologies: true\ntechnology_rules:\n- component: application\ntechnology: terraform\nhosting:\n- terraform_host\n- component: application\ntechnology: terraform\nhosting:\n- ansible_terraform_host\n- component: another\ntechnology: terraform\nhosting:\n- another_terraform_host\n- component: database\ntechnology: terraform\n- component: dbms\ntechnology: terraform\n- component: application\ntechnology: ansible\nhosting:\n- ansible_host\n- component: application\ntechnology: ansible\nhosting:\n- ansible_terraform_host\n- component: application\ntechnology: helm\nhosting:\n- helm_host\nnode_templates:\napplication:\ntype: application\npersistent: true\nrequirements:\n- host:\nnode: ansible_host\nconditions: false\n- host:\nnode: terraform_host\nconditions: false\n- host:\nnode: ansible_terraform_host\n- database:\nnode: database\nansible_host:\ntype: ansible_host\nterraform_host:\ntype: terraform_host\nansible_terraform_host:\ntype: ansible_terraform_host\ndatabase:\ntype: database\ntechnology: terraform\nrequirements:\n- host:\nnode: dbms\ndbms:\ntype: dbms\ntechnology: terraform\n
"},{"location":"variability4tosca/tests/test-technologies-rules/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nansible_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\nterraform_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\nansible_terraform_host:\nderived_from: tosca.nodes.Root\nmetadata:\nvintner_abstract: 'true'\ndatabase:\nderived_from: tosca.nodes.Root\ndbms:\nderived_from: tosca.nodes.Root\ntopology_template:\nnode_templates:\napplication:\ntype: application~application::terraform@ansible_terraform_host\nrequirements:\n- host: ansible_terraform_host\n- database: database\nansible_terraform_host:\ntype: ansible_terraform_host\ndatabase:\ntype: database~database::terraform\nrequirements:\n- host: dbms\ndbms:\ntype: dbms~dbms::terraform\n
"},{"location":"variability4tosca/tests/test-technologies-throw-required/","title":"technologies-throw-required","text":""},{"location":"variability4tosca/tests/test-technologies-throw-required/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0_rc_3\nnode_types:\napplication:\nderived_from: tosca.nodes.Root\nansible_host:\nderived_from: tosca.nodes.Root\nterraform_host:\nderived_from: tosca.nodes.Root\nansible_terraform_host:\nderived_from: tosca.nodes.Root\ndatabase:\nderived_from: tosca.nodes.Root\ndbms:\nderived_from: tosca.nodes.Root\ntopology_template:\nvariability:\noptions:\nmode: semantic-loose\noptimization_technologies: true\noptimization_technologies_unique: true\ntechnology_pruning: true\ntechnology_constraint: true\ntechnology_rules:\n- component: ansible_host\ntechnology: terraform\n- component: terraform_host\ntechnology: terraform\n- component: ansible_terraform_host\ntechnology: terraform\n- component: database\ntechnology: terraform\n- component: dbms\ntechnology: terraform\nnode_templates:\napplication:\ntype: application\npersistent: true\nrequirements:\n- host:\nnode: ansible_host\nconditions: false\n- host:\nnode: terraform_host\nconditions: false\n- host:\nnode: ansible_terraform_host\n- database:\nnode: database\nansible_host:\ntype: ansible_host\nterraform_host:\ntype: terraform_host\nansible_terraform_host:\ntype: ansible_terraform_host\ndatabase:\ntype: database\ntechnology: terraform\nrequirements:\n- host:\nnode: dbms\ndbms:\ntype: dbms\ntechnology: terraform\n
"},{"location":"variability4tosca/tests/test-technologies-throw-required/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Node \"application\" has no technology candidates\n
"},{"location":"variability4tosca/tests/test-technologies-unique-disabled/","title":"technologies-unique-disabled","text":""},{"location":"variability4tosca/tests/test-technologies-unique-disabled/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: true\noptimization_technologies_unique: false\ntechnology_pruning: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: true\n- puppet:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-unique-disabled/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\ntopology_template:\nnode_templates:\ncontainer:\ntype: container~container::puppet\n
"},{"location":"variability4tosca/tests/test-technologies-unique/","title":"technologies-unique","text":""},{"location":"variability4tosca/tests/test-technologies-unique/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\noptions:\noptimization_technologies: true\noptimization_technologies_unique: true\ntechnology_pruning: true\nnode_templates:\ncontainer:\ntype: container\ntechnology:\n- ansible:\nconditions: true\n- terraform:\nconditions: true\n- puppet:\nconditions: true\n
"},{"location":"variability4tosca/tests/test-technologies-unique/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

The result is ambiguous considering technologies (besides optimization)\n
"},{"location":"variability4tosca/tests/test-variability-inputs-implies/","title":"variability-inputs-implies","text":""},{"location":"variability4tosca/tests/test-variability-inputs-implies/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nfirst:\ntype: boolean\ndefault: true\nimplies: second\nsecond:\ntype: boolean\ndefault: false\n
"},{"location":"variability4tosca/tests/test-variability-inputs-implies/#expected-error","title":"Expected Error","text":"

The following error is expected to be thrown, when resolving variability.

Variability inputs constraints are violated\n
"},{"location":"variability4tosca/tests/test-variability-inputs-no-constraints/","title":"variability-inputs-no-constraints","text":""},{"location":"variability4tosca/tests/test-variability-inputs-no-constraints/#variable-service-template","title":"Variable Service Template","text":"

The variability of the following variable service template shall be resolved.

tosca_definitions_version: tosca_variability_1_0\ntopology_template:\nvariability:\ninputs:\nfirst:\ntype: boolean\ndefault: true\nsecond:\ntype: boolean\ndefault: false\n
"},{"location":"variability4tosca/tests/test-variability-inputs-no-constraints/#variability-resolved-service-template","title":"Variability-Resolved Service Template","text":"

The following variability-resolved service template is expected.

tosca_definitions_version: tosca_simple_yaml_1_3\n
"},{"location":"tags/","title":"Tags","text":"

This document holds tags used throughout this documentation.

","tags":["Misc"]},{"location":"tags/#algorithms-2022","title":"Algorithms 2022","text":"
  • Motivation
","tags":["Misc"]},{"location":"tags/#closer-2024","title":"CLOSER 2024","text":"
  • Hosting-Aware Pruning
  • Pruning Modes
","tags":["Misc"]},{"location":"tags/#contributing","title":"Contributing","text":"
  • Code of Conduct
  • Development
  • Documentation
  • Notes
  • Release
  • Setup
","tags":["Misc"]},{"location":"tags/#coopis-2023","title":"CoopIS 2023","text":"
  • Conditional Deployment Artifacts and Conditional Properties
","tags":["Misc"]},{"location":"tags/#docker","title":"Docker","text":"
  • Installation
  • Uninstallation
","tags":["Misc"]},{"location":"tags/#edmm","title":"EDMM","text":"
  • EDMM Compliance
","tags":["Misc"]},{"location":"tags/#experimental","title":"Experimental","text":"
  • Dynamic Deployment Artifacts
  • Pipes and Filters Application
","tags":["Misc"]},{"location":"tags/#guide","title":"Guide","text":"
  • Getting Started
  • Getting Started
  • Distributed Locations
  • Zonal Architecture
  • Conditional Deployment Artifacts and Conditional Properties
  • Hosting-Aware Pruning
  • Pruning Modes
  • Pipes and Filters Application
  • Pruning Elements
  • Motivation
","tags":["Misc"]},{"location":"tags/#misc","title":"Misc","text":"
  • Branding
  • FAQ
  • Publications
  • Resources
  • About Us
","tags":["Misc"]},{"location":"tags/#normative","title":"Normative","text":"
  • TOSCA Vintner Profile
  • Profile
","tags":["Misc"]},{"location":"tags/#profile","title":"Profile","text":"
  • TOSCA Vintner Profile
  • Profile
","tags":["Misc"]},{"location":"tags/#publication","title":"Publication","text":"
  • Publications
  • Conditional Deployment Artifacts and Conditional Properties
  • Hosting-Aware Pruning
  • Pruning Modes
  • Pruning Elements
  • Motivation
","tags":["Misc"]},{"location":"tags/#queries4tosca","title":"Queries4TOSCA","text":"
  • Getting Started
  • Specification
  • Introduction
","tags":["Misc"]},{"location":"tags/#sofdcar","title":"SofDCar","text":"
  • Profile
  • Distributed Locations
  • Zonal Architecture
","tags":["Misc"]},{"location":"tags/#specification","title":"Specification","text":"
  • EDMM Compliance
  • TOSCA Vintner Profile
  • Specification
  • Introduction
  • Secure CSAR
  • Profile
  • Dynamic Deployment Artifacts
  • Feature IDE
  • Testing
  • Technology Rules
  • Specification
  • Introduction
","tags":["Misc"]},{"location":"tags/#ucc-2023","title":"UCC 2023","text":"
  • Pruning Elements
","tags":["Misc"]},{"location":"tags/#unfurl","title":"Unfurl","text":"
  • Getting Started
  • Orchestrators
  • Conditional Deployment Artifacts and Conditional Properties
  • Hosting-Aware Pruning
","tags":["Misc"]},{"location":"tags/#variability4tosca","title":"Variability4TOSCA","text":"
  • Benchmark
  • Dynamic Deployment Artifacts
  • Feature IDE
  • Testing
  • Conditional Deployment Artifacts and Conditional Properties
  • Hosting-Aware Pruning
  • Pruning Modes
  • Pipes and Filters Application
  • Pruning Elements
  • Motivation
  • Specification
  • Introduction
","tags":["Misc"]},{"location":"tags/#vintner","title":"Vintner","text":"
  • Dependencies
  • Features
  • Getting Started
  • Installation
  • Interface
  • Orchestrators
  • Uninstallation
  • Usage
  • Versions
  • TOSCA Vintner Profile
  • Technology Rules
","tags":["Misc"]},{"location":"tags/#zenodo","title":"Zenodo","text":"
  • Publications
  • Conditional Deployment Artifacts and Conditional Properties
  • Hosting-Aware Pruning
  • Pruning Modes
  • Pruning Elements
  • Motivation
","tags":["Misc"]},{"location":"tags/#xopera","title":"xOpera","text":"
  • Getting Started
  • Orchestrators
  • Pruning Modes
  • Pipes and Filters Application
  • Pruning Elements
  • Motivation
","tags":["Misc"]}]} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 82535377b..6b68ee99e 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,1842 +2,1842 @@ https://vintner.opentosca.org/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/branding/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/dependencies/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/faq/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/features/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/getting-started/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/installation/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/interface/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/orchestrators/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/publications/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/resources/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/uninstallation/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/usage/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/versions/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/about-us/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/contributing/code-of-conduct/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/contributing/development/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/contributing/documentation/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/contributing/notes/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/contributing/release/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/contributing/setup/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/edmm/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/normative/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/getting-started/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/specification/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/introduction/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-all/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-array-access/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-boolean-and/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-boolean-or/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-filter-equals/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-filter-existence/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-filter-negation/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-filter-nested/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-filter-regex/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-group/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-match-length-any/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-match-length-range/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-match-next/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-match-previous/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-match-rel-filter/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-match-single/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-node-template/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-policy/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-resolve-chain/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-resolve-loop/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-resolve-self/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-resolve-simple/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-result-structure-complex/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-result-structure-simple/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/queries4tosca/tests/test-shortcut-property/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/scsar/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/sofdcar/profile/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/sofdcar/guides/location/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/sofdcar/guides/zone/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/benchmark/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/dynamic/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/feature-ide/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/testing/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/guides/artifacts/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/guides/aware/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/guides/modes/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/guides/pipes-and-filters/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/guides/pruning/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/motivation/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/rules/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/specification/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/introduction/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-analytical-operators-count/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-analytical-operators-exponential_regression/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-analytical-operators-linear_regression/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-analytical-operators-logarithmic_regression/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-analytical-operators-max/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-analytical-operators-mean/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-analytical-operators-median/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-analytical-operators-min/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-analytical-operators-polynomial_regression/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-analytical-operators-standard_deviation/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-analytical-operators-sum/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-analytical-operators-variance/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-arithmetic-operators-add/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-arithmetic-operators-div/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-arithmetic-operators-mod-even/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-arithmetic-operators-mod-odd/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-arithmetic-operators-mul/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-arithmetic-operators-sub/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-artifact-presence-number-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-artifact-presence-number-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-artifact-presence-string-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-artifact-presence-string-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-conditional/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-container-presence-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-container-presence-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-default-alternative-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-default-alternative/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-default-condition/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-dont-throw-ambiguous-artifact/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-prune/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-pruning-managed-manual/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-pruning-managed-rules-host/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-pruning-managed-rules-multiple-different/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-pruning-managed-rules-none/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-pruning-managed-rules/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-pruning-manged-rules-multiple-same/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-required-artifact-constraint-sat-pruning/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-required-artifact-constraint-sat/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-required-artifact-constraint-unsat/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-throw-ambiguous-artifact/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-throw-ambiguous-default/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-throw-missing-artifact-container/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-none/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-one/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-other/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-artifacts-unique-artifact-constraint-unsat/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-boolean-operators-and-empty/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-boolean-operators-and-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-boolean-operators-and-nested-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-boolean-operators-and-nested-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-boolean-operators-and-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-boolean-operators-exo-false-all/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-boolean-operators-exo-true-all/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-boolean-operators-exo-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-boolean-operators-implies-false-false-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-boolean-operators-implies-false-true-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-boolean-operators-implies-true-false-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-boolean-operators-implies-true-true-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-boolean-operators-not-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-boolean-operators-not-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-boolean-operators-or-empty/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-boolean-operators-or-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-boolean-operators-or-true-all/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-boolean-operators-or-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-circles-alpha/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-circles-bravo/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-circles-charlie/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-circles-delta/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-circles-echo/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-circles-golf/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-circles-hotel/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-circles-india/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-consistency-throw-hosting-relation-missing-constraint/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-consistency-throw-hosting-relation-missing/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-consistency-throw-multiple-hosting-relations-constraint/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-consistency-throw-multiple-hosting-relations/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-consistency-throw-relation-source-missing/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-consistency-throw-relation-target-missing/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-equal-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-equal-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-greater-or-equal-equal/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-greater-or-equal-greater/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-greater-or-equal-less/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-greater-than-equal/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-greater-than-greater/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-greater-than-less/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-in_range_false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-in_range_true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-length_false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-length_true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-less_or_equal_equal/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-less_or_equal_greater/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-less_or_equal_less/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-less_than_equal/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-less_than_greater/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-less_than_less/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-max_length_equal/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-max_length_greater/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-max_length_less/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-min_length_equal/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-min_length_greater/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-min_length_less/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-valid_values_false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-constraint-operators-valid_values_true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-date-operators-after-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-date-operators-after-or-same-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-date-operators-after-or-same-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-date-operators-after-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-date-operators-before-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-date-operators-before-or-same-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-date-operators-before-or-same-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-date-operators-before-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-date-operators-same-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-date-operators-same-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-date-operators-within-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-date-operators-within-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-groups-conditional/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-groups-default-condition-nothing/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-groups-default-condition/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-groups-group-presence-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-groups-group-presence-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-groups-prune/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-hosting-aware-pruning-constraints-elastic/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-hosting-aware-pruning-constraints-static/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-hosting-aware-pruning-fig-10-broken/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-hosting-aware-pruning-fig-10-fixed/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-hosting-aware-pruning-host-elastic/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-hosting-aware-pruning-host-static/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-hosting-aware-pruning-motivation-elastic/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-hosting-aware-pruning-motivation-static/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-hosting-aware-pruning-provider-elastic/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-hosting-aware-pruning-provider-static/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-hosting-aware-pruning-transitive-ambiguous/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-hosting-aware-pruning-transitive-both/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-hosting-aware-pruning-transitive-preserved/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-hosting-aware-pruning-transitive-unexpected/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-constraints/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-implied-left/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-implied-right/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-implies-left/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-implies-right/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-incoming-left/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-incoming-right/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-motivating-scenario-cloud/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-motivating-scenario-static/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-naive-constraints/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-naive-implied-left/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-naive-implied-right/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-naive-implies-left/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-naive-implies-right/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-naive-incoming-left/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-naive-incoming-right/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-naive-motivating-scenario-cloud/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-naive-motivating-scenario-static/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-naive-naive-another-no-optimization/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-naive-naive-another-not/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-naive-naive-another/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-naive-naive-not/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-naive-naive/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-naive-requires/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-naive-unexpected/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-requires/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implications-unexpected/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implied-default-fixed-left/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implied-default-fixed-right/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implied-default-manual-left/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implied-default-manual-right/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implied-host-broken/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implied-host-fixed-left/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implied-host-fixed-right/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implied-host-manual-left/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-implied-host-manual-right/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-import-conditional/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-import-empty/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-import-get-import-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-import-get-import-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-inputs-conditional-list/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-inputs-conditional/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-inputs-default-alternative/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-inputs-input-presence-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-inputs-input-presence-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-inputs-pruning-consumed-still/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-inputs-pruning-consumed/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-inputs-pruning-no-consumer/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-inputs-pruning-not-consumed-anymore-v3/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-inputs-pruning-not-consumed-anymore/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-inputs-unique-input-constraint-sat-other/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed-default/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-inputs-unique-input-constraint-sat/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-inputs-unique-input-constraint-unsat/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-conditional-type-default/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-conditional-type/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-conditional/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-default-false-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-default-false-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-default-host-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-default-host-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-default-true-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-default-true-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-host-presence-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-host-presence-false-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-host-presence-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-host-presence-true-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-host-presence-true-true-constraint/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-host-presence-true-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-node-presence-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-node-presence-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-required-incoming-relation-constraint-sat/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-required-incoming-relation-constraint-unsat/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-nodes-type-specific/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-other-benchmark/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-other-concat/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-other-default-variability-input/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-other-join/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-other-logic-expression-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-other-logic-expression-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-other-logic-value-expression/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-other-nothing/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-other-preset/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-other-presets/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-other-throw-CONTAINER/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-other-throw-SELF/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-other-throw-not-unique/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-other-token/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-other-value-expression/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-other-variability-input/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-other-version/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-other-weight/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-outputs-conditional-list/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-outputs-conditional/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-outputs-default/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-outputs-input-presence-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-outputs-input-presence-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-1/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-2/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera-v3/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute-not/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-outputs-pruning-produced-unfurl/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-outputs-unique-output-constraint-sat-default/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-outputs-unique-output-constraint-sat-other/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-not-produced-anymore-xopera/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-produced-xopera/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-outputs-unique-output-constraint-sat/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-outputs-unique-output-constraint-unsat/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-persistent-persistent-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-persistent-persistent-throw/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-persistent-persistent-undefined/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-persistent-persistent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-policies-conditional/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-policies-default-condition-nothing/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-policies-default-condition/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-policies-has-present-target-absent-members/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-policies-has-present-target-absent-nodes/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-policies-has-present-target-no-targets/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-policies-has-present-target-present-member/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-policies-has-present-target-present-node/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-policies-has-present-target-present-nodes/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-policies-policy-presence-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-policies-policy-presence-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-policies-prune/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-artifact-container-presence-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-artifact-container-presence-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-conditional/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-default-alternative-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-default-alternative/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-default-condition/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-expression/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-list-another/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-list/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-map-another/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-map/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-node-container-presence-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-node-container-presence-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-node-node-presence-CONTAINER-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-node-node-presence-CONTAINER-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-node-property-presence-number-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-node-property-presence-number-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-node-property-presence-string-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-node-property-presence-string-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-properties/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-relation-container-presence-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-relation-container-presence-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-throw-ambiguous-property/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-throw-missing-property-container/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-throw-multiple-default/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-unique-property-constraint-sat/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-properties-unique-property-constraint-unsat/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-alpha-default-naive/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-alpha-default/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-alpha-pruning/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-artifact-default-alpha/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-artifact-default-bravo/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-artifact-default-charlie/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-artifact-default-delta/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-artifact-default-naive/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-bravo-default/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-bravo-pruning/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-charlie-default/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-charlie-pruning/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-delta-default/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-delta-pruning/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-echo-default/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-echo-pruning/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-foxtrott-default/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-foxtrott-pruning/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-hotel-default/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-hotel-pruning/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-incoming-artifact-pruning-alpha/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-incoming-artifact-pruning-bravo/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-incoming-artifact-pruning-charlie/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-incoming-artifact-pruning-delta/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-incoming-artifact-pruning-echo/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-incoming-artifact-pruning-foxtrott/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-incoming-artifact-pruning-golf/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-incoming-artifact-pruning-hotel/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-alpha/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-bravo/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-india-default/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-india-pruning/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-juliett-default/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-juliett-pruning/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-kilo-default/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-kilo-pruning/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-lima-default/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-lima-pruning/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-mike-default/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-mike-pruning/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-outgoing-relation-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-outgoing-relation-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-outgoing-target-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-outgoing-target-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-outgoingnaive-target-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-pruning-false-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-pruning-false-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-pruning-true-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-pruning-true-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-pruning/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-pruning-relation/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-relationships-conditional/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-relationships-throw-multiple/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-relationships-throw-undefined/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-relationships-throw-unused/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-relationships-type-specific/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-requirement-assignment-conditional/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-requirement-assignment-default-alternative-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-requirement-assignment-default-alternative/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-requirement-assignment-default-condition-throw-source/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-requirement-assignment-default-condition-throw-target/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-requirement-assignment-default-condition/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-requirement-assignment-one-hosting-relation/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-requirement-assignment-relation-presence-index-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-requirement-assignment-relation-presence-name-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-requirement-assignment-source-presence-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-requirement-assignment-source-presence-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-requirement-assignment-target-presence-absent/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-requirement-assignment-target-presence-present/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-requirement-assignment-throw-multiple-defaults/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-scenario-complex-alpha/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-scenario-worker-agent-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-scenario-worker-agent-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-scenario-worker-worker-false/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-scenario-worker-worker-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-ambiguous-disabled/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-ambiguous/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-conditional/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-constraint-disabled/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-constraint/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-default-multiple/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-default-true/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-expected-disabled/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-expected/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-lowercase/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-missing-disabled/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-missing/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-optimization-double/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-optimization-order/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-optimization-unsat/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-optimization-weight/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-optimization/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-pruning-disabled/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-pruning/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-rules-v3/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-rules/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-throw-required/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-unique-disabled/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-technologies-unique/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-variability-inputs-implies/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/variability4tosca/tests/test-variability-inputs-no-constraints/ - 2024-09-25 + 2024-09-27 https://vintner.opentosca.org/tags/ - 2024-09-25 + 2024-09-27 \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index b1ea73413..4378246ec 100644 Binary files a/sitemap.xml.gz and b/sitemap.xml.gz differ diff --git a/sofdcar/guides/location/index.html b/sofdcar/guides/location/index.html index 55e8b3846..a13399729 100644 --- a/sofdcar/guides/location/index.html +++ b/sofdcar/guides/location/index.html @@ -8080,7 +8080,7 @@

Appendix B "Type Definitions"September 25, 2024 + September 27, 2024 diff --git a/sofdcar/guides/zone/index.html b/sofdcar/guides/zone/index.html index 34e639294..cac9ee38e 100644 --- a/sofdcar/guides/zone/index.html +++ b/sofdcar/guides/zone/index.html @@ -8197,7 +8197,7 @@

Appendix B "Type Definitions"September 25, 2024 + September 27, 2024 diff --git a/sofdcar/profile/index.html b/sofdcar/profile/index.html index 5edec9ee4..c1df41e9e 100644 --- a/sofdcar/profile/index.html +++ b/sofdcar/profile/index.html @@ -11346,7 +11346,7 @@

Disclaimer of Warranty Last update: - September 25, 2024 + September 27, 2024 diff --git a/tags/index.html b/tags/index.html index 34433e197..d831b3220 100644 --- a/tags/index.html +++ b/tags/index.html @@ -8145,7 +8145,7 @@

xOperaSeptember 25, 2024 + September 27, 2024 diff --git a/uninstallation/index.html b/uninstallation/index.html index b95b1892f..eb324c115 100644 --- a/uninstallation/index.html +++ b/uninstallation/index.html @@ -7699,7 +7699,7 @@

UninstallationSeptember 25, 2024 + September 27, 2024 diff --git a/usage/index.html b/usage/index.html index 6d8b44a45..61ea7d84d 100644 --- a/usage/index.html +++ b/usage/index.html @@ -7835,7 +7835,7 @@

Start the ServerSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/benchmark/index.html b/variability4tosca/benchmark/index.html index 3e92ae623..ed0671889 100644 --- a/variability4tosca/benchmark/index.html +++ b/variability4tosca/benchmark/index.html @@ -8125,7 +8125,7 @@

Service Template Under TestSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/dynamic/index.html b/variability4tosca/dynamic/index.html index dc5682c5b..a40d0bcf2 100644 --- a/variability4tosca/dynamic/index.html +++ b/variability4tosca/dynamic/index.html @@ -7809,12 +7809,10 @@

Dynamic Build Artifactsbuild management operation can start, e.g., a build pipeline and set a reference, such as a Docker Tag as attribute of the respective node template. This reference can then be used by the create management operation of tosca.interfaces.node.lifecycle.Standard.

-
1
-2
-3
tosca.interfaces.node.lifecycle.Variability
-+    build:
-+        description: Builds a Deployment Artifact
-
+

hl_lines="2 3" linenums="1" +tosca.interfaces.node.lifecycle.Variability ++ build: ++ description: Builds a Deployment Artifact

A rough idea has been also mentioned in TOSCA Simple Profile in YAML Version 1.3.

Acknowledgments

@@ -7834,7 +7832,7 @@

Disclaimer of Warranty Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/feature-ide/index.html b/variability4tosca/feature-ide/index.html index 232ea177b..110b3a1dc 100644 --- a/variability4tosca/feature-ide/index.html +++ b/variability4tosca/feature-ide/index.html @@ -8086,7 +8086,7 @@

Disclaimer of Warranty Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/guides/artifacts/index.html b/variability4tosca/guides/artifacts/index.html index 96ccd319e..fc2ec7cb1 100644 --- a/variability4tosca/guides/artifacts/index.html +++ b/variability4tosca/guides/artifacts/index.html @@ -7982,7 +7982,7 @@

Publication Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/guides/aware/index.html b/variability4tosca/guides/aware/index.html index df8063998..2478146a9 100644 --- a/variability4tosca/guides/aware/index.html +++ b/variability4tosca/guides/aware/index.html @@ -8025,7 +8025,7 @@

Publication Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/guides/modes/index.html b/variability4tosca/guides/modes/index.html index 1e2c155cc..85820a6e6 100644 --- a/variability4tosca/guides/modes/index.html +++ b/variability4tosca/guides/modes/index.html @@ -8023,7 +8023,7 @@

Publication Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/guides/pipes-and-filters/index.html b/variability4tosca/guides/pipes-and-filters/index.html index fa9201d02..ae1a34013 100644 --- a/variability4tosca/guides/pipes-and-filters/index.html +++ b/variability4tosca/guides/pipes-and-filters/index.html @@ -7769,7 +7769,7 @@

Undeployment Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/guides/pruning/index.html b/variability4tosca/guides/pruning/index.html index 7825984c5..4b3793717 100644 --- a/variability4tosca/guides/pruning/index.html +++ b/variability4tosca/guides/pruning/index.html @@ -7971,7 +7971,7 @@

Publication Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/motivation/index.html b/variability4tosca/motivation/index.html index 3362a78e2..5b079e2f5 100644 --- a/variability4tosca/motivation/index.html +++ b/variability4tosca/motivation/index.html @@ -7950,7 +7950,7 @@

Publication Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/rules/index.html b/variability4tosca/rules/index.html index 618846f5a..56ea80cf5 100644 --- a/variability4tosca/rules/index.html +++ b/variability4tosca/rules/index.html @@ -17079,7 +17079,7 @@

Disclaimer of Warranty Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/specification/index.html b/variability4tosca/specification/index.html index 0ce36ef8a..41634dfb2 100644 --- a/variability4tosca/specification/index.html +++ b/variability4tosca/specification/index.html @@ -12415,7 +12415,7 @@

Disclaimer of Warranty Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/testing/index.html b/variability4tosca/testing/index.html index 5c82cd486..63c90d488 100644 --- a/variability4tosca/testing/index.html +++ b/variability4tosca/testing/index.html @@ -8030,7 +8030,7 @@

Disclaimer of Warranty Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/introduction/index.html b/variability4tosca/tests/introduction/index.html index 1f0c0821e..c9693281c 100644 --- a/variability4tosca/tests/introduction/index.html +++ b/variability4tosca/tests/introduction/index.html @@ -9409,7 +9409,7 @@

Disclaimer of Warranty Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-analytical-operators-count/index.html b/variability4tosca/tests/test-analytical-operators-count/index.html index d2cf3005e..91a32d669 100644 --- a/variability4tosca/tests/test-analytical-operators-count/index.html +++ b/variability4tosca/tests/test-analytical-operators-count/index.html @@ -7758,7 +7758,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-analytical-operators-exponential_regression/index.html b/variability4tosca/tests/test-analytical-operators-exponential_regression/index.html index 7d79deb22..2ec106def 100644 --- a/variability4tosca/tests/test-analytical-operators-exponential_regression/index.html +++ b/variability4tosca/tests/test-analytical-operators-exponential_regression/index.html @@ -7768,7 +7768,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-analytical-operators-linear_regression/index.html b/variability4tosca/tests/test-analytical-operators-linear_regression/index.html index bc0a2c337..64830aacc 100644 --- a/variability4tosca/tests/test-analytical-operators-linear_regression/index.html +++ b/variability4tosca/tests/test-analytical-operators-linear_regression/index.html @@ -7764,7 +7764,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-analytical-operators-logarithmic_regression/index.html b/variability4tosca/tests/test-analytical-operators-logarithmic_regression/index.html index d2dec0308..d04319948 100644 --- a/variability4tosca/tests/test-analytical-operators-logarithmic_regression/index.html +++ b/variability4tosca/tests/test-analytical-operators-logarithmic_regression/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-analytical-operators-max/index.html b/variability4tosca/tests/test-analytical-operators-max/index.html index 66fc11286..176db1def 100644 --- a/variability4tosca/tests/test-analytical-operators-max/index.html +++ b/variability4tosca/tests/test-analytical-operators-max/index.html @@ -7758,7 +7758,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-analytical-operators-mean/index.html b/variability4tosca/tests/test-analytical-operators-mean/index.html index af85c0dbd..9ae3211d5 100644 --- a/variability4tosca/tests/test-analytical-operators-mean/index.html +++ b/variability4tosca/tests/test-analytical-operators-mean/index.html @@ -7760,7 +7760,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-analytical-operators-median/index.html b/variability4tosca/tests/test-analytical-operators-median/index.html index 0d95c80cd..3506a8a62 100644 --- a/variability4tosca/tests/test-analytical-operators-median/index.html +++ b/variability4tosca/tests/test-analytical-operators-median/index.html @@ -7760,7 +7760,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-analytical-operators-min/index.html b/variability4tosca/tests/test-analytical-operators-min/index.html index fc25085fb..820c1ffd8 100644 --- a/variability4tosca/tests/test-analytical-operators-min/index.html +++ b/variability4tosca/tests/test-analytical-operators-min/index.html @@ -7758,7 +7758,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-analytical-operators-polynomial_regression/index.html b/variability4tosca/tests/test-analytical-operators-polynomial_regression/index.html index 396cc3203..ab86f1302 100644 --- a/variability4tosca/tests/test-analytical-operators-polynomial_regression/index.html +++ b/variability4tosca/tests/test-analytical-operators-polynomial_regression/index.html @@ -7766,7 +7766,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-analytical-operators-standard_deviation/index.html b/variability4tosca/tests/test-analytical-operators-standard_deviation/index.html index a1aedb062..82a9facf3 100644 --- a/variability4tosca/tests/test-analytical-operators-standard_deviation/index.html +++ b/variability4tosca/tests/test-analytical-operators-standard_deviation/index.html @@ -7758,7 +7758,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-analytical-operators-sum/index.html b/variability4tosca/tests/test-analytical-operators-sum/index.html index 5f2872628..f8901d72d 100644 --- a/variability4tosca/tests/test-analytical-operators-sum/index.html +++ b/variability4tosca/tests/test-analytical-operators-sum/index.html @@ -7758,7 +7758,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-analytical-operators-variance/index.html b/variability4tosca/tests/test-analytical-operators-variance/index.html index ed95ce423..3ffe48793 100644 --- a/variability4tosca/tests/test-analytical-operators-variance/index.html +++ b/variability4tosca/tests/test-analytical-operators-variance/index.html @@ -7758,7 +7758,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-arithmetic-operators-add/index.html b/variability4tosca/tests/test-arithmetic-operators-add/index.html index 6db43cde5..eb6f8c45a 100644 --- a/variability4tosca/tests/test-arithmetic-operators-add/index.html +++ b/variability4tosca/tests/test-arithmetic-operators-add/index.html @@ -7778,7 +7778,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-arithmetic-operators-div/index.html b/variability4tosca/tests/test-arithmetic-operators-div/index.html index 5e8aed3fa..10355685e 100644 --- a/variability4tosca/tests/test-arithmetic-operators-div/index.html +++ b/variability4tosca/tests/test-arithmetic-operators-div/index.html @@ -7774,7 +7774,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-arithmetic-operators-mod-even/index.html b/variability4tosca/tests/test-arithmetic-operators-mod-even/index.html index 3284ac3bc..7c2e2bc61 100644 --- a/variability4tosca/tests/test-arithmetic-operators-mod-even/index.html +++ b/variability4tosca/tests/test-arithmetic-operators-mod-even/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-arithmetic-operators-mod-odd/index.html b/variability4tosca/tests/test-arithmetic-operators-mod-odd/index.html index ff6130481..52bf52343 100644 --- a/variability4tosca/tests/test-arithmetic-operators-mod-odd/index.html +++ b/variability4tosca/tests/test-arithmetic-operators-mod-odd/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-arithmetic-operators-mul/index.html b/variability4tosca/tests/test-arithmetic-operators-mul/index.html index c4d9e15a9..77c8968b8 100644 --- a/variability4tosca/tests/test-arithmetic-operators-mul/index.html +++ b/variability4tosca/tests/test-arithmetic-operators-mul/index.html @@ -7774,7 +7774,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-arithmetic-operators-sub/index.html b/variability4tosca/tests/test-arithmetic-operators-sub/index.html index a1f745011..ef3278681 100644 --- a/variability4tosca/tests/test-arithmetic-operators-sub/index.html +++ b/variability4tosca/tests/test-arithmetic-operators-sub/index.html @@ -7778,7 +7778,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-artifact-presence-number-absent/index.html b/variability4tosca/tests/test-artifacts-artifact-presence-number-absent/index.html index d14e076ac..1caf15af1 100644 --- a/variability4tosca/tests/test-artifacts-artifact-presence-number-absent/index.html +++ b/variability4tosca/tests/test-artifacts-artifact-presence-number-absent/index.html @@ -7752,7 +7752,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-artifact-presence-number-present/index.html b/variability4tosca/tests/test-artifacts-artifact-presence-number-present/index.html index 2ad79ed53..3f5adaed3 100644 --- a/variability4tosca/tests/test-artifacts-artifact-presence-number-present/index.html +++ b/variability4tosca/tests/test-artifacts-artifact-presence-number-present/index.html @@ -7768,7 +7768,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-artifact-presence-string-absent/index.html b/variability4tosca/tests/test-artifacts-artifact-presence-string-absent/index.html index 44b51ab35..6e67df4f0 100644 --- a/variability4tosca/tests/test-artifacts-artifact-presence-string-absent/index.html +++ b/variability4tosca/tests/test-artifacts-artifact-presence-string-absent/index.html @@ -7752,7 +7752,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-artifact-presence-string-present/index.html b/variability4tosca/tests/test-artifacts-artifact-presence-string-present/index.html index 6733fa1e7..44b1d8bb1 100644 --- a/variability4tosca/tests/test-artifacts-artifact-presence-string-present/index.html +++ b/variability4tosca/tests/test-artifacts-artifact-presence-string-present/index.html @@ -7768,7 +7768,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-conditional/index.html b/variability4tosca/tests/test-artifacts-conditional/index.html index d1480f7dd..06291c21d 100644 --- a/variability4tosca/tests/test-artifacts-conditional/index.html +++ b/variability4tosca/tests/test-artifacts-conditional/index.html @@ -7824,7 +7824,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-container-presence-absent/index.html b/variability4tosca/tests/test-artifacts-container-presence-absent/index.html index 7164edec4..025abf20e 100644 --- a/variability4tosca/tests/test-artifacts-container-presence-absent/index.html +++ b/variability4tosca/tests/test-artifacts-container-presence-absent/index.html @@ -7748,7 +7748,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-container-presence-present/index.html b/variability4tosca/tests/test-artifacts-container-presence-present/index.html index 38c33abfe..22b84c027 100644 --- a/variability4tosca/tests/test-artifacts-container-presence-present/index.html +++ b/variability4tosca/tests/test-artifacts-container-presence-present/index.html @@ -7756,7 +7756,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-default-alternative-false/index.html b/variability4tosca/tests/test-artifacts-default-alternative-false/index.html index fcd423a01..2da6ee24a 100644 --- a/variability4tosca/tests/test-artifacts-default-alternative-false/index.html +++ b/variability4tosca/tests/test-artifacts-default-alternative-false/index.html @@ -7818,7 +7818,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-default-alternative/index.html b/variability4tosca/tests/test-artifacts-default-alternative/index.html index efe22caae..884491d75 100644 --- a/variability4tosca/tests/test-artifacts-default-alternative/index.html +++ b/variability4tosca/tests/test-artifacts-default-alternative/index.html @@ -7824,7 +7824,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-default-condition/index.html b/variability4tosca/tests/test-artifacts-default-condition/index.html index 8905bc415..9496ba2ed 100644 --- a/variability4tosca/tests/test-artifacts-default-condition/index.html +++ b/variability4tosca/tests/test-artifacts-default-condition/index.html @@ -7758,7 +7758,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-dont-throw-ambiguous-artifact/index.html b/variability4tosca/tests/test-artifacts-dont-throw-ambiguous-artifact/index.html index ea9c8b90b..2cbc3c3f9 100644 --- a/variability4tosca/tests/test-artifacts-dont-throw-ambiguous-artifact/index.html +++ b/variability4tosca/tests/test-artifacts-dont-throw-ambiguous-artifact/index.html @@ -7786,7 +7786,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-prune/index.html b/variability4tosca/tests/test-artifacts-prune/index.html index d788021ba..832239125 100644 --- a/variability4tosca/tests/test-artifacts-prune/index.html +++ b/variability4tosca/tests/test-artifacts-prune/index.html @@ -7760,7 +7760,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-pruning-managed-manual/index.html b/variability4tosca/tests/test-artifacts-pruning-managed-manual/index.html index a36783407..8623b04ce 100644 --- a/variability4tosca/tests/test-artifacts-pruning-managed-manual/index.html +++ b/variability4tosca/tests/test-artifacts-pruning-managed-manual/index.html @@ -7822,7 +7822,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-pruning-managed-rules-host/index.html b/variability4tosca/tests/test-artifacts-pruning-managed-rules-host/index.html index 5b9f8f40b..644e309b9 100644 --- a/variability4tosca/tests/test-artifacts-pruning-managed-rules-host/index.html +++ b/variability4tosca/tests/test-artifacts-pruning-managed-rules-host/index.html @@ -7870,7 +7870,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-pruning-managed-rules-multiple-different/index.html b/variability4tosca/tests/test-artifacts-pruning-managed-rules-multiple-different/index.html index 20c80a9d8..0d1c0282d 100644 --- a/variability4tosca/tests/test-artifacts-pruning-managed-rules-multiple-different/index.html +++ b/variability4tosca/tests/test-artifacts-pruning-managed-rules-multiple-different/index.html @@ -7854,7 +7854,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-pruning-managed-rules-none/index.html b/variability4tosca/tests/test-artifacts-pruning-managed-rules-none/index.html index 20c957bfd..08756f3bb 100644 --- a/variability4tosca/tests/test-artifacts-pruning-managed-rules-none/index.html +++ b/variability4tosca/tests/test-artifacts-pruning-managed-rules-none/index.html @@ -7820,7 +7820,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-pruning-managed-rules/index.html b/variability4tosca/tests/test-artifacts-pruning-managed-rules/index.html index 75d26a439..91f1cf746 100644 --- a/variability4tosca/tests/test-artifacts-pruning-managed-rules/index.html +++ b/variability4tosca/tests/test-artifacts-pruning-managed-rules/index.html @@ -7814,7 +7814,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-pruning-manged-rules-multiple-same/index.html b/variability4tosca/tests/test-artifacts-pruning-manged-rules-multiple-same/index.html index a02af16ec..f282180da 100644 --- a/variability4tosca/tests/test-artifacts-pruning-manged-rules-multiple-same/index.html +++ b/variability4tosca/tests/test-artifacts-pruning-manged-rules-multiple-same/index.html @@ -7854,7 +7854,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-required-artifact-constraint-sat-pruning/index.html b/variability4tosca/tests/test-artifacts-required-artifact-constraint-sat-pruning/index.html index a68f82e97..b4e81abff 100644 --- a/variability4tosca/tests/test-artifacts-required-artifact-constraint-sat-pruning/index.html +++ b/variability4tosca/tests/test-artifacts-required-artifact-constraint-sat-pruning/index.html @@ -7754,7 +7754,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-required-artifact-constraint-sat/index.html b/variability4tosca/tests/test-artifacts-required-artifact-constraint-sat/index.html index 6f75b19ff..4bbe8b585 100644 --- a/variability4tosca/tests/test-artifacts-required-artifact-constraint-sat/index.html +++ b/variability4tosca/tests/test-artifacts-required-artifact-constraint-sat/index.html @@ -7764,7 +7764,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-required-artifact-constraint-unsat/index.html b/variability4tosca/tests/test-artifacts-required-artifact-constraint-unsat/index.html index 4b0262753..a49d2090a 100644 --- a/variability4tosca/tests/test-artifacts-required-artifact-constraint-unsat/index.html +++ b/variability4tosca/tests/test-artifacts-required-artifact-constraint-unsat/index.html @@ -7752,7 +7752,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-throw-ambiguous-artifact/index.html b/variability4tosca/tests/test-artifacts-throw-ambiguous-artifact/index.html index 49b555df3..8e3bee9ff 100644 --- a/variability4tosca/tests/test-artifacts-throw-ambiguous-artifact/index.html +++ b/variability4tosca/tests/test-artifacts-throw-ambiguous-artifact/index.html @@ -7740,7 +7740,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-throw-ambiguous-default/index.html b/variability4tosca/tests/test-artifacts-throw-ambiguous-default/index.html index d85fbc87c..b88afbb93 100644 --- a/variability4tosca/tests/test-artifacts-throw-ambiguous-default/index.html +++ b/variability4tosca/tests/test-artifacts-throw-ambiguous-default/index.html @@ -7744,7 +7744,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-throw-missing-artifact-container/index.html b/variability4tosca/tests/test-artifacts-throw-missing-artifact-container/index.html index b3981af9b..5bfc55090 100644 --- a/variability4tosca/tests/test-artifacts-throw-missing-artifact-container/index.html +++ b/variability4tosca/tests/test-artifacts-throw-missing-artifact-container/index.html @@ -7738,7 +7738,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-none/index.html b/variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-none/index.html index 05bb5d628..27974c7b7 100644 --- a/variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-none/index.html +++ b/variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-none/index.html @@ -7778,7 +7778,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-one/index.html b/variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-one/index.html index 21ca8970b..1f9a1c97e 100644 --- a/variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-one/index.html +++ b/variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-one/index.html @@ -7780,7 +7780,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-other/index.html b/variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-other/index.html index c668d427f..f6a8d6225 100644 --- a/variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-other/index.html +++ b/variability4tosca/tests/test-artifacts-unique-artifact-constraint-sat-other/index.html @@ -7780,7 +7780,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-artifacts-unique-artifact-constraint-unsat/index.html b/variability4tosca/tests/test-artifacts-unique-artifact-constraint-unsat/index.html index 9e623299a..9f6267961 100644 --- a/variability4tosca/tests/test-artifacts-unique-artifact-constraint-unsat/index.html +++ b/variability4tosca/tests/test-artifacts-unique-artifact-constraint-unsat/index.html @@ -7762,7 +7762,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-boolean-operators-and-empty/index.html b/variability4tosca/tests/test-boolean-operators-and-empty/index.html index e4053f4f2..5d4ff0ccd 100644 --- a/variability4tosca/tests/test-boolean-operators-and-empty/index.html +++ b/variability4tosca/tests/test-boolean-operators-and-empty/index.html @@ -7764,7 +7764,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-boolean-operators-and-false/index.html b/variability4tosca/tests/test-boolean-operators-and-false/index.html index ddcc0f718..0f23cb76f 100644 --- a/variability4tosca/tests/test-boolean-operators-and-false/index.html +++ b/variability4tosca/tests/test-boolean-operators-and-false/index.html @@ -7764,7 +7764,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-boolean-operators-and-nested-false/index.html b/variability4tosca/tests/test-boolean-operators-and-nested-false/index.html index e3b05e7f5..6247b2de7 100644 --- a/variability4tosca/tests/test-boolean-operators-and-nested-false/index.html +++ b/variability4tosca/tests/test-boolean-operators-and-nested-false/index.html @@ -7764,7 +7764,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-boolean-operators-and-nested-true/index.html b/variability4tosca/tests/test-boolean-operators-and-nested-true/index.html index cfe098053..2c54d418e 100644 --- a/variability4tosca/tests/test-boolean-operators-and-nested-true/index.html +++ b/variability4tosca/tests/test-boolean-operators-and-nested-true/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-boolean-operators-and-true/index.html b/variability4tosca/tests/test-boolean-operators-and-true/index.html index e238ce1f9..ad9c6be5c 100644 --- a/variability4tosca/tests/test-boolean-operators-and-true/index.html +++ b/variability4tosca/tests/test-boolean-operators-and-true/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-boolean-operators-exo-false-all/index.html b/variability4tosca/tests/test-boolean-operators-exo-false-all/index.html index 40f94571d..722a0dc90 100644 --- a/variability4tosca/tests/test-boolean-operators-exo-false-all/index.html +++ b/variability4tosca/tests/test-boolean-operators-exo-false-all/index.html @@ -7764,7 +7764,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-boolean-operators-exo-true-all/index.html b/variability4tosca/tests/test-boolean-operators-exo-true-all/index.html index f8dabe5a3..c67ac8752 100644 --- a/variability4tosca/tests/test-boolean-operators-exo-true-all/index.html +++ b/variability4tosca/tests/test-boolean-operators-exo-true-all/index.html @@ -7764,7 +7764,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-boolean-operators-exo-true/index.html b/variability4tosca/tests/test-boolean-operators-exo-true/index.html index 5949dfa9b..1f18efa07 100644 --- a/variability4tosca/tests/test-boolean-operators-exo-true/index.html +++ b/variability4tosca/tests/test-boolean-operators-exo-true/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-boolean-operators-implies-false-false-true/index.html b/variability4tosca/tests/test-boolean-operators-implies-false-false-true/index.html index 800ee026e..ac465d574 100644 --- a/variability4tosca/tests/test-boolean-operators-implies-false-false-true/index.html +++ b/variability4tosca/tests/test-boolean-operators-implies-false-false-true/index.html @@ -7768,7 +7768,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-boolean-operators-implies-false-true-true/index.html b/variability4tosca/tests/test-boolean-operators-implies-false-true-true/index.html index b087ab6a3..4bdd0d230 100644 --- a/variability4tosca/tests/test-boolean-operators-implies-false-true-true/index.html +++ b/variability4tosca/tests/test-boolean-operators-implies-false-true-true/index.html @@ -7768,7 +7768,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-boolean-operators-implies-true-false-false/index.html b/variability4tosca/tests/test-boolean-operators-implies-true-false-false/index.html index 25418d4f0..e9f93eb68 100644 --- a/variability4tosca/tests/test-boolean-operators-implies-true-false-false/index.html +++ b/variability4tosca/tests/test-boolean-operators-implies-true-false-false/index.html @@ -7760,7 +7760,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-boolean-operators-implies-true-true-true/index.html b/variability4tosca/tests/test-boolean-operators-implies-true-true-true/index.html index 657e63f72..a8d98ad02 100644 --- a/variability4tosca/tests/test-boolean-operators-implies-true-true-true/index.html +++ b/variability4tosca/tests/test-boolean-operators-implies-true-true-true/index.html @@ -7768,7 +7768,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-boolean-operators-not-false/index.html b/variability4tosca/tests/test-boolean-operators-not-false/index.html index ac1585592..dca86e62d 100644 --- a/variability4tosca/tests/test-boolean-operators-not-false/index.html +++ b/variability4tosca/tests/test-boolean-operators-not-false/index.html @@ -7756,7 +7756,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-boolean-operators-not-true/index.html b/variability4tosca/tests/test-boolean-operators-not-true/index.html index 65a149cdf..f7a62b847 100644 --- a/variability4tosca/tests/test-boolean-operators-not-true/index.html +++ b/variability4tosca/tests/test-boolean-operators-not-true/index.html @@ -7764,7 +7764,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-boolean-operators-or-empty/index.html b/variability4tosca/tests/test-boolean-operators-or-empty/index.html index 8b85e8e11..c9c925bf4 100644 --- a/variability4tosca/tests/test-boolean-operators-or-empty/index.html +++ b/variability4tosca/tests/test-boolean-operators-or-empty/index.html @@ -7756,7 +7756,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-boolean-operators-or-false/index.html b/variability4tosca/tests/test-boolean-operators-or-false/index.html index 177f24fd5..3cb263789 100644 --- a/variability4tosca/tests/test-boolean-operators-or-false/index.html +++ b/variability4tosca/tests/test-boolean-operators-or-false/index.html @@ -7764,7 +7764,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-boolean-operators-or-true-all/index.html b/variability4tosca/tests/test-boolean-operators-or-true-all/index.html index 4fbbaa45f..68e054d48 100644 --- a/variability4tosca/tests/test-boolean-operators-or-true-all/index.html +++ b/variability4tosca/tests/test-boolean-operators-or-true-all/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-boolean-operators-or-true/index.html b/variability4tosca/tests/test-boolean-operators-or-true/index.html index b82e4b5a6..8530db3b5 100644 --- a/variability4tosca/tests/test-boolean-operators-or-true/index.html +++ b/variability4tosca/tests/test-boolean-operators-or-true/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-circles-alpha/index.html b/variability4tosca/tests/test-circles-alpha/index.html index 6e8da7e5a..4501ad019 100644 --- a/variability4tosca/tests/test-circles-alpha/index.html +++ b/variability4tosca/tests/test-circles-alpha/index.html @@ -7785,7 +7785,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-circles-bravo/index.html b/variability4tosca/tests/test-circles-bravo/index.html index 2d495ade5..197f1e263 100644 --- a/variability4tosca/tests/test-circles-bravo/index.html +++ b/variability4tosca/tests/test-circles-bravo/index.html @@ -7804,7 +7804,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-circles-charlie/index.html b/variability4tosca/tests/test-circles-charlie/index.html index c75c1abd5..ada443f0d 100644 --- a/variability4tosca/tests/test-circles-charlie/index.html +++ b/variability4tosca/tests/test-circles-charlie/index.html @@ -7772,7 +7772,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-circles-delta/index.html b/variability4tosca/tests/test-circles-delta/index.html index 219b0cbc4..5c9f05dfe 100644 --- a/variability4tosca/tests/test-circles-delta/index.html +++ b/variability4tosca/tests/test-circles-delta/index.html @@ -7799,7 +7799,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-circles-echo/index.html b/variability4tosca/tests/test-circles-echo/index.html index f59f4e2fe..958342af9 100644 --- a/variability4tosca/tests/test-circles-echo/index.html +++ b/variability4tosca/tests/test-circles-echo/index.html @@ -7790,7 +7790,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-circles-golf/index.html b/variability4tosca/tests/test-circles-golf/index.html index 36f647f3e..c0ff1fb2b 100644 --- a/variability4tosca/tests/test-circles-golf/index.html +++ b/variability4tosca/tests/test-circles-golf/index.html @@ -7796,7 +7796,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-circles-hotel/index.html b/variability4tosca/tests/test-circles-hotel/index.html index d5ab795d9..fba339efa 100644 --- a/variability4tosca/tests/test-circles-hotel/index.html +++ b/variability4tosca/tests/test-circles-hotel/index.html @@ -7787,7 +7787,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-circles-india/index.html b/variability4tosca/tests/test-circles-india/index.html index 2647c37fc..7c1a39fec 100644 --- a/variability4tosca/tests/test-circles-india/index.html +++ b/variability4tosca/tests/test-circles-india/index.html @@ -7818,7 +7818,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-consistency-throw-hosting-relation-missing-constraint/index.html b/variability4tosca/tests/test-consistency-throw-hosting-relation-missing-constraint/index.html index e7b8f5485..992cf6cd1 100644 --- a/variability4tosca/tests/test-consistency-throw-hosting-relation-missing-constraint/index.html +++ b/variability4tosca/tests/test-consistency-throw-hosting-relation-missing-constraint/index.html @@ -7752,7 +7752,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-consistency-throw-hosting-relation-missing/index.html b/variability4tosca/tests/test-consistency-throw-hosting-relation-missing/index.html index 03b3b6f9a..f61a95282 100644 --- a/variability4tosca/tests/test-consistency-throw-hosting-relation-missing/index.html +++ b/variability4tosca/tests/test-consistency-throw-hosting-relation-missing/index.html @@ -7752,7 +7752,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-consistency-throw-multiple-hosting-relations-constraint/index.html b/variability4tosca/tests/test-consistency-throw-multiple-hosting-relations-constraint/index.html index fdaeee0ef..2f73b6c10 100644 --- a/variability4tosca/tests/test-consistency-throw-multiple-hosting-relations-constraint/index.html +++ b/variability4tosca/tests/test-consistency-throw-multiple-hosting-relations-constraint/index.html @@ -7760,7 +7760,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-consistency-throw-multiple-hosting-relations/index.html b/variability4tosca/tests/test-consistency-throw-multiple-hosting-relations/index.html index c6456570d..c36a3d49b 100644 --- a/variability4tosca/tests/test-consistency-throw-multiple-hosting-relations/index.html +++ b/variability4tosca/tests/test-consistency-throw-multiple-hosting-relations/index.html @@ -7758,7 +7758,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-consistency-throw-relation-source-missing/index.html b/variability4tosca/tests/test-consistency-throw-relation-source-missing/index.html index f17d524a3..31138f71e 100644 --- a/variability4tosca/tests/test-consistency-throw-relation-source-missing/index.html +++ b/variability4tosca/tests/test-consistency-throw-relation-source-missing/index.html @@ -7744,7 +7744,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-consistency-throw-relation-target-missing/index.html b/variability4tosca/tests/test-consistency-throw-relation-target-missing/index.html index e86821ee1..c4e059cdc 100644 --- a/variability4tosca/tests/test-consistency-throw-relation-target-missing/index.html +++ b/variability4tosca/tests/test-consistency-throw-relation-target-missing/index.html @@ -7746,7 +7746,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-equal-false/index.html b/variability4tosca/tests/test-constraint-operators-equal-false/index.html index 30d0f4401..f4170b0f5 100644 --- a/variability4tosca/tests/test-constraint-operators-equal-false/index.html +++ b/variability4tosca/tests/test-constraint-operators-equal-false/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-equal-true/index.html b/variability4tosca/tests/test-constraint-operators-equal-true/index.html index 2451b277d..01d4538dc 100644 --- a/variability4tosca/tests/test-constraint-operators-equal-true/index.html +++ b/variability4tosca/tests/test-constraint-operators-equal-true/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-greater-or-equal-equal/index.html b/variability4tosca/tests/test-constraint-operators-greater-or-equal-equal/index.html index dbb7a319c..743a5de29 100644 --- a/variability4tosca/tests/test-constraint-operators-greater-or-equal-equal/index.html +++ b/variability4tosca/tests/test-constraint-operators-greater-or-equal-equal/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-greater-or-equal-greater/index.html b/variability4tosca/tests/test-constraint-operators-greater-or-equal-greater/index.html index 83791cdd8..1c1e5d4b0 100644 --- a/variability4tosca/tests/test-constraint-operators-greater-or-equal-greater/index.html +++ b/variability4tosca/tests/test-constraint-operators-greater-or-equal-greater/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-greater-or-equal-less/index.html b/variability4tosca/tests/test-constraint-operators-greater-or-equal-less/index.html index 53f2a9138..3afa091dd 100644 --- a/variability4tosca/tests/test-constraint-operators-greater-or-equal-less/index.html +++ b/variability4tosca/tests/test-constraint-operators-greater-or-equal-less/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-greater-than-equal/index.html b/variability4tosca/tests/test-constraint-operators-greater-than-equal/index.html index b0c92b50b..ce2dacd4a 100644 --- a/variability4tosca/tests/test-constraint-operators-greater-than-equal/index.html +++ b/variability4tosca/tests/test-constraint-operators-greater-than-equal/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-greater-than-greater/index.html b/variability4tosca/tests/test-constraint-operators-greater-than-greater/index.html index 617a9c782..cb22cf047 100644 --- a/variability4tosca/tests/test-constraint-operators-greater-than-greater/index.html +++ b/variability4tosca/tests/test-constraint-operators-greater-than-greater/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-greater-than-less/index.html b/variability4tosca/tests/test-constraint-operators-greater-than-less/index.html index d34704791..6a6a76bc0 100644 --- a/variability4tosca/tests/test-constraint-operators-greater-than-less/index.html +++ b/variability4tosca/tests/test-constraint-operators-greater-than-less/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-in_range_false/index.html b/variability4tosca/tests/test-constraint-operators-in_range_false/index.html index 56733d617..eafde1080 100644 --- a/variability4tosca/tests/test-constraint-operators-in_range_false/index.html +++ b/variability4tosca/tests/test-constraint-operators-in_range_false/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-in_range_true/index.html b/variability4tosca/tests/test-constraint-operators-in_range_true/index.html index 3eb1ee9c3..60b0e6098 100644 --- a/variability4tosca/tests/test-constraint-operators-in_range_true/index.html +++ b/variability4tosca/tests/test-constraint-operators-in_range_true/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-length_false/index.html b/variability4tosca/tests/test-constraint-operators-length_false/index.html index c95737a77..18fba0c30 100644 --- a/variability4tosca/tests/test-constraint-operators-length_false/index.html +++ b/variability4tosca/tests/test-constraint-operators-length_false/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-length_true/index.html b/variability4tosca/tests/test-constraint-operators-length_true/index.html index c74d49b59..11ea57a6b 100644 --- a/variability4tosca/tests/test-constraint-operators-length_true/index.html +++ b/variability4tosca/tests/test-constraint-operators-length_true/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-less_or_equal_equal/index.html b/variability4tosca/tests/test-constraint-operators-less_or_equal_equal/index.html index 1291fbfcc..bb671c68e 100644 --- a/variability4tosca/tests/test-constraint-operators-less_or_equal_equal/index.html +++ b/variability4tosca/tests/test-constraint-operators-less_or_equal_equal/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-less_or_equal_greater/index.html b/variability4tosca/tests/test-constraint-operators-less_or_equal_greater/index.html index 752baced0..39ff5783e 100644 --- a/variability4tosca/tests/test-constraint-operators-less_or_equal_greater/index.html +++ b/variability4tosca/tests/test-constraint-operators-less_or_equal_greater/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-less_or_equal_less/index.html b/variability4tosca/tests/test-constraint-operators-less_or_equal_less/index.html index f60888e64..2a8f5e935 100644 --- a/variability4tosca/tests/test-constraint-operators-less_or_equal_less/index.html +++ b/variability4tosca/tests/test-constraint-operators-less_or_equal_less/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-less_than_equal/index.html b/variability4tosca/tests/test-constraint-operators-less_than_equal/index.html index 4dadfdc9e..9ecff1655 100644 --- a/variability4tosca/tests/test-constraint-operators-less_than_equal/index.html +++ b/variability4tosca/tests/test-constraint-operators-less_than_equal/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-less_than_greater/index.html b/variability4tosca/tests/test-constraint-operators-less_than_greater/index.html index 7a01a7300..ee7ba492d 100644 --- a/variability4tosca/tests/test-constraint-operators-less_than_greater/index.html +++ b/variability4tosca/tests/test-constraint-operators-less_than_greater/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-less_than_less/index.html b/variability4tosca/tests/test-constraint-operators-less_than_less/index.html index 5269a1801..1cceff63a 100644 --- a/variability4tosca/tests/test-constraint-operators-less_than_less/index.html +++ b/variability4tosca/tests/test-constraint-operators-less_than_less/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-max_length_equal/index.html b/variability4tosca/tests/test-constraint-operators-max_length_equal/index.html index 23fc3c0fe..4bbb0a408 100644 --- a/variability4tosca/tests/test-constraint-operators-max_length_equal/index.html +++ b/variability4tosca/tests/test-constraint-operators-max_length_equal/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-max_length_greater/index.html b/variability4tosca/tests/test-constraint-operators-max_length_greater/index.html index 2737807b3..14a54666f 100644 --- a/variability4tosca/tests/test-constraint-operators-max_length_greater/index.html +++ b/variability4tosca/tests/test-constraint-operators-max_length_greater/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-max_length_less/index.html b/variability4tosca/tests/test-constraint-operators-max_length_less/index.html index ee2a41a88..85d9458e5 100644 --- a/variability4tosca/tests/test-constraint-operators-max_length_less/index.html +++ b/variability4tosca/tests/test-constraint-operators-max_length_less/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-min_length_equal/index.html b/variability4tosca/tests/test-constraint-operators-min_length_equal/index.html index 46708cdba..68502275e 100644 --- a/variability4tosca/tests/test-constraint-operators-min_length_equal/index.html +++ b/variability4tosca/tests/test-constraint-operators-min_length_equal/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-min_length_greater/index.html b/variability4tosca/tests/test-constraint-operators-min_length_greater/index.html index f0e0021ad..9d8af5cfa 100644 --- a/variability4tosca/tests/test-constraint-operators-min_length_greater/index.html +++ b/variability4tosca/tests/test-constraint-operators-min_length_greater/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-min_length_less/index.html b/variability4tosca/tests/test-constraint-operators-min_length_less/index.html index c108fcb45..859851bf7 100644 --- a/variability4tosca/tests/test-constraint-operators-min_length_less/index.html +++ b/variability4tosca/tests/test-constraint-operators-min_length_less/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-valid_values_false/index.html b/variability4tosca/tests/test-constraint-operators-valid_values_false/index.html index 0f77d17ed..29ed62b5e 100644 --- a/variability4tosca/tests/test-constraint-operators-valid_values_false/index.html +++ b/variability4tosca/tests/test-constraint-operators-valid_values_false/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-constraint-operators-valid_values_true/index.html b/variability4tosca/tests/test-constraint-operators-valid_values_true/index.html index 8ff669496..9912f024b 100644 --- a/variability4tosca/tests/test-constraint-operators-valid_values_true/index.html +++ b/variability4tosca/tests/test-constraint-operators-valid_values_true/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-date-operators-after-false/index.html b/variability4tosca/tests/test-date-operators-after-false/index.html index f83e7a047..ed5d0f231 100644 --- a/variability4tosca/tests/test-date-operators-after-false/index.html +++ b/variability4tosca/tests/test-date-operators-after-false/index.html @@ -7754,7 +7754,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-date-operators-after-or-same-false/index.html b/variability4tosca/tests/test-date-operators-after-or-same-false/index.html index 0e84cc6b8..341db6175 100644 --- a/variability4tosca/tests/test-date-operators-after-or-same-false/index.html +++ b/variability4tosca/tests/test-date-operators-after-or-same-false/index.html @@ -7754,7 +7754,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-date-operators-after-or-same-true/index.html b/variability4tosca/tests/test-date-operators-after-or-same-true/index.html index c79d4e9ee..e9f532a32 100644 --- a/variability4tosca/tests/test-date-operators-after-or-same-true/index.html +++ b/variability4tosca/tests/test-date-operators-after-or-same-true/index.html @@ -7754,7 +7754,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-date-operators-after-true/index.html b/variability4tosca/tests/test-date-operators-after-true/index.html index bda769028..5a7a17f91 100644 --- a/variability4tosca/tests/test-date-operators-after-true/index.html +++ b/variability4tosca/tests/test-date-operators-after-true/index.html @@ -7754,7 +7754,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-date-operators-before-false/index.html b/variability4tosca/tests/test-date-operators-before-false/index.html index c134b45b6..144540ea7 100644 --- a/variability4tosca/tests/test-date-operators-before-false/index.html +++ b/variability4tosca/tests/test-date-operators-before-false/index.html @@ -7754,7 +7754,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-date-operators-before-or-same-false/index.html b/variability4tosca/tests/test-date-operators-before-or-same-false/index.html index 2872ba8e6..e434dd757 100644 --- a/variability4tosca/tests/test-date-operators-before-or-same-false/index.html +++ b/variability4tosca/tests/test-date-operators-before-or-same-false/index.html @@ -7754,7 +7754,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-date-operators-before-or-same-true/index.html b/variability4tosca/tests/test-date-operators-before-or-same-true/index.html index f308bc697..c792b8066 100644 --- a/variability4tosca/tests/test-date-operators-before-or-same-true/index.html +++ b/variability4tosca/tests/test-date-operators-before-or-same-true/index.html @@ -7754,7 +7754,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-date-operators-before-true/index.html b/variability4tosca/tests/test-date-operators-before-true/index.html index eefd64e39..50aa729b2 100644 --- a/variability4tosca/tests/test-date-operators-before-true/index.html +++ b/variability4tosca/tests/test-date-operators-before-true/index.html @@ -7754,7 +7754,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-date-operators-same-false/index.html b/variability4tosca/tests/test-date-operators-same-false/index.html index 0270618cd..77563f530 100644 --- a/variability4tosca/tests/test-date-operators-same-false/index.html +++ b/variability4tosca/tests/test-date-operators-same-false/index.html @@ -7754,7 +7754,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-date-operators-same-true/index.html b/variability4tosca/tests/test-date-operators-same-true/index.html index 89eb1e39c..1a2c7ef53 100644 --- a/variability4tosca/tests/test-date-operators-same-true/index.html +++ b/variability4tosca/tests/test-date-operators-same-true/index.html @@ -7754,7 +7754,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-date-operators-within-false/index.html b/variability4tosca/tests/test-date-operators-within-false/index.html index 73c147688..1b6612178 100644 --- a/variability4tosca/tests/test-date-operators-within-false/index.html +++ b/variability4tosca/tests/test-date-operators-within-false/index.html @@ -7756,7 +7756,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-date-operators-within-true/index.html b/variability4tosca/tests/test-date-operators-within-true/index.html index ab62aa4e4..6fc077464 100644 --- a/variability4tosca/tests/test-date-operators-within-true/index.html +++ b/variability4tosca/tests/test-date-operators-within-true/index.html @@ -7756,7 +7756,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-groups-conditional/index.html b/variability4tosca/tests/test-groups-conditional/index.html index b9a38de3e..9acf57bfc 100644 --- a/variability4tosca/tests/test-groups-conditional/index.html +++ b/variability4tosca/tests/test-groups-conditional/index.html @@ -7911,7 +7911,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-groups-default-condition-nothing/index.html b/variability4tosca/tests/test-groups-default-condition-nothing/index.html index a7c0dd3fe..ea0923f1c 100644 --- a/variability4tosca/tests/test-groups-default-condition-nothing/index.html +++ b/variability4tosca/tests/test-groups-default-condition-nothing/index.html @@ -7912,7 +7912,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-groups-default-condition/index.html b/variability4tosca/tests/test-groups-default-condition/index.html index 7bb4a981a..e7753cd2e 100644 --- a/variability4tosca/tests/test-groups-default-condition/index.html +++ b/variability4tosca/tests/test-groups-default-condition/index.html @@ -7890,7 +7890,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-groups-group-presence-absent/index.html b/variability4tosca/tests/test-groups-group-presence-absent/index.html index b36d04fde..4fb53677c 100644 --- a/variability4tosca/tests/test-groups-group-presence-absent/index.html +++ b/variability4tosca/tests/test-groups-group-presence-absent/index.html @@ -7750,7 +7750,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-groups-group-presence-present/index.html b/variability4tosca/tests/test-groups-group-presence-present/index.html index c1a302420..6c13bac2f 100644 --- a/variability4tosca/tests/test-groups-group-presence-present/index.html +++ b/variability4tosca/tests/test-groups-group-presence-present/index.html @@ -7766,7 +7766,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-groups-prune/index.html b/variability4tosca/tests/test-groups-prune/index.html index e325b3475..ec0043d2f 100644 --- a/variability4tosca/tests/test-groups-prune/index.html +++ b/variability4tosca/tests/test-groups-prune/index.html @@ -7892,7 +7892,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-hosting-aware-pruning-constraints-elastic/index.html b/variability4tosca/tests/test-hosting-aware-pruning-constraints-elastic/index.html index e0e439435..45de0d521 100644 --- a/variability4tosca/tests/test-hosting-aware-pruning-constraints-elastic/index.html +++ b/variability4tosca/tests/test-hosting-aware-pruning-constraints-elastic/index.html @@ -7912,7 +7912,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-hosting-aware-pruning-constraints-static/index.html b/variability4tosca/tests/test-hosting-aware-pruning-constraints-static/index.html index 6a3a65990..bf5c7c55c 100644 --- a/variability4tosca/tests/test-hosting-aware-pruning-constraints-static/index.html +++ b/variability4tosca/tests/test-hosting-aware-pruning-constraints-static/index.html @@ -7912,7 +7912,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-hosting-aware-pruning-fig-10-broken/index.html b/variability4tosca/tests/test-hosting-aware-pruning-fig-10-broken/index.html index cdf23ae0c..46bf9486e 100644 --- a/variability4tosca/tests/test-hosting-aware-pruning-fig-10-broken/index.html +++ b/variability4tosca/tests/test-hosting-aware-pruning-fig-10-broken/index.html @@ -7770,7 +7770,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-hosting-aware-pruning-fig-10-fixed/index.html b/variability4tosca/tests/test-hosting-aware-pruning-fig-10-fixed/index.html index 3a806592e..47ed9e44c 100644 --- a/variability4tosca/tests/test-hosting-aware-pruning-fig-10-fixed/index.html +++ b/variability4tosca/tests/test-hosting-aware-pruning-fig-10-fixed/index.html @@ -7792,7 +7792,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-hosting-aware-pruning-host-elastic/index.html b/variability4tosca/tests/test-hosting-aware-pruning-host-elastic/index.html index 9ba7042a3..fbb2cd876 100644 --- a/variability4tosca/tests/test-hosting-aware-pruning-host-elastic/index.html +++ b/variability4tosca/tests/test-hosting-aware-pruning-host-elastic/index.html @@ -7870,7 +7870,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-hosting-aware-pruning-host-static/index.html b/variability4tosca/tests/test-hosting-aware-pruning-host-static/index.html index bba1c04d7..26ea617f8 100644 --- a/variability4tosca/tests/test-hosting-aware-pruning-host-static/index.html +++ b/variability4tosca/tests/test-hosting-aware-pruning-host-static/index.html @@ -7912,7 +7912,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-hosting-aware-pruning-motivation-elastic/index.html b/variability4tosca/tests/test-hosting-aware-pruning-motivation-elastic/index.html index d371ca303..6a00a25ca 100644 --- a/variability4tosca/tests/test-hosting-aware-pruning-motivation-elastic/index.html +++ b/variability4tosca/tests/test-hosting-aware-pruning-motivation-elastic/index.html @@ -7920,7 +7920,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-hosting-aware-pruning-motivation-static/index.html b/variability4tosca/tests/test-hosting-aware-pruning-motivation-static/index.html index 6938fe3bf..9f3e1d5c6 100644 --- a/variability4tosca/tests/test-hosting-aware-pruning-motivation-static/index.html +++ b/variability4tosca/tests/test-hosting-aware-pruning-motivation-static/index.html @@ -7962,7 +7962,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-hosting-aware-pruning-provider-elastic/index.html b/variability4tosca/tests/test-hosting-aware-pruning-provider-elastic/index.html index 8c7562370..cacc0f49b 100644 --- a/variability4tosca/tests/test-hosting-aware-pruning-provider-elastic/index.html +++ b/variability4tosca/tests/test-hosting-aware-pruning-provider-elastic/index.html @@ -7866,7 +7866,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-hosting-aware-pruning-provider-static/index.html b/variability4tosca/tests/test-hosting-aware-pruning-provider-static/index.html index 8d55ecfc5..525637f07 100644 --- a/variability4tosca/tests/test-hosting-aware-pruning-provider-static/index.html +++ b/variability4tosca/tests/test-hosting-aware-pruning-provider-static/index.html @@ -7924,7 +7924,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-hosting-aware-pruning-transitive-ambiguous/index.html b/variability4tosca/tests/test-hosting-aware-pruning-transitive-ambiguous/index.html index dc62adb0b..3bac4e24e 100644 --- a/variability4tosca/tests/test-hosting-aware-pruning-transitive-ambiguous/index.html +++ b/variability4tosca/tests/test-hosting-aware-pruning-transitive-ambiguous/index.html @@ -7790,7 +7790,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-hosting-aware-pruning-transitive-both/index.html b/variability4tosca/tests/test-hosting-aware-pruning-transitive-both/index.html index 767ec441d..26a9b75cc 100644 --- a/variability4tosca/tests/test-hosting-aware-pruning-transitive-both/index.html +++ b/variability4tosca/tests/test-hosting-aware-pruning-transitive-both/index.html @@ -7823,7 +7823,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-hosting-aware-pruning-transitive-preserved/index.html b/variability4tosca/tests/test-hosting-aware-pruning-transitive-preserved/index.html index 1f0f8fd78..690933ffd 100644 --- a/variability4tosca/tests/test-hosting-aware-pruning-transitive-preserved/index.html +++ b/variability4tosca/tests/test-hosting-aware-pruning-transitive-preserved/index.html @@ -7821,7 +7821,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-hosting-aware-pruning-transitive-unexpected/index.html b/variability4tosca/tests/test-hosting-aware-pruning-transitive-unexpected/index.html index 8470f1732..d24d1ff74 100644 --- a/variability4tosca/tests/test-hosting-aware-pruning-transitive-unexpected/index.html +++ b/variability4tosca/tests/test-hosting-aware-pruning-transitive-unexpected/index.html @@ -7806,7 +7806,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-constraints/index.html b/variability4tosca/tests/test-implications-constraints/index.html index 8f3e22ba4..dbe64d97b 100644 --- a/variability4tosca/tests/test-implications-constraints/index.html +++ b/variability4tosca/tests/test-implications-constraints/index.html @@ -7910,7 +7910,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-implied-left/index.html b/variability4tosca/tests/test-implications-implied-left/index.html index 205d098bf..feeb85d8e 100644 --- a/variability4tosca/tests/test-implications-implied-left/index.html +++ b/variability4tosca/tests/test-implications-implied-left/index.html @@ -7872,7 +7872,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-implied-right/index.html b/variability4tosca/tests/test-implications-implied-right/index.html index 93d345894..4158974f6 100644 --- a/variability4tosca/tests/test-implications-implied-right/index.html +++ b/variability4tosca/tests/test-implications-implied-right/index.html @@ -7864,7 +7864,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-implies-left/index.html b/variability4tosca/tests/test-implications-implies-left/index.html index 90302f743..9a50f7bdb 100644 --- a/variability4tosca/tests/test-implications-implies-left/index.html +++ b/variability4tosca/tests/test-implications-implies-left/index.html @@ -7874,7 +7874,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-implies-right/index.html b/variability4tosca/tests/test-implications-implies-right/index.html index 06157d0b7..491c93e12 100644 --- a/variability4tosca/tests/test-implications-implies-right/index.html +++ b/variability4tosca/tests/test-implications-implies-right/index.html @@ -7866,7 +7866,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-incoming-left/index.html b/variability4tosca/tests/test-implications-incoming-left/index.html index 54de0debc..22d95bb8a 100644 --- a/variability4tosca/tests/test-implications-incoming-left/index.html +++ b/variability4tosca/tests/test-implications-incoming-left/index.html @@ -7840,7 +7840,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-incoming-right/index.html b/variability4tosca/tests/test-implications-incoming-right/index.html index 8ab43d878..8678f1cac 100644 --- a/variability4tosca/tests/test-implications-incoming-right/index.html +++ b/variability4tosca/tests/test-implications-incoming-right/index.html @@ -7848,7 +7848,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-motivating-scenario-cloud/index.html b/variability4tosca/tests/test-implications-motivating-scenario-cloud/index.html index cf1a2aaf7..83ae554a7 100644 --- a/variability4tosca/tests/test-implications-motivating-scenario-cloud/index.html +++ b/variability4tosca/tests/test-implications-motivating-scenario-cloud/index.html @@ -7930,7 +7930,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-motivating-scenario-static/index.html b/variability4tosca/tests/test-implications-motivating-scenario-static/index.html index 78584fd46..9e5fb692c 100644 --- a/variability4tosca/tests/test-implications-motivating-scenario-static/index.html +++ b/variability4tosca/tests/test-implications-motivating-scenario-static/index.html @@ -7954,7 +7954,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-naive-constraints/index.html b/variability4tosca/tests/test-implications-naive-constraints/index.html index a2da6accc..013c7c430 100644 --- a/variability4tosca/tests/test-implications-naive-constraints/index.html +++ b/variability4tosca/tests/test-implications-naive-constraints/index.html @@ -7930,7 +7930,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-naive-implied-left/index.html b/variability4tosca/tests/test-implications-naive-implied-left/index.html index ffd3eab59..4a8dae980 100644 --- a/variability4tosca/tests/test-implications-naive-implied-left/index.html +++ b/variability4tosca/tests/test-implications-naive-implied-left/index.html @@ -7872,7 +7872,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-naive-implied-right/index.html b/variability4tosca/tests/test-implications-naive-implied-right/index.html index d4e8f7115..0c29d62d9 100644 --- a/variability4tosca/tests/test-implications-naive-implied-right/index.html +++ b/variability4tosca/tests/test-implications-naive-implied-right/index.html @@ -7864,7 +7864,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-naive-implies-left/index.html b/variability4tosca/tests/test-implications-naive-implies-left/index.html index 93e2232bc..a25e2a8f1 100644 --- a/variability4tosca/tests/test-implications-naive-implies-left/index.html +++ b/variability4tosca/tests/test-implications-naive-implies-left/index.html @@ -7874,7 +7874,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-naive-implies-right/index.html b/variability4tosca/tests/test-implications-naive-implies-right/index.html index 0ea7c48f3..e4dad62b4 100644 --- a/variability4tosca/tests/test-implications-naive-implies-right/index.html +++ b/variability4tosca/tests/test-implications-naive-implies-right/index.html @@ -7866,7 +7866,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-naive-incoming-left/index.html b/variability4tosca/tests/test-implications-naive-incoming-left/index.html index 02d11bfdc..ba59c71af 100644 --- a/variability4tosca/tests/test-implications-naive-incoming-left/index.html +++ b/variability4tosca/tests/test-implications-naive-incoming-left/index.html @@ -7840,7 +7840,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-naive-incoming-right/index.html b/variability4tosca/tests/test-implications-naive-incoming-right/index.html index f5745871c..e42eae06a 100644 --- a/variability4tosca/tests/test-implications-naive-incoming-right/index.html +++ b/variability4tosca/tests/test-implications-naive-incoming-right/index.html @@ -7848,7 +7848,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-naive-motivating-scenario-cloud/index.html b/variability4tosca/tests/test-implications-naive-motivating-scenario-cloud/index.html index faaf36dbb..4f1ebe545 100644 --- a/variability4tosca/tests/test-implications-naive-motivating-scenario-cloud/index.html +++ b/variability4tosca/tests/test-implications-naive-motivating-scenario-cloud/index.html @@ -7930,7 +7930,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-naive-motivating-scenario-static/index.html b/variability4tosca/tests/test-implications-naive-motivating-scenario-static/index.html index 07835fa43..a5a9ffb77 100644 --- a/variability4tosca/tests/test-implications-naive-motivating-scenario-static/index.html +++ b/variability4tosca/tests/test-implications-naive-motivating-scenario-static/index.html @@ -7954,7 +7954,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-naive-naive-another-no-optimization/index.html b/variability4tosca/tests/test-implications-naive-naive-another-no-optimization/index.html index 0efa43aae..da4eb7e7b 100644 --- a/variability4tosca/tests/test-implications-naive-naive-another-no-optimization/index.html +++ b/variability4tosca/tests/test-implications-naive-naive-another-no-optimization/index.html @@ -7812,7 +7812,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-naive-naive-another-not/index.html b/variability4tosca/tests/test-implications-naive-naive-another-not/index.html index f0af60f79..4abfbbf65 100644 --- a/variability4tosca/tests/test-implications-naive-naive-another-not/index.html +++ b/variability4tosca/tests/test-implications-naive-naive-another-not/index.html @@ -7786,7 +7786,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-naive-naive-another/index.html b/variability4tosca/tests/test-implications-naive-naive-another/index.html index eefe1df0b..1bb03e54a 100644 --- a/variability4tosca/tests/test-implications-naive-naive-another/index.html +++ b/variability4tosca/tests/test-implications-naive-naive-another/index.html @@ -7812,7 +7812,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-naive-naive-not/index.html b/variability4tosca/tests/test-implications-naive-naive-not/index.html index b23252761..1e32f23d0 100644 --- a/variability4tosca/tests/test-implications-naive-naive-not/index.html +++ b/variability4tosca/tests/test-implications-naive-naive-not/index.html @@ -7770,7 +7770,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-naive-naive/index.html b/variability4tosca/tests/test-implications-naive-naive/index.html index ddca86f86..144b06fb1 100644 --- a/variability4tosca/tests/test-implications-naive-naive/index.html +++ b/variability4tosca/tests/test-implications-naive-naive/index.html @@ -7770,7 +7770,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-naive-requires/index.html b/variability4tosca/tests/test-implications-naive-requires/index.html index 4678dc041..f1a2269f3 100644 --- a/variability4tosca/tests/test-implications-naive-requires/index.html +++ b/variability4tosca/tests/test-implications-naive-requires/index.html @@ -7826,7 +7826,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-naive-unexpected/index.html b/variability4tosca/tests/test-implications-naive-unexpected/index.html index 943a02364..6bd466646 100644 --- a/variability4tosca/tests/test-implications-naive-unexpected/index.html +++ b/variability4tosca/tests/test-implications-naive-unexpected/index.html @@ -7792,7 +7792,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-requires/index.html b/variability4tosca/tests/test-implications-requires/index.html index 2c5585c14..28c3d2f9e 100644 --- a/variability4tosca/tests/test-implications-requires/index.html +++ b/variability4tosca/tests/test-implications-requires/index.html @@ -7826,7 +7826,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implications-unexpected/index.html b/variability4tosca/tests/test-implications-unexpected/index.html index fe33d6e0f..12972fc1e 100644 --- a/variability4tosca/tests/test-implications-unexpected/index.html +++ b/variability4tosca/tests/test-implications-unexpected/index.html @@ -7792,7 +7792,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implied-default-fixed-left/index.html b/variability4tosca/tests/test-implied-default-fixed-left/index.html index b5ebc7455..5dc4867a3 100644 --- a/variability4tosca/tests/test-implied-default-fixed-left/index.html +++ b/variability4tosca/tests/test-implied-default-fixed-left/index.html @@ -7832,7 +7832,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implied-default-fixed-right/index.html b/variability4tosca/tests/test-implied-default-fixed-right/index.html index 69ea68610..76f9ad0b2 100644 --- a/variability4tosca/tests/test-implied-default-fixed-right/index.html +++ b/variability4tosca/tests/test-implied-default-fixed-right/index.html @@ -7832,7 +7832,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implied-default-manual-left/index.html b/variability4tosca/tests/test-implied-default-manual-left/index.html index 0c7c87825..1dc9db4c5 100644 --- a/variability4tosca/tests/test-implied-default-manual-left/index.html +++ b/variability4tosca/tests/test-implied-default-manual-left/index.html @@ -7836,7 +7836,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implied-default-manual-right/index.html b/variability4tosca/tests/test-implied-default-manual-right/index.html index d1b6b3115..b054a2c67 100644 --- a/variability4tosca/tests/test-implied-default-manual-right/index.html +++ b/variability4tosca/tests/test-implied-default-manual-right/index.html @@ -7836,7 +7836,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implied-host-broken/index.html b/variability4tosca/tests/test-implied-host-broken/index.html index 1b6223457..13f41378c 100644 --- a/variability4tosca/tests/test-implied-host-broken/index.html +++ b/variability4tosca/tests/test-implied-host-broken/index.html @@ -7826,7 +7826,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implied-host-fixed-left/index.html b/variability4tosca/tests/test-implied-host-fixed-left/index.html index 69493b6f8..dfd32336a 100644 --- a/variability4tosca/tests/test-implied-host-fixed-left/index.html +++ b/variability4tosca/tests/test-implied-host-fixed-left/index.html @@ -7818,7 +7818,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implied-host-fixed-right/index.html b/variability4tosca/tests/test-implied-host-fixed-right/index.html index 654b6993b..5205ede9a 100644 --- a/variability4tosca/tests/test-implied-host-fixed-right/index.html +++ b/variability4tosca/tests/test-implied-host-fixed-right/index.html @@ -7818,7 +7818,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implied-host-manual-left/index.html b/variability4tosca/tests/test-implied-host-manual-left/index.html index 3d3351799..b4b65e22e 100644 --- a/variability4tosca/tests/test-implied-host-manual-left/index.html +++ b/variability4tosca/tests/test-implied-host-manual-left/index.html @@ -7826,7 +7826,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-implied-host-manual-right/index.html b/variability4tosca/tests/test-implied-host-manual-right/index.html index b0e408f91..2db747542 100644 --- a/variability4tosca/tests/test-implied-host-manual-right/index.html +++ b/variability4tosca/tests/test-implied-host-manual-right/index.html @@ -7826,7 +7826,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-import-conditional/index.html b/variability4tosca/tests/test-import-conditional/index.html index 0dae0bb09..0b2bfb26e 100644 --- a/variability4tosca/tests/test-import-conditional/index.html +++ b/variability4tosca/tests/test-import-conditional/index.html @@ -7736,7 +7736,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-import-empty/index.html b/variability4tosca/tests/test-import-empty/index.html index 4c364a3ec..3d67fafb7 100644 --- a/variability4tosca/tests/test-import-empty/index.html +++ b/variability4tosca/tests/test-import-empty/index.html @@ -7732,7 +7732,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-import-get-import-absent/index.html b/variability4tosca/tests/test-import-get-import-absent/index.html index 75b8916a9..d26f2c1fd 100644 --- a/variability4tosca/tests/test-import-get-import-absent/index.html +++ b/variability4tosca/tests/test-import-get-import-absent/index.html @@ -7746,7 +7746,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-import-get-import-present/index.html b/variability4tosca/tests/test-import-get-import-present/index.html index cf3fdf9d7..fe2aef9fb 100644 --- a/variability4tosca/tests/test-import-get-import-present/index.html +++ b/variability4tosca/tests/test-import-get-import-present/index.html @@ -7758,7 +7758,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-inputs-conditional-list/index.html b/variability4tosca/tests/test-inputs-conditional-list/index.html index 769825bc2..fb71cc571 100644 --- a/variability4tosca/tests/test-inputs-conditional-list/index.html +++ b/variability4tosca/tests/test-inputs-conditional-list/index.html @@ -7760,7 +7760,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-inputs-conditional/index.html b/variability4tosca/tests/test-inputs-conditional/index.html index cf798fbbe..baa06cde5 100644 --- a/variability4tosca/tests/test-inputs-conditional/index.html +++ b/variability4tosca/tests/test-inputs-conditional/index.html @@ -7760,7 +7760,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-inputs-default-alternative/index.html b/variability4tosca/tests/test-inputs-default-alternative/index.html index f7715ab1e..5d4e242e3 100644 --- a/variability4tosca/tests/test-inputs-default-alternative/index.html +++ b/variability4tosca/tests/test-inputs-default-alternative/index.html @@ -7752,7 +7752,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-inputs-input-presence-absent/index.html b/variability4tosca/tests/test-inputs-input-presence-absent/index.html index 634b05cb6..65cd6310d 100644 --- a/variability4tosca/tests/test-inputs-input-presence-absent/index.html +++ b/variability4tosca/tests/test-inputs-input-presence-absent/index.html @@ -7748,7 +7748,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-inputs-input-presence-present/index.html b/variability4tosca/tests/test-inputs-input-presence-present/index.html index fc9df7ab9..ec1ab0e64 100644 --- a/variability4tosca/tests/test-inputs-input-presence-present/index.html +++ b/variability4tosca/tests/test-inputs-input-presence-present/index.html @@ -7762,7 +7762,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-inputs-pruning-consumed-still/index.html b/variability4tosca/tests/test-inputs-pruning-consumed-still/index.html index 2b8c6153a..e55515bb4 100644 --- a/variability4tosca/tests/test-inputs-pruning-consumed-still/index.html +++ b/variability4tosca/tests/test-inputs-pruning-consumed-still/index.html @@ -7790,7 +7790,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-inputs-pruning-consumed/index.html b/variability4tosca/tests/test-inputs-pruning-consumed/index.html index cd734aa0a..1b6d77ba8 100644 --- a/variability4tosca/tests/test-inputs-pruning-consumed/index.html +++ b/variability4tosca/tests/test-inputs-pruning-consumed/index.html @@ -7778,7 +7778,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-inputs-pruning-no-consumer/index.html b/variability4tosca/tests/test-inputs-pruning-no-consumer/index.html index f15b11e9b..33c507d55 100644 --- a/variability4tosca/tests/test-inputs-pruning-no-consumer/index.html +++ b/variability4tosca/tests/test-inputs-pruning-no-consumer/index.html @@ -7744,7 +7744,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-inputs-pruning-not-consumed-anymore-v3/index.html b/variability4tosca/tests/test-inputs-pruning-not-consumed-anymore-v3/index.html index 8ed767430..e37464f3a 100644 --- a/variability4tosca/tests/test-inputs-pruning-not-consumed-anymore-v3/index.html +++ b/variability4tosca/tests/test-inputs-pruning-not-consumed-anymore-v3/index.html @@ -7754,7 +7754,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-inputs-pruning-not-consumed-anymore/index.html b/variability4tosca/tests/test-inputs-pruning-not-consumed-anymore/index.html index 42f6ccd12..a7de62e3a 100644 --- a/variability4tosca/tests/test-inputs-pruning-not-consumed-anymore/index.html +++ b/variability4tosca/tests/test-inputs-pruning-not-consumed-anymore/index.html @@ -7758,7 +7758,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-inputs-unique-input-constraint-sat-other/index.html b/variability4tosca/tests/test-inputs-unique-input-constraint-sat-other/index.html index a3d0c684e..aa28019a6 100644 --- a/variability4tosca/tests/test-inputs-unique-input-constraint-sat-other/index.html +++ b/variability4tosca/tests/test-inputs-unique-input-constraint-sat-other/index.html @@ -7760,7 +7760,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed-default/index.html b/variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed-default/index.html index 3f06b03d6..52cd5f7ce 100644 --- a/variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed-default/index.html +++ b/variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed-default/index.html @@ -7786,7 +7786,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed/index.html b/variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed/index.html index eb662efaa..fb0d3714a 100644 --- a/variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed/index.html +++ b/variability4tosca/tests/test-inputs-unique-input-constraint-sat-pruning-consumed/index.html @@ -7784,7 +7784,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-inputs-unique-input-constraint-sat/index.html b/variability4tosca/tests/test-inputs-unique-input-constraint-sat/index.html index e82cc37c3..f77a1b755 100644 --- a/variability4tosca/tests/test-inputs-unique-input-constraint-sat/index.html +++ b/variability4tosca/tests/test-inputs-unique-input-constraint-sat/index.html @@ -7760,7 +7760,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-inputs-unique-input-constraint-unsat/index.html b/variability4tosca/tests/test-inputs-unique-input-constraint-unsat/index.html index d512625d4..4900387c0 100644 --- a/variability4tosca/tests/test-inputs-unique-input-constraint-unsat/index.html +++ b/variability4tosca/tests/test-inputs-unique-input-constraint-unsat/index.html @@ -7762,7 +7762,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-conditional-type-default/index.html b/variability4tosca/tests/test-nodes-conditional-type-default/index.html index 735b50ce5..8ce8b31bd 100644 --- a/variability4tosca/tests/test-nodes-conditional-type-default/index.html +++ b/variability4tosca/tests/test-nodes-conditional-type-default/index.html @@ -7746,7 +7746,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-conditional-type/index.html b/variability4tosca/tests/test-nodes-conditional-type/index.html index 2cd9c718c..a2586d038 100644 --- a/variability4tosca/tests/test-nodes-conditional-type/index.html +++ b/variability4tosca/tests/test-nodes-conditional-type/index.html @@ -7746,7 +7746,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-conditional/index.html b/variability4tosca/tests/test-nodes-conditional/index.html index eb004b6ef..b50083a87 100644 --- a/variability4tosca/tests/test-nodes-conditional/index.html +++ b/variability4tosca/tests/test-nodes-conditional/index.html @@ -7776,7 +7776,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-default-false-false/index.html b/variability4tosca/tests/test-nodes-default-false-false/index.html index 9916fe44d..f5fd88ba0 100644 --- a/variability4tosca/tests/test-nodes-default-false-false/index.html +++ b/variability4tosca/tests/test-nodes-default-false-false/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-default-false-true/index.html b/variability4tosca/tests/test-nodes-default-false-true/index.html index 400df35eb..803a21c81 100644 --- a/variability4tosca/tests/test-nodes-default-false-true/index.html +++ b/variability4tosca/tests/test-nodes-default-false-true/index.html @@ -7762,7 +7762,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-default-host-absent/index.html b/variability4tosca/tests/test-nodes-default-host-absent/index.html index 5eb3620b1..84b9f9d28 100644 --- a/variability4tosca/tests/test-nodes-default-host-absent/index.html +++ b/variability4tosca/tests/test-nodes-default-host-absent/index.html @@ -7756,7 +7756,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-default-host-present/index.html b/variability4tosca/tests/test-nodes-default-host-present/index.html index ce3876d6b..55e60be11 100644 --- a/variability4tosca/tests/test-nodes-default-host-present/index.html +++ b/variability4tosca/tests/test-nodes-default-host-present/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-default-true-false/index.html b/variability4tosca/tests/test-nodes-default-true-false/index.html index 0b480e0e2..0b278e1f4 100644 --- a/variability4tosca/tests/test-nodes-default-true-false/index.html +++ b/variability4tosca/tests/test-nodes-default-true-false/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-default-true-true/index.html b/variability4tosca/tests/test-nodes-default-true-true/index.html index 788db6706..3edf4a1aa 100644 --- a/variability4tosca/tests/test-nodes-default-true-true/index.html +++ b/variability4tosca/tests/test-nodes-default-true-true/index.html @@ -7762,7 +7762,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-host-presence-absent/index.html b/variability4tosca/tests/test-nodes-host-presence-absent/index.html index 997d21086..4497563e2 100644 --- a/variability4tosca/tests/test-nodes-host-presence-absent/index.html +++ b/variability4tosca/tests/test-nodes-host-presence-absent/index.html @@ -7752,7 +7752,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-host-presence-false-false/index.html b/variability4tosca/tests/test-nodes-host-presence-false-false/index.html index 2c1de84b6..a85637ad5 100644 --- a/variability4tosca/tests/test-nodes-host-presence-false-false/index.html +++ b/variability4tosca/tests/test-nodes-host-presence-false-false/index.html @@ -7760,7 +7760,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-host-presence-present/index.html b/variability4tosca/tests/test-nodes-host-presence-present/index.html index 7f857ac2e..10a1b2a6e 100644 --- a/variability4tosca/tests/test-nodes-host-presence-present/index.html +++ b/variability4tosca/tests/test-nodes-host-presence-present/index.html @@ -7766,7 +7766,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-host-presence-true-false/index.html b/variability4tosca/tests/test-nodes-host-presence-true-false/index.html index 347ac574a..ecdfffcdf 100644 --- a/variability4tosca/tests/test-nodes-host-presence-true-false/index.html +++ b/variability4tosca/tests/test-nodes-host-presence-true-false/index.html @@ -7776,7 +7776,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-host-presence-true-true-constraint/index.html b/variability4tosca/tests/test-nodes-host-presence-true-true-constraint/index.html index 6169c1d00..3f8a8558c 100644 --- a/variability4tosca/tests/test-nodes-host-presence-true-true-constraint/index.html +++ b/variability4tosca/tests/test-nodes-host-presence-true-true-constraint/index.html @@ -7762,7 +7762,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-host-presence-true-true/index.html b/variability4tosca/tests/test-nodes-host-presence-true-true/index.html index 6eb109385..3e7a8b204 100644 --- a/variability4tosca/tests/test-nodes-host-presence-true-true/index.html +++ b/variability4tosca/tests/test-nodes-host-presence-true-true/index.html @@ -7762,7 +7762,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-node-presence-absent/index.html b/variability4tosca/tests/test-nodes-node-presence-absent/index.html index 1a61e9f00..745676aff 100644 --- a/variability4tosca/tests/test-nodes-node-presence-absent/index.html +++ b/variability4tosca/tests/test-nodes-node-presence-absent/index.html @@ -7746,7 +7746,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-node-presence-present/index.html b/variability4tosca/tests/test-nodes-node-presence-present/index.html index f6a7f7f87..537b522f7 100644 --- a/variability4tosca/tests/test-nodes-node-presence-present/index.html +++ b/variability4tosca/tests/test-nodes-node-presence-present/index.html @@ -7758,7 +7758,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-required-incoming-relation-constraint-sat/index.html b/variability4tosca/tests/test-nodes-required-incoming-relation-constraint-sat/index.html index 7cd91c6ac..83761aaab 100644 --- a/variability4tosca/tests/test-nodes-required-incoming-relation-constraint-sat/index.html +++ b/variability4tosca/tests/test-nodes-required-incoming-relation-constraint-sat/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-required-incoming-relation-constraint-unsat/index.html b/variability4tosca/tests/test-nodes-required-incoming-relation-constraint-unsat/index.html index 66eae9565..4f424fe09 100644 --- a/variability4tosca/tests/test-nodes-required-incoming-relation-constraint-unsat/index.html +++ b/variability4tosca/tests/test-nodes-required-incoming-relation-constraint-unsat/index.html @@ -7758,7 +7758,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-nodes-type-specific/index.html b/variability4tosca/tests/test-nodes-type-specific/index.html index d7be25a6a..4d598b7fb 100644 --- a/variability4tosca/tests/test-nodes-type-specific/index.html +++ b/variability4tosca/tests/test-nodes-type-specific/index.html @@ -7760,7 +7760,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-other-benchmark/index.html b/variability4tosca/tests/test-other-benchmark/index.html index 62bb9610c..ee93c3f64 100644 --- a/variability4tosca/tests/test-other-benchmark/index.html +++ b/variability4tosca/tests/test-other-benchmark/index.html @@ -7938,7 +7938,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-other-concat/index.html b/variability4tosca/tests/test-other-concat/index.html index a8d5dec63..bf13f01b4 100644 --- a/variability4tosca/tests/test-other-concat/index.html +++ b/variability4tosca/tests/test-other-concat/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-other-default-variability-input/index.html b/variability4tosca/tests/test-other-default-variability-input/index.html index 14bfe1f34..39b0f0f0a 100644 --- a/variability4tosca/tests/test-other-default-variability-input/index.html +++ b/variability4tosca/tests/test-other-default-variability-input/index.html @@ -7782,7 +7782,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-other-join/index.html b/variability4tosca/tests/test-other-join/index.html index eb5d7555a..c72c6b4f7 100644 --- a/variability4tosca/tests/test-other-join/index.html +++ b/variability4tosca/tests/test-other-join/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-other-logic-expression-false/index.html b/variability4tosca/tests/test-other-logic-expression-false/index.html index a316f1f50..ef66351ad 100644 --- a/variability4tosca/tests/test-other-logic-expression-false/index.html +++ b/variability4tosca/tests/test-other-logic-expression-false/index.html @@ -7752,7 +7752,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-other-logic-expression-true/index.html b/variability4tosca/tests/test-other-logic-expression-true/index.html index bc2c5d3c6..a8e3261da 100644 --- a/variability4tosca/tests/test-other-logic-expression-true/index.html +++ b/variability4tosca/tests/test-other-logic-expression-true/index.html @@ -7764,7 +7764,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-other-logic-value-expression/index.html b/variability4tosca/tests/test-other-logic-value-expression/index.html index 68938a551..b82d76eb6 100644 --- a/variability4tosca/tests/test-other-logic-value-expression/index.html +++ b/variability4tosca/tests/test-other-logic-value-expression/index.html @@ -7766,7 +7766,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-other-nothing/index.html b/variability4tosca/tests/test-other-nothing/index.html index 92e6e1e45..671749e15 100644 --- a/variability4tosca/tests/test-other-nothing/index.html +++ b/variability4tosca/tests/test-other-nothing/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-other-preset/index.html b/variability4tosca/tests/test-other-preset/index.html index 03ad0cdcd..afbf001b6 100644 --- a/variability4tosca/tests/test-other-preset/index.html +++ b/variability4tosca/tests/test-other-preset/index.html @@ -7810,7 +7810,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-other-presets/index.html b/variability4tosca/tests/test-other-presets/index.html index eeb1d939b..17a105108 100644 --- a/variability4tosca/tests/test-other-presets/index.html +++ b/variability4tosca/tests/test-other-presets/index.html @@ -7810,7 +7810,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-other-throw-CONTAINER/index.html b/variability4tosca/tests/test-other-throw-CONTAINER/index.html index 042d77f66..ec5988da6 100644 --- a/variability4tosca/tests/test-other-throw-CONTAINER/index.html +++ b/variability4tosca/tests/test-other-throw-CONTAINER/index.html @@ -7730,7 +7730,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-other-throw-SELF/index.html b/variability4tosca/tests/test-other-throw-SELF/index.html index 8c6514c61..fcbc850e8 100644 --- a/variability4tosca/tests/test-other-throw-SELF/index.html +++ b/variability4tosca/tests/test-other-throw-SELF/index.html @@ -7730,7 +7730,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-other-throw-not-unique/index.html b/variability4tosca/tests/test-other-throw-not-unique/index.html index 7e971a066..1645dc768 100644 --- a/variability4tosca/tests/test-other-throw-not-unique/index.html +++ b/variability4tosca/tests/test-other-throw-not-unique/index.html @@ -7768,7 +7768,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-other-token/index.html b/variability4tosca/tests/test-other-token/index.html index 2930f7f9f..c1f1007aa 100644 --- a/variability4tosca/tests/test-other-token/index.html +++ b/variability4tosca/tests/test-other-token/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-other-value-expression/index.html b/variability4tosca/tests/test-other-value-expression/index.html index 6859c317e..24698fff8 100644 --- a/variability4tosca/tests/test-other-value-expression/index.html +++ b/variability4tosca/tests/test-other-value-expression/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-other-variability-input/index.html b/variability4tosca/tests/test-other-variability-input/index.html index 967e6979c..0e86806d7 100644 --- a/variability4tosca/tests/test-other-variability-input/index.html +++ b/variability4tosca/tests/test-other-variability-input/index.html @@ -7792,7 +7792,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-other-version/index.html b/variability4tosca/tests/test-other-version/index.html index cf0e4fee2..a23c140d3 100644 --- a/variability4tosca/tests/test-other-version/index.html +++ b/variability4tosca/tests/test-other-version/index.html @@ -7722,7 +7722,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-other-weight/index.html b/variability4tosca/tests/test-other-weight/index.html index f8c4c1f24..0237d4d4a 100644 --- a/variability4tosca/tests/test-other-weight/index.html +++ b/variability4tosca/tests/test-other-weight/index.html @@ -7740,7 +7740,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-outputs-conditional-list/index.html b/variability4tosca/tests/test-outputs-conditional-list/index.html index de30255cd..c4ce834c5 100644 --- a/variability4tosca/tests/test-outputs-conditional-list/index.html +++ b/variability4tosca/tests/test-outputs-conditional-list/index.html @@ -7760,7 +7760,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-outputs-conditional/index.html b/variability4tosca/tests/test-outputs-conditional/index.html index 36fbe0b5c..d70d8a16b 100644 --- a/variability4tosca/tests/test-outputs-conditional/index.html +++ b/variability4tosca/tests/test-outputs-conditional/index.html @@ -7760,7 +7760,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-outputs-default/index.html b/variability4tosca/tests/test-outputs-default/index.html index f31327a08..94517dfe5 100644 --- a/variability4tosca/tests/test-outputs-default/index.html +++ b/variability4tosca/tests/test-outputs-default/index.html @@ -7752,7 +7752,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-outputs-input-presence-absent/index.html b/variability4tosca/tests/test-outputs-input-presence-absent/index.html index 3ea8f7d7b..9e86c1af1 100644 --- a/variability4tosca/tests/test-outputs-input-presence-absent/index.html +++ b/variability4tosca/tests/test-outputs-input-presence-absent/index.html @@ -7748,7 +7748,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-outputs-input-presence-present/index.html b/variability4tosca/tests/test-outputs-input-presence-present/index.html index 5a85369b2..ee9074246 100644 --- a/variability4tosca/tests/test-outputs-input-presence-present/index.html +++ b/variability4tosca/tests/test-outputs-input-presence-present/index.html @@ -7762,7 +7762,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-1/index.html b/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-1/index.html index b1cb4df33..712cb6cb4 100644 --- a/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-1/index.html +++ b/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-1/index.html @@ -7758,7 +7758,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-2/index.html b/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-2/index.html index 056711b70..472138042 100644 --- a/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-2/index.html +++ b/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-unfurl-2/index.html @@ -7760,7 +7760,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera-v3/index.html b/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera-v3/index.html index 0457c3ba8..83c529924 100644 --- a/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera-v3/index.html +++ b/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera-v3/index.html @@ -7760,7 +7760,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera/index.html b/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera/index.html index 1532a2946..e5c3d77f6 100644 --- a/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera/index.html +++ b/variability4tosca/tests/test-outputs-pruning-not-produced-anymore-xopera/index.html @@ -7764,7 +7764,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute-not/index.html b/variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute-not/index.html index 0f32edba8..223f4d6f3 100644 --- a/variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute-not/index.html +++ b/variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute-not/index.html @@ -7778,7 +7778,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute/index.html b/variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute/index.html index 5d8377b63..2515d26ca 100644 --- a/variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute/index.html +++ b/variability4tosca/tests/test-outputs-pruning-produced-unfurl-attribute/index.html @@ -7794,7 +7794,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-outputs-pruning-produced-unfurl/index.html b/variability4tosca/tests/test-outputs-pruning-produced-unfurl/index.html index a4eabe5fc..c118f0c8b 100644 --- a/variability4tosca/tests/test-outputs-pruning-produced-unfurl/index.html +++ b/variability4tosca/tests/test-outputs-pruning-produced-unfurl/index.html @@ -7778,7 +7778,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-outputs-unique-output-constraint-sat-default/index.html b/variability4tosca/tests/test-outputs-unique-output-constraint-sat-default/index.html index 7fd5bdd8a..60bef8d33 100644 --- a/variability4tosca/tests/test-outputs-unique-output-constraint-sat-default/index.html +++ b/variability4tosca/tests/test-outputs-unique-output-constraint-sat-default/index.html @@ -7764,7 +7764,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-outputs-unique-output-constraint-sat-other/index.html b/variability4tosca/tests/test-outputs-unique-output-constraint-sat-other/index.html index 386e7bc80..5d7bdfd8c 100644 --- a/variability4tosca/tests/test-outputs-unique-output-constraint-sat-other/index.html +++ b/variability4tosca/tests/test-outputs-unique-output-constraint-sat-other/index.html @@ -7762,7 +7762,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-not-produced-anymore-xopera/index.html b/variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-not-produced-anymore-xopera/index.html index 2800b6dec..f5af74324 100644 --- a/variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-not-produced-anymore-xopera/index.html +++ b/variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-not-produced-anymore-xopera/index.html @@ -7784,7 +7784,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-produced-xopera/index.html b/variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-produced-xopera/index.html index 93916948a..925d0d605 100644 --- a/variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-produced-xopera/index.html +++ b/variability4tosca/tests/test-outputs-unique-output-constraint-sat-pruning-produced-xopera/index.html @@ -7808,7 +7808,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-outputs-unique-output-constraint-sat/index.html b/variability4tosca/tests/test-outputs-unique-output-constraint-sat/index.html index 226c9151a..92985e13e 100644 --- a/variability4tosca/tests/test-outputs-unique-output-constraint-sat/index.html +++ b/variability4tosca/tests/test-outputs-unique-output-constraint-sat/index.html @@ -7762,7 +7762,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-outputs-unique-output-constraint-unsat/index.html b/variability4tosca/tests/test-outputs-unique-output-constraint-unsat/index.html index 51ce77b9b..8aaca1b10 100644 --- a/variability4tosca/tests/test-outputs-unique-output-constraint-unsat/index.html +++ b/variability4tosca/tests/test-outputs-unique-output-constraint-unsat/index.html @@ -7748,7 +7748,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-persistent-persistent-false/index.html b/variability4tosca/tests/test-persistent-persistent-false/index.html index ab0d36422..98b8a60b4 100644 --- a/variability4tosca/tests/test-persistent-persistent-false/index.html +++ b/variability4tosca/tests/test-persistent-persistent-false/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-persistent-persistent-throw/index.html b/variability4tosca/tests/test-persistent-persistent-throw/index.html index d4075b106..136306a18 100644 --- a/variability4tosca/tests/test-persistent-persistent-throw/index.html +++ b/variability4tosca/tests/test-persistent-persistent-throw/index.html @@ -7766,7 +7766,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-persistent-persistent-undefined/index.html b/variability4tosca/tests/test-persistent-persistent-undefined/index.html index 51aee5f7b..e6f2ac5dd 100644 --- a/variability4tosca/tests/test-persistent-persistent-undefined/index.html +++ b/variability4tosca/tests/test-persistent-persistent-undefined/index.html @@ -7770,7 +7770,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-persistent-persistent/index.html b/variability4tosca/tests/test-persistent-persistent/index.html index b1fe2e8d8..970253f4a 100644 --- a/variability4tosca/tests/test-persistent-persistent/index.html +++ b/variability4tosca/tests/test-persistent-persistent/index.html @@ -7792,7 +7792,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-policies-conditional/index.html b/variability4tosca/tests/test-policies-conditional/index.html index 2f8ebfa35..c83b32a16 100644 --- a/variability4tosca/tests/test-policies-conditional/index.html +++ b/variability4tosca/tests/test-policies-conditional/index.html @@ -7822,7 +7822,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-policies-default-condition-nothing/index.html b/variability4tosca/tests/test-policies-default-condition-nothing/index.html index 5c71424b4..83475c947 100644 --- a/variability4tosca/tests/test-policies-default-condition-nothing/index.html +++ b/variability4tosca/tests/test-policies-default-condition-nothing/index.html @@ -7806,7 +7806,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-policies-default-condition/index.html b/variability4tosca/tests/test-policies-default-condition/index.html index 54f95ebab..04388e018 100644 --- a/variability4tosca/tests/test-policies-default-condition/index.html +++ b/variability4tosca/tests/test-policies-default-condition/index.html @@ -7798,7 +7798,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-policies-has-present-target-absent-members/index.html b/variability4tosca/tests/test-policies-has-present-target-absent-members/index.html index 00a0d1c91..64e4c301b 100644 --- a/variability4tosca/tests/test-policies-has-present-target-absent-members/index.html +++ b/variability4tosca/tests/test-policies-has-present-target-absent-members/index.html @@ -7826,7 +7826,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-policies-has-present-target-absent-nodes/index.html b/variability4tosca/tests/test-policies-has-present-target-absent-nodes/index.html index ee70e5cb2..a0c9aab1c 100644 --- a/variability4tosca/tests/test-policies-has-present-target-absent-nodes/index.html +++ b/variability4tosca/tests/test-policies-has-present-target-absent-nodes/index.html @@ -7790,7 +7790,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-policies-has-present-target-no-targets/index.html b/variability4tosca/tests/test-policies-has-present-target-no-targets/index.html index 41d68488c..ac28070eb 100644 --- a/variability4tosca/tests/test-policies-has-present-target-no-targets/index.html +++ b/variability4tosca/tests/test-policies-has-present-target-no-targets/index.html @@ -7758,7 +7758,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-policies-has-present-target-present-member/index.html b/variability4tosca/tests/test-policies-has-present-target-present-member/index.html index e944f2131..60a5799ec 100644 --- a/variability4tosca/tests/test-policies-has-present-target-present-member/index.html +++ b/variability4tosca/tests/test-policies-has-present-target-present-member/index.html @@ -7838,7 +7838,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-policies-has-present-target-present-node/index.html b/variability4tosca/tests/test-policies-has-present-target-present-node/index.html index ef2bf55fc..e62f60f9a 100644 --- a/variability4tosca/tests/test-policies-has-present-target-present-node/index.html +++ b/variability4tosca/tests/test-policies-has-present-target-present-node/index.html @@ -7802,7 +7802,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-policies-has-present-target-present-nodes/index.html b/variability4tosca/tests/test-policies-has-present-target-present-nodes/index.html index 47c967574..a9e9ade65 100644 --- a/variability4tosca/tests/test-policies-has-present-target-present-nodes/index.html +++ b/variability4tosca/tests/test-policies-has-present-target-present-nodes/index.html @@ -7804,7 +7804,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-policies-policy-presence-absent/index.html b/variability4tosca/tests/test-policies-policy-presence-absent/index.html index c08e87656..2da42f661 100644 --- a/variability4tosca/tests/test-policies-policy-presence-absent/index.html +++ b/variability4tosca/tests/test-policies-policy-presence-absent/index.html @@ -7750,7 +7750,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-policies-policy-presence-present/index.html b/variability4tosca/tests/test-policies-policy-presence-present/index.html index 852e2e1b9..5c564d8de 100644 --- a/variability4tosca/tests/test-policies-policy-presence-present/index.html +++ b/variability4tosca/tests/test-policies-policy-presence-present/index.html @@ -7766,7 +7766,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-policies-prune/index.html b/variability4tosca/tests/test-policies-prune/index.html index 305d44550..781a5f33f 100644 --- a/variability4tosca/tests/test-policies-prune/index.html +++ b/variability4tosca/tests/test-policies-prune/index.html @@ -7800,7 +7800,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-artifact-container-presence-absent/index.html b/variability4tosca/tests/test-properties-artifact-container-presence-absent/index.html index 4d9e31d5a..9a6b059f6 100644 --- a/variability4tosca/tests/test-properties-artifact-container-presence-absent/index.html +++ b/variability4tosca/tests/test-properties-artifact-container-presence-absent/index.html @@ -7764,7 +7764,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-artifact-container-presence-present/index.html b/variability4tosca/tests/test-properties-artifact-container-presence-present/index.html index 61fccacdf..10f558a96 100644 --- a/variability4tosca/tests/test-properties-artifact-container-presence-present/index.html +++ b/variability4tosca/tests/test-properties-artifact-container-presence-present/index.html @@ -7768,7 +7768,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-conditional/index.html b/variability4tosca/tests/test-properties-conditional/index.html index 13123d4f3..f077dbedb 100644 --- a/variability4tosca/tests/test-properties-conditional/index.html +++ b/variability4tosca/tests/test-properties-conditional/index.html @@ -7942,7 +7942,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-default-alternative-false/index.html b/variability4tosca/tests/test-properties-default-alternative-false/index.html index 82951fe2f..e749bd2b4 100644 --- a/variability4tosca/tests/test-properties-default-alternative-false/index.html +++ b/variability4tosca/tests/test-properties-default-alternative-false/index.html @@ -7794,7 +7794,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-default-alternative/index.html b/variability4tosca/tests/test-properties-default-alternative/index.html index 2a4935bc3..ae0ec8e39 100644 --- a/variability4tosca/tests/test-properties-default-alternative/index.html +++ b/variability4tosca/tests/test-properties-default-alternative/index.html @@ -7790,7 +7790,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-default-condition/index.html b/variability4tosca/tests/test-properties-default-condition/index.html index 9239e9214..3bd58d3bf 100644 --- a/variability4tosca/tests/test-properties-default-condition/index.html +++ b/variability4tosca/tests/test-properties-default-condition/index.html @@ -7744,7 +7744,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-expression/index.html b/variability4tosca/tests/test-properties-expression/index.html index 615daf8a7..a70448f02 100644 --- a/variability4tosca/tests/test-properties-expression/index.html +++ b/variability4tosca/tests/test-properties-expression/index.html @@ -7776,7 +7776,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-list-another/index.html b/variability4tosca/tests/test-properties-list-another/index.html index 7e59c8023..152dabfbf 100644 --- a/variability4tosca/tests/test-properties-list-another/index.html +++ b/variability4tosca/tests/test-properties-list-another/index.html @@ -7760,7 +7760,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-list/index.html b/variability4tosca/tests/test-properties-list/index.html index ec9675eba..db1027b27 100644 --- a/variability4tosca/tests/test-properties-list/index.html +++ b/variability4tosca/tests/test-properties-list/index.html @@ -7764,7 +7764,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-map-another/index.html b/variability4tosca/tests/test-properties-map-another/index.html index 744f164c3..abcd77a34 100644 --- a/variability4tosca/tests/test-properties-map-another/index.html +++ b/variability4tosca/tests/test-properties-map-another/index.html @@ -7756,7 +7756,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-map/index.html b/variability4tosca/tests/test-properties-map/index.html index 402538b73..69253889f 100644 --- a/variability4tosca/tests/test-properties-map/index.html +++ b/variability4tosca/tests/test-properties-map/index.html @@ -7760,7 +7760,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-node-container-presence-absent/index.html b/variability4tosca/tests/test-properties-node-container-presence-absent/index.html index 458f84c37..1a5b0375c 100644 --- a/variability4tosca/tests/test-properties-node-container-presence-absent/index.html +++ b/variability4tosca/tests/test-properties-node-container-presence-absent/index.html @@ -7748,7 +7748,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-node-container-presence-present/index.html b/variability4tosca/tests/test-properties-node-container-presence-present/index.html index 8504f056d..f83a4e7be 100644 --- a/variability4tosca/tests/test-properties-node-container-presence-present/index.html +++ b/variability4tosca/tests/test-properties-node-container-presence-present/index.html @@ -7754,7 +7754,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-node-node-presence-CONTAINER-absent/index.html b/variability4tosca/tests/test-properties-node-node-presence-CONTAINER-absent/index.html index 3c578a558..60ab1319a 100644 --- a/variability4tosca/tests/test-properties-node-node-presence-CONTAINER-absent/index.html +++ b/variability4tosca/tests/test-properties-node-node-presence-CONTAINER-absent/index.html @@ -7748,7 +7748,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-node-node-presence-CONTAINER-present/index.html b/variability4tosca/tests/test-properties-node-node-presence-CONTAINER-present/index.html index 6023bf44b..d219744f2 100644 --- a/variability4tosca/tests/test-properties-node-node-presence-CONTAINER-present/index.html +++ b/variability4tosca/tests/test-properties-node-node-presence-CONTAINER-present/index.html @@ -7754,7 +7754,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-node-property-presence-number-absent/index.html b/variability4tosca/tests/test-properties-node-property-presence-number-absent/index.html index 37d30e6cc..cfaf0f495 100644 --- a/variability4tosca/tests/test-properties-node-property-presence-number-absent/index.html +++ b/variability4tosca/tests/test-properties-node-property-presence-number-absent/index.html @@ -7752,7 +7752,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-node-property-presence-number-present/index.html b/variability4tosca/tests/test-properties-node-property-presence-number-present/index.html index 87c6a47da..24487fa20 100644 --- a/variability4tosca/tests/test-properties-node-property-presence-number-present/index.html +++ b/variability4tosca/tests/test-properties-node-property-presence-number-present/index.html @@ -7758,7 +7758,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-node-property-presence-string-absent/index.html b/variability4tosca/tests/test-properties-node-property-presence-string-absent/index.html index ff36b4613..d9c4146a4 100644 --- a/variability4tosca/tests/test-properties-node-property-presence-string-absent/index.html +++ b/variability4tosca/tests/test-properties-node-property-presence-string-absent/index.html @@ -7752,7 +7752,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-node-property-presence-string-present/index.html b/variability4tosca/tests/test-properties-node-property-presence-string-present/index.html index 5906322c2..c73830fe4 100644 --- a/variability4tosca/tests/test-properties-node-property-presence-string-present/index.html +++ b/variability4tosca/tests/test-properties-node-property-presence-string-present/index.html @@ -7758,7 +7758,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-properties/index.html b/variability4tosca/tests/test-properties-properties/index.html index cf4d903b9..e7650fbd1 100644 --- a/variability4tosca/tests/test-properties-properties/index.html +++ b/variability4tosca/tests/test-properties-properties/index.html @@ -7748,7 +7748,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-relation-container-presence-absent/index.html b/variability4tosca/tests/test-properties-relation-container-presence-absent/index.html index 50e0bf047..04a49debe 100644 --- a/variability4tosca/tests/test-properties-relation-container-presence-absent/index.html +++ b/variability4tosca/tests/test-properties-relation-container-presence-absent/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-relation-container-presence-present/index.html b/variability4tosca/tests/test-properties-relation-container-presence-present/index.html index c9bcba4df..544533866 100644 --- a/variability4tosca/tests/test-properties-relation-container-presence-present/index.html +++ b/variability4tosca/tests/test-properties-relation-container-presence-present/index.html @@ -7782,7 +7782,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-throw-ambiguous-property/index.html b/variability4tosca/tests/test-properties-throw-ambiguous-property/index.html index fb7fbd554..c8cc75784 100644 --- a/variability4tosca/tests/test-properties-throw-ambiguous-property/index.html +++ b/variability4tosca/tests/test-properties-throw-ambiguous-property/index.html @@ -7738,7 +7738,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-throw-missing-property-container/index.html b/variability4tosca/tests/test-properties-throw-missing-property-container/index.html index e8e4ca291..12c04e938 100644 --- a/variability4tosca/tests/test-properties-throw-missing-property-container/index.html +++ b/variability4tosca/tests/test-properties-throw-missing-property-container/index.html @@ -7736,7 +7736,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-throw-multiple-default/index.html b/variability4tosca/tests/test-properties-throw-multiple-default/index.html index 449dbd617..d127df25d 100644 --- a/variability4tosca/tests/test-properties-throw-multiple-default/index.html +++ b/variability4tosca/tests/test-properties-throw-multiple-default/index.html @@ -7780,7 +7780,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-unique-property-constraint-sat/index.html b/variability4tosca/tests/test-properties-unique-property-constraint-sat/index.html index 813781086..2dcc6393f 100644 --- a/variability4tosca/tests/test-properties-unique-property-constraint-sat/index.html +++ b/variability4tosca/tests/test-properties-unique-property-constraint-sat/index.html @@ -7762,7 +7762,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-properties-unique-property-constraint-unsat/index.html b/variability4tosca/tests/test-properties-unique-property-constraint-unsat/index.html index e72845446..faddc70fd 100644 --- a/variability4tosca/tests/test-properties-unique-property-constraint-unsat/index.html +++ b/variability4tosca/tests/test-properties-unique-property-constraint-unsat/index.html @@ -7744,7 +7744,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-alpha-default-naive/index.html b/variability4tosca/tests/test-pruning-alpha-default-naive/index.html index c17bffcda..7da7015a0 100644 --- a/variability4tosca/tests/test-pruning-alpha-default-naive/index.html +++ b/variability4tosca/tests/test-pruning-alpha-default-naive/index.html @@ -7790,7 +7790,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-alpha-default/index.html b/variability4tosca/tests/test-pruning-alpha-default/index.html index 03f2cfac3..827ad1b84 100644 --- a/variability4tosca/tests/test-pruning-alpha-default/index.html +++ b/variability4tosca/tests/test-pruning-alpha-default/index.html @@ -7790,7 +7790,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-alpha-pruning/index.html b/variability4tosca/tests/test-pruning-alpha-pruning/index.html index 949327e4b..68bb6addd 100644 --- a/variability4tosca/tests/test-pruning-alpha-pruning/index.html +++ b/variability4tosca/tests/test-pruning-alpha-pruning/index.html @@ -7794,7 +7794,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-artifact-default-alpha/index.html b/variability4tosca/tests/test-pruning-artifact-default-alpha/index.html index c0da6d602..64855b0ac 100644 --- a/variability4tosca/tests/test-pruning-artifact-default-alpha/index.html +++ b/variability4tosca/tests/test-pruning-artifact-default-alpha/index.html @@ -7778,7 +7778,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-artifact-default-bravo/index.html b/variability4tosca/tests/test-pruning-artifact-default-bravo/index.html index 5e91ea16b..373ea0190 100644 --- a/variability4tosca/tests/test-pruning-artifact-default-bravo/index.html +++ b/variability4tosca/tests/test-pruning-artifact-default-bravo/index.html @@ -7752,7 +7752,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-artifact-default-charlie/index.html b/variability4tosca/tests/test-pruning-artifact-default-charlie/index.html index ffd1bc166..735c16474 100644 --- a/variability4tosca/tests/test-pruning-artifact-default-charlie/index.html +++ b/variability4tosca/tests/test-pruning-artifact-default-charlie/index.html @@ -7774,7 +7774,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-artifact-default-delta/index.html b/variability4tosca/tests/test-pruning-artifact-default-delta/index.html index c4389cf4b..c23539bac 100644 --- a/variability4tosca/tests/test-pruning-artifact-default-delta/index.html +++ b/variability4tosca/tests/test-pruning-artifact-default-delta/index.html @@ -7758,7 +7758,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-artifact-default-naive/index.html b/variability4tosca/tests/test-pruning-artifact-default-naive/index.html index d17ebd25f..1329b598d 100644 --- a/variability4tosca/tests/test-pruning-artifact-default-naive/index.html +++ b/variability4tosca/tests/test-pruning-artifact-default-naive/index.html @@ -7758,7 +7758,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-bravo-default/index.html b/variability4tosca/tests/test-pruning-bravo-default/index.html index 0761a77b4..e8fac52a6 100644 --- a/variability4tosca/tests/test-pruning-bravo-default/index.html +++ b/variability4tosca/tests/test-pruning-bravo-default/index.html @@ -7797,7 +7797,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-bravo-pruning/index.html b/variability4tosca/tests/test-pruning-bravo-pruning/index.html index 73b8d3f98..fd257c91b 100644 --- a/variability4tosca/tests/test-pruning-bravo-pruning/index.html +++ b/variability4tosca/tests/test-pruning-bravo-pruning/index.html @@ -7801,7 +7801,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-charlie-default/index.html b/variability4tosca/tests/test-pruning-charlie-default/index.html index ab356f38c..fb4c656d2 100644 --- a/variability4tosca/tests/test-pruning-charlie-default/index.html +++ b/variability4tosca/tests/test-pruning-charlie-default/index.html @@ -7790,7 +7790,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-charlie-pruning/index.html b/variability4tosca/tests/test-pruning-charlie-pruning/index.html index 2a0305db5..ab054c95c 100644 --- a/variability4tosca/tests/test-pruning-charlie-pruning/index.html +++ b/variability4tosca/tests/test-pruning-charlie-pruning/index.html @@ -7794,7 +7794,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-delta-default/index.html b/variability4tosca/tests/test-pruning-delta-default/index.html index f87e07727..5f5115860 100644 --- a/variability4tosca/tests/test-pruning-delta-default/index.html +++ b/variability4tosca/tests/test-pruning-delta-default/index.html @@ -7797,7 +7797,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-delta-pruning/index.html b/variability4tosca/tests/test-pruning-delta-pruning/index.html index 63ed1081b..370af626f 100644 --- a/variability4tosca/tests/test-pruning-delta-pruning/index.html +++ b/variability4tosca/tests/test-pruning-delta-pruning/index.html @@ -7801,7 +7801,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-echo-default/index.html b/variability4tosca/tests/test-pruning-echo-default/index.html index 984a83787..a5d80d228 100644 --- a/variability4tosca/tests/test-pruning-echo-default/index.html +++ b/variability4tosca/tests/test-pruning-echo-default/index.html @@ -7791,7 +7791,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-echo-pruning/index.html b/variability4tosca/tests/test-pruning-echo-pruning/index.html index f219c7c3a..476303da6 100644 --- a/variability4tosca/tests/test-pruning-echo-pruning/index.html +++ b/variability4tosca/tests/test-pruning-echo-pruning/index.html @@ -7795,7 +7795,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-foxtrott-default/index.html b/variability4tosca/tests/test-pruning-foxtrott-default/index.html index a99c406e7..cf080c626 100644 --- a/variability4tosca/tests/test-pruning-foxtrott-default/index.html +++ b/variability4tosca/tests/test-pruning-foxtrott-default/index.html @@ -7800,7 +7800,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-foxtrott-pruning/index.html b/variability4tosca/tests/test-pruning-foxtrott-pruning/index.html index 3896d0b63..9e4c5b7eb 100644 --- a/variability4tosca/tests/test-pruning-foxtrott-pruning/index.html +++ b/variability4tosca/tests/test-pruning-foxtrott-pruning/index.html @@ -7802,7 +7802,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-hotel-default/index.html b/variability4tosca/tests/test-pruning-hotel-default/index.html index a7a203a3e..682da503a 100644 --- a/variability4tosca/tests/test-pruning-hotel-default/index.html +++ b/variability4tosca/tests/test-pruning-hotel-default/index.html @@ -7797,7 +7797,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-hotel-pruning/index.html b/variability4tosca/tests/test-pruning-hotel-pruning/index.html index b91b5bac9..f663f0bf6 100644 --- a/variability4tosca/tests/test-pruning-hotel-pruning/index.html +++ b/variability4tosca/tests/test-pruning-hotel-pruning/index.html @@ -7801,7 +7801,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-alpha/index.html b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-alpha/index.html index 7c18cd69b..bf17b4949 100644 --- a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-alpha/index.html +++ b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-alpha/index.html @@ -7804,7 +7804,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-bravo/index.html b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-bravo/index.html index c7efafc0e..be709c280 100644 --- a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-bravo/index.html +++ b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-bravo/index.html @@ -7778,7 +7778,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-charlie/index.html b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-charlie/index.html index e56108360..2f165f3c4 100644 --- a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-charlie/index.html +++ b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-charlie/index.html @@ -7788,7 +7788,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-delta/index.html b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-delta/index.html index e3e1a5485..649cdcb71 100644 --- a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-delta/index.html +++ b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-delta/index.html @@ -7818,7 +7818,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-echo/index.html b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-echo/index.html index 03c16c112..0f88c404e 100644 --- a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-echo/index.html +++ b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-echo/index.html @@ -7814,7 +7814,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-foxtrott/index.html b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-foxtrott/index.html index 309698a94..6823e86cd 100644 --- a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-foxtrott/index.html +++ b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-foxtrott/index.html @@ -7804,7 +7804,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-golf/index.html b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-golf/index.html index b835a9090..8e1294e86 100644 --- a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-golf/index.html +++ b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-golf/index.html @@ -7802,7 +7802,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-hotel/index.html b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-hotel/index.html index 7ad44c130..edffc624a 100644 --- a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-hotel/index.html +++ b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-hotel/index.html @@ -7804,7 +7804,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-alpha/index.html b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-alpha/index.html index f0a2d02a1..f662783e0 100644 --- a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-alpha/index.html +++ b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-alpha/index.html @@ -7788,7 +7788,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-bravo/index.html b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-bravo/index.html index ac8ca109a..c7cb0d166 100644 --- a/variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-bravo/index.html +++ b/variability4tosca/tests/test-pruning-incoming-artifact-pruning-naive-bravo/index.html @@ -7784,7 +7784,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-india-default/index.html b/variability4tosca/tests/test-pruning-india-default/index.html index 848a2edeb..0c2675688 100644 --- a/variability4tosca/tests/test-pruning-india-default/index.html +++ b/variability4tosca/tests/test-pruning-india-default/index.html @@ -7783,7 +7783,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-india-pruning/index.html b/variability4tosca/tests/test-pruning-india-pruning/index.html index ae113d4fb..e75b02a5c 100644 --- a/variability4tosca/tests/test-pruning-india-pruning/index.html +++ b/variability4tosca/tests/test-pruning-india-pruning/index.html @@ -7787,7 +7787,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-juliett-default/index.html b/variability4tosca/tests/test-pruning-juliett-default/index.html index 6a324072f..6abd1e4b8 100644 --- a/variability4tosca/tests/test-pruning-juliett-default/index.html +++ b/variability4tosca/tests/test-pruning-juliett-default/index.html @@ -7816,7 +7816,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-juliett-pruning/index.html b/variability4tosca/tests/test-pruning-juliett-pruning/index.html index 998c28c68..c90edd30d 100644 --- a/variability4tosca/tests/test-pruning-juliett-pruning/index.html +++ b/variability4tosca/tests/test-pruning-juliett-pruning/index.html @@ -7820,7 +7820,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-kilo-default/index.html b/variability4tosca/tests/test-pruning-kilo-default/index.html index 22a716f45..779744503 100644 --- a/variability4tosca/tests/test-pruning-kilo-default/index.html +++ b/variability4tosca/tests/test-pruning-kilo-default/index.html @@ -7806,7 +7806,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-kilo-pruning/index.html b/variability4tosca/tests/test-pruning-kilo-pruning/index.html index 64b1b76dd..15fe2ca70 100644 --- a/variability4tosca/tests/test-pruning-kilo-pruning/index.html +++ b/variability4tosca/tests/test-pruning-kilo-pruning/index.html @@ -7810,7 +7810,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-lima-default/index.html b/variability4tosca/tests/test-pruning-lima-default/index.html index 8896a8fad..12f26d30d 100644 --- a/variability4tosca/tests/test-pruning-lima-default/index.html +++ b/variability4tosca/tests/test-pruning-lima-default/index.html @@ -7818,7 +7818,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-lima-pruning/index.html b/variability4tosca/tests/test-pruning-lima-pruning/index.html index 8a1828664..ff4c1769d 100644 --- a/variability4tosca/tests/test-pruning-lima-pruning/index.html +++ b/variability4tosca/tests/test-pruning-lima-pruning/index.html @@ -7816,7 +7816,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-mike-default/index.html b/variability4tosca/tests/test-pruning-mike-default/index.html index 14373db0a..385e9126e 100644 --- a/variability4tosca/tests/test-pruning-mike-default/index.html +++ b/variability4tosca/tests/test-pruning-mike-default/index.html @@ -7835,7 +7835,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-mike-pruning/index.html b/variability4tosca/tests/test-pruning-mike-pruning/index.html index bb6d16c0e..804eae2a4 100644 --- a/variability4tosca/tests/test-pruning-mike-pruning/index.html +++ b/variability4tosca/tests/test-pruning-mike-pruning/index.html @@ -7839,7 +7839,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-outgoing-relation-absent/index.html b/variability4tosca/tests/test-pruning-outgoing-relation-absent/index.html index 073c1d33e..60920da45 100644 --- a/variability4tosca/tests/test-pruning-outgoing-relation-absent/index.html +++ b/variability4tosca/tests/test-pruning-outgoing-relation-absent/index.html @@ -7793,7 +7793,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-outgoing-relation-present/index.html b/variability4tosca/tests/test-pruning-outgoing-relation-present/index.html index 2471745d0..718047747 100644 --- a/variability4tosca/tests/test-pruning-outgoing-relation-present/index.html +++ b/variability4tosca/tests/test-pruning-outgoing-relation-present/index.html @@ -7799,7 +7799,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-outgoing-target-absent/index.html b/variability4tosca/tests/test-pruning-outgoing-target-absent/index.html index 5fe1c7a45..dc354f72a 100644 --- a/variability4tosca/tests/test-pruning-outgoing-target-absent/index.html +++ b/variability4tosca/tests/test-pruning-outgoing-target-absent/index.html @@ -7783,7 +7783,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-outgoing-target-present/index.html b/variability4tosca/tests/test-pruning-outgoing-target-present/index.html index e759587be..dd2fe45c8 100644 --- a/variability4tosca/tests/test-pruning-outgoing-target-present/index.html +++ b/variability4tosca/tests/test-pruning-outgoing-target-present/index.html @@ -7791,7 +7791,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-outgoingnaive-target-present/index.html b/variability4tosca/tests/test-pruning-outgoingnaive-target-present/index.html index 080b6f11f..ed7874919 100644 --- a/variability4tosca/tests/test-pruning-outgoingnaive-target-present/index.html +++ b/variability4tosca/tests/test-pruning-outgoingnaive-target-present/index.html @@ -7788,7 +7788,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-pruning-false-false/index.html b/variability4tosca/tests/test-pruning-pruning-false-false/index.html index fd9266b6c..5be284021 100644 --- a/variability4tosca/tests/test-pruning-pruning-false-false/index.html +++ b/variability4tosca/tests/test-pruning-pruning-false-false/index.html @@ -7782,7 +7782,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-pruning-false-true/index.html b/variability4tosca/tests/test-pruning-pruning-false-true/index.html index f5708623b..2f72f1f77 100644 --- a/variability4tosca/tests/test-pruning-pruning-false-true/index.html +++ b/variability4tosca/tests/test-pruning-pruning-false-true/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-pruning-true-false/index.html b/variability4tosca/tests/test-pruning-pruning-true-false/index.html index f039f0fdd..442a8d5ed 100644 --- a/variability4tosca/tests/test-pruning-pruning-true-false/index.html +++ b/variability4tosca/tests/test-pruning-pruning-true-false/index.html @@ -7782,7 +7782,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-pruning-true-true/index.html b/variability4tosca/tests/test-pruning-pruning-true-true/index.html index c719cd7c3..cd9080a83 100644 --- a/variability4tosca/tests/test-pruning-pruning-true-true/index.html +++ b/variability4tosca/tests/test-pruning-pruning-true-true/index.html @@ -7764,7 +7764,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-pruning/index.html b/variability4tosca/tests/test-pruning-pruning/index.html index bb766b835..f981531f2 100644 --- a/variability4tosca/tests/test-pruning-pruning/index.html +++ b/variability4tosca/tests/test-pruning-pruning/index.html @@ -7812,7 +7812,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-pruning-relation/index.html b/variability4tosca/tests/test-pruning-relation/index.html index 2ea9988a8..3af79a305 100644 --- a/variability4tosca/tests/test-pruning-relation/index.html +++ b/variability4tosca/tests/test-pruning-relation/index.html @@ -7778,7 +7778,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-relationships-conditional/index.html b/variability4tosca/tests/test-relationships-conditional/index.html index adebab479..836964f80 100644 --- a/variability4tosca/tests/test-relationships-conditional/index.html +++ b/variability4tosca/tests/test-relationships-conditional/index.html @@ -7802,7 +7802,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-relationships-throw-multiple/index.html b/variability4tosca/tests/test-relationships-throw-multiple/index.html index 1fa2b1cab..102afb7b0 100644 --- a/variability4tosca/tests/test-relationships-throw-multiple/index.html +++ b/variability4tosca/tests/test-relationships-throw-multiple/index.html @@ -7762,7 +7762,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-relationships-throw-undefined/index.html b/variability4tosca/tests/test-relationships-throw-undefined/index.html index be9bb249a..5f80b1c50 100644 --- a/variability4tosca/tests/test-relationships-throw-undefined/index.html +++ b/variability4tosca/tests/test-relationships-throw-undefined/index.html @@ -7770,7 +7770,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-relationships-throw-unused/index.html b/variability4tosca/tests/test-relationships-throw-unused/index.html index 676b7eb10..6e4051338 100644 --- a/variability4tosca/tests/test-relationships-throw-unused/index.html +++ b/variability4tosca/tests/test-relationships-throw-unused/index.html @@ -7770,7 +7770,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-relationships-type-specific/index.html b/variability4tosca/tests/test-relationships-type-specific/index.html index 5d73dfe25..30a624204 100644 --- a/variability4tosca/tests/test-relationships-type-specific/index.html +++ b/variability4tosca/tests/test-relationships-type-specific/index.html @@ -7802,7 +7802,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-requirement-assignment-conditional/index.html b/variability4tosca/tests/test-requirement-assignment-conditional/index.html index 4e0c4d41e..24200a845 100644 --- a/variability4tosca/tests/test-requirement-assignment-conditional/index.html +++ b/variability4tosca/tests/test-requirement-assignment-conditional/index.html @@ -7778,7 +7778,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-requirement-assignment-default-alternative-false/index.html b/variability4tosca/tests/test-requirement-assignment-default-alternative-false/index.html index 3391eda7b..1c15f7a50 100644 --- a/variability4tosca/tests/test-requirement-assignment-default-alternative-false/index.html +++ b/variability4tosca/tests/test-requirement-assignment-default-alternative-false/index.html @@ -7784,7 +7784,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-requirement-assignment-default-alternative/index.html b/variability4tosca/tests/test-requirement-assignment-default-alternative/index.html index 82184b4c4..488ed0ffa 100644 --- a/variability4tosca/tests/test-requirement-assignment-default-alternative/index.html +++ b/variability4tosca/tests/test-requirement-assignment-default-alternative/index.html @@ -7786,7 +7786,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-requirement-assignment-default-condition-throw-source/index.html b/variability4tosca/tests/test-requirement-assignment-default-condition-throw-source/index.html index 29354cc0d..5828bd8ec 100644 --- a/variability4tosca/tests/test-requirement-assignment-default-condition-throw-source/index.html +++ b/variability4tosca/tests/test-requirement-assignment-default-condition-throw-source/index.html @@ -7758,7 +7758,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-requirement-assignment-default-condition-throw-target/index.html b/variability4tosca/tests/test-requirement-assignment-default-condition-throw-target/index.html index 0e21d8c58..ea42f5373 100644 --- a/variability4tosca/tests/test-requirement-assignment-default-condition-throw-target/index.html +++ b/variability4tosca/tests/test-requirement-assignment-default-condition-throw-target/index.html @@ -7750,7 +7750,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-requirement-assignment-default-condition/index.html b/variability4tosca/tests/test-requirement-assignment-default-condition/index.html index 34cac5c9f..2863290b5 100644 --- a/variability4tosca/tests/test-requirement-assignment-default-condition/index.html +++ b/variability4tosca/tests/test-requirement-assignment-default-condition/index.html @@ -7774,7 +7774,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-requirement-assignment-one-hosting-relation/index.html b/variability4tosca/tests/test-requirement-assignment-one-hosting-relation/index.html index 196d26510..6a4cda806 100644 --- a/variability4tosca/tests/test-requirement-assignment-one-hosting-relation/index.html +++ b/variability4tosca/tests/test-requirement-assignment-one-hosting-relation/index.html @@ -7786,7 +7786,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-requirement-assignment-relation-presence-index-absent/index.html b/variability4tosca/tests/test-requirement-assignment-relation-presence-index-absent/index.html index 827613c23..59cdbe4ec 100644 --- a/variability4tosca/tests/test-requirement-assignment-relation-presence-index-absent/index.html +++ b/variability4tosca/tests/test-requirement-assignment-relation-presence-index-absent/index.html @@ -7784,7 +7784,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-requirement-assignment-relation-presence-name-absent/index.html b/variability4tosca/tests/test-requirement-assignment-relation-presence-name-absent/index.html index 7d52dde44..5c2ba4765 100644 --- a/variability4tosca/tests/test-requirement-assignment-relation-presence-name-absent/index.html +++ b/variability4tosca/tests/test-requirement-assignment-relation-presence-name-absent/index.html @@ -7784,7 +7784,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-requirement-assignment-source-presence-absent/index.html b/variability4tosca/tests/test-requirement-assignment-source-presence-absent/index.html index 8bd4cfca7..94a1f33a2 100644 --- a/variability4tosca/tests/test-requirement-assignment-source-presence-absent/index.html +++ b/variability4tosca/tests/test-requirement-assignment-source-presence-absent/index.html @@ -7774,7 +7774,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-requirement-assignment-source-presence-present/index.html b/variability4tosca/tests/test-requirement-assignment-source-presence-present/index.html index 0893f2c2a..ee8198376 100644 --- a/variability4tosca/tests/test-requirement-assignment-source-presence-present/index.html +++ b/variability4tosca/tests/test-requirement-assignment-source-presence-present/index.html @@ -7784,7 +7784,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-requirement-assignment-target-presence-absent/index.html b/variability4tosca/tests/test-requirement-assignment-target-presence-absent/index.html index fa734b48d..eaa7aec54 100644 --- a/variability4tosca/tests/test-requirement-assignment-target-presence-absent/index.html +++ b/variability4tosca/tests/test-requirement-assignment-target-presence-absent/index.html @@ -7772,7 +7772,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-requirement-assignment-target-presence-present/index.html b/variability4tosca/tests/test-requirement-assignment-target-presence-present/index.html index b3d32d3f3..c89b1f438 100644 --- a/variability4tosca/tests/test-requirement-assignment-target-presence-present/index.html +++ b/variability4tosca/tests/test-requirement-assignment-target-presence-present/index.html @@ -7784,7 +7784,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-requirement-assignment-throw-multiple-defaults/index.html b/variability4tosca/tests/test-requirement-assignment-throw-multiple-defaults/index.html index aad02cda7..08e0e214f 100644 --- a/variability4tosca/tests/test-requirement-assignment-throw-multiple-defaults/index.html +++ b/variability4tosca/tests/test-requirement-assignment-throw-multiple-defaults/index.html @@ -7762,7 +7762,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-scenario-complex-alpha/index.html b/variability4tosca/tests/test-scenario-complex-alpha/index.html index 8f809f3d1..c9197bfac 100644 --- a/variability4tosca/tests/test-scenario-complex-alpha/index.html +++ b/variability4tosca/tests/test-scenario-complex-alpha/index.html @@ -7896,7 +7896,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-scenario-worker-agent-false/index.html b/variability4tosca/tests/test-scenario-worker-agent-false/index.html index 90975a0b9..7de51c42c 100644 --- a/variability4tosca/tests/test-scenario-worker-agent-false/index.html +++ b/variability4tosca/tests/test-scenario-worker-agent-false/index.html @@ -7783,7 +7783,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-scenario-worker-agent-true/index.html b/variability4tosca/tests/test-scenario-worker-agent-true/index.html index fe5c39eeb..0ccd82103 100644 --- a/variability4tosca/tests/test-scenario-worker-agent-true/index.html +++ b/variability4tosca/tests/test-scenario-worker-agent-true/index.html @@ -7799,7 +7799,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-scenario-worker-worker-false/index.html b/variability4tosca/tests/test-scenario-worker-worker-false/index.html index e12c44c53..e089598f6 100644 --- a/variability4tosca/tests/test-scenario-worker-worker-false/index.html +++ b/variability4tosca/tests/test-scenario-worker-worker-false/index.html @@ -7786,7 +7786,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-scenario-worker-worker-true/index.html b/variability4tosca/tests/test-scenario-worker-worker-true/index.html index b4faf221c..c9350c19d 100644 --- a/variability4tosca/tests/test-scenario-worker-worker-true/index.html +++ b/variability4tosca/tests/test-scenario-worker-worker-true/index.html @@ -7809,7 +7809,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-ambiguous-disabled/index.html b/variability4tosca/tests/test-technologies-ambiguous-disabled/index.html index 941f613da..141c58d8a 100644 --- a/variability4tosca/tests/test-technologies-ambiguous-disabled/index.html +++ b/variability4tosca/tests/test-technologies-ambiguous-disabled/index.html @@ -7756,7 +7756,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-ambiguous/index.html b/variability4tosca/tests/test-technologies-ambiguous/index.html index 78c678de2..3d1df82a7 100644 --- a/variability4tosca/tests/test-technologies-ambiguous/index.html +++ b/variability4tosca/tests/test-technologies-ambiguous/index.html @@ -7748,7 +7748,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-conditional/index.html b/variability4tosca/tests/test-technologies-conditional/index.html index 18cfe1276..fea04cc43 100644 --- a/variability4tosca/tests/test-technologies-conditional/index.html +++ b/variability4tosca/tests/test-technologies-conditional/index.html @@ -7754,7 +7754,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-constraint-disabled/index.html b/variability4tosca/tests/test-technologies-constraint-disabled/index.html index 27e9d597f..4e47fb62c 100644 --- a/variability4tosca/tests/test-technologies-constraint-disabled/index.html +++ b/variability4tosca/tests/test-technologies-constraint-disabled/index.html @@ -7746,7 +7746,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-constraint/index.html b/variability4tosca/tests/test-technologies-constraint/index.html index 7b42a947c..3121b3100 100644 --- a/variability4tosca/tests/test-technologies-constraint/index.html +++ b/variability4tosca/tests/test-technologies-constraint/index.html @@ -7746,7 +7746,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-default-multiple/index.html b/variability4tosca/tests/test-technologies-default-multiple/index.html index 72eb0639f..7ea141858 100644 --- a/variability4tosca/tests/test-technologies-default-multiple/index.html +++ b/variability4tosca/tests/test-technologies-default-multiple/index.html @@ -7746,7 +7746,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-default-true/index.html b/variability4tosca/tests/test-technologies-default-true/index.html index de82d6d84..087f8abc8 100644 --- a/variability4tosca/tests/test-technologies-default-true/index.html +++ b/variability4tosca/tests/test-technologies-default-true/index.html @@ -7754,7 +7754,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-expected-disabled/index.html b/variability4tosca/tests/test-technologies-expected-disabled/index.html index 25bdd8816..4cbdcd21c 100644 --- a/variability4tosca/tests/test-technologies-expected-disabled/index.html +++ b/variability4tosca/tests/test-technologies-expected-disabled/index.html @@ -7748,7 +7748,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-expected/index.html b/variability4tosca/tests/test-technologies-expected/index.html index d7b36664f..1fa0adadb 100644 --- a/variability4tosca/tests/test-technologies-expected/index.html +++ b/variability4tosca/tests/test-technologies-expected/index.html @@ -7748,7 +7748,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-lowercase/index.html b/variability4tosca/tests/test-technologies-lowercase/index.html index 0b03aaa93..247642d86 100644 --- a/variability4tosca/tests/test-technologies-lowercase/index.html +++ b/variability4tosca/tests/test-technologies-lowercase/index.html @@ -7750,7 +7750,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-missing-disabled/index.html b/variability4tosca/tests/test-technologies-missing-disabled/index.html index 56af64291..793e17e42 100644 --- a/variability4tosca/tests/test-technologies-missing-disabled/index.html +++ b/variability4tosca/tests/test-technologies-missing-disabled/index.html @@ -7746,7 +7746,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-missing/index.html b/variability4tosca/tests/test-technologies-missing/index.html index 6ec0b0b75..c53f66c19 100644 --- a/variability4tosca/tests/test-technologies-missing/index.html +++ b/variability4tosca/tests/test-technologies-missing/index.html @@ -7746,7 +7746,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-optimization-double/index.html b/variability4tosca/tests/test-technologies-optimization-double/index.html index af63efad4..194b006fa 100644 --- a/variability4tosca/tests/test-technologies-optimization-double/index.html +++ b/variability4tosca/tests/test-technologies-optimization-double/index.html @@ -7802,7 +7802,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-optimization-order/index.html b/variability4tosca/tests/test-technologies-optimization-order/index.html index 779d85355..1dce269db 100644 --- a/variability4tosca/tests/test-technologies-optimization-order/index.html +++ b/variability4tosca/tests/test-technologies-optimization-order/index.html @@ -7790,7 +7790,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-optimization-unsat/index.html b/variability4tosca/tests/test-technologies-optimization-unsat/index.html index 0deef08f6..d3a888a61 100644 --- a/variability4tosca/tests/test-technologies-optimization-unsat/index.html +++ b/variability4tosca/tests/test-technologies-optimization-unsat/index.html @@ -7774,7 +7774,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-optimization-weight/index.html b/variability4tosca/tests/test-technologies-optimization-weight/index.html index 6f1e905b1..b58bdf561 100644 --- a/variability4tosca/tests/test-technologies-optimization-weight/index.html +++ b/variability4tosca/tests/test-technologies-optimization-weight/index.html @@ -7780,7 +7780,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-optimization/index.html b/variability4tosca/tests/test-technologies-optimization/index.html index 2d63e6f98..fccc52df0 100644 --- a/variability4tosca/tests/test-technologies-optimization/index.html +++ b/variability4tosca/tests/test-technologies-optimization/index.html @@ -7774,7 +7774,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-pruning-disabled/index.html b/variability4tosca/tests/test-technologies-pruning-disabled/index.html index 712e8de6f..4cfc800db 100644 --- a/variability4tosca/tests/test-technologies-pruning-disabled/index.html +++ b/variability4tosca/tests/test-technologies-pruning-disabled/index.html @@ -7748,7 +7748,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-pruning/index.html b/variability4tosca/tests/test-technologies-pruning/index.html index e3952c255..204a73ed8 100644 --- a/variability4tosca/tests/test-technologies-pruning/index.html +++ b/variability4tosca/tests/test-technologies-pruning/index.html @@ -7748,7 +7748,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-rules-v3/index.html b/variability4tosca/tests/test-technologies-rules-v3/index.html index 72bcfcd84..e223de5bd 100644 --- a/variability4tosca/tests/test-technologies-rules-v3/index.html +++ b/variability4tosca/tests/test-technologies-rules-v3/index.html @@ -7954,7 +7954,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-rules/index.html b/variability4tosca/tests/test-technologies-rules/index.html index 9bd8b4e45..a55dc7405 100644 --- a/variability4tosca/tests/test-technologies-rules/index.html +++ b/variability4tosca/tests/test-technologies-rules/index.html @@ -7964,7 +7964,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-throw-required/index.html b/variability4tosca/tests/test-technologies-throw-required/index.html index 233d86345..90c9cf97e 100644 --- a/variability4tosca/tests/test-technologies-throw-required/index.html +++ b/variability4tosca/tests/test-technologies-throw-required/index.html @@ -7846,7 +7846,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-unique-disabled/index.html b/variability4tosca/tests/test-technologies-unique-disabled/index.html index 5d169cafe..35f11bf88 100644 --- a/variability4tosca/tests/test-technologies-unique-disabled/index.html +++ b/variability4tosca/tests/test-technologies-unique-disabled/index.html @@ -7762,7 +7762,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-technologies-unique/index.html b/variability4tosca/tests/test-technologies-unique/index.html index 5415abf30..1df180f13 100644 --- a/variability4tosca/tests/test-technologies-unique/index.html +++ b/variability4tosca/tests/test-technologies-unique/index.html @@ -7754,7 +7754,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-variability-inputs-implies/index.html b/variability4tosca/tests/test-variability-inputs-implies/index.html index 37aabe49b..59e9cf68a 100644 --- a/variability4tosca/tests/test-variability-inputs-implies/index.html +++ b/variability4tosca/tests/test-variability-inputs-implies/index.html @@ -7742,7 +7742,7 @@

Expected ErrorSeptember 25, 2024 + September 27, 2024 diff --git a/variability4tosca/tests/test-variability-inputs-no-constraints/index.html b/variability4tosca/tests/test-variability-inputs-no-constraints/index.html index bfb3b5436..65199b07e 100644 --- a/variability4tosca/tests/test-variability-inputs-no-constraints/index.html +++ b/variability4tosca/tests/test-variability-inputs-no-constraints/index.html @@ -7740,7 +7740,7 @@

Variability-Resolved Service Temp Last update: - September 25, 2024 + September 27, 2024 diff --git a/versions/index.html b/versions/index.html index 6abeb43a0..067dceafb 100644 --- a/versions/index.html +++ b/versions/index.html @@ -7695,7 +7695,7 @@

VersionsSeptember 25, 2024 + September 27, 2024