From cba4326c03f773febfc976eaeb3b38d660618e22 Mon Sep 17 00:00:00 2001 From: arbulu89 Date: Tue, 14 Nov 2023 09:09:49 +0000 Subject: [PATCH] deploy: aa76754f42d677d4064d391d05c871d713e926b8 --- Wanda.DataCase.html | 6 +++--- Wanda.epub | Bin 526542 -> 526544 bytes gatherers.html | 2 +- hack_on_wanda.html | 2 +- readme.html | 8 ++++---- specification.html | 6 +++--- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Wanda.DataCase.html b/Wanda.DataCase.html index 3d5c2400..36c9fed7 100644 --- a/Wanda.DataCase.html +++ b/Wanda.DataCase.html @@ -202,9 +202,9 @@

errors_on(changeset)

-

A helper that transforms changeset errors into a map of messages.

assert {:error, changeset} = Accounts.create_user(%{password: "short"})
-assert "password is too short" in errors_on(changeset).password
-assert %{password: ["password is too short"]} = errors_on(changeset)
+

A helper that transforms changeset errors into a map of messages.

assert {:error, changeset} = Accounts.create_user(%{password: "short"})
+assert "password is too short" in errors_on(changeset).password
+assert %{password: ["password is too short"]} = errors_on(changeset)
diff --git a/Wanda.epub b/Wanda.epub index cf315feca13535b026985bcb9743488c19f2846b..745f8704265574a862cf9c0c38497b295c17c5a0 100644 GIT binary patch delta 13577 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%0D%bsv=h(vsF{* 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 Lm~Gf<2yK;j{^HDmq|myfPHJ% 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 PG!z~E893y&c|rdVAXWo` diff --git a/gatherers.html b/gatherers.html index d93a9a93..0da518cc 100644 --- a/gatherers.html +++ b/gatherers.html @@ -130,7 +130,7 @@

Introduction

-

Gatherers can be thought of as functions:

  • they have a name
  • they accept argument(s)
  • they return a value, the gathered Fact

Facts Gathering process in a nutshell

fact = gatherer(argument)

+

Gatherers can be thought of as functions:

  • they have a name
  • they accept argument(s)
  • they return a value, the gathered Fact

Facts Gathering process in a nutshell

fact = gatherer(argument)

diff --git a/hack_on_wanda.html b/hack_on_wanda.html index b2c9b0e5..e9ebc1fa 100644 --- a/hack_on_wanda.html +++ b/hack_on_wanda.html @@ -136,7 +136,7 @@

Ensure Compatibility with asdf

-

asdf allows using specific versions of programming language tools that are known to be compatible with the project, rather than relying on the version that's installed globally on the host system.

In order to use asdf, follow the official asdf getting started guide.

Install all required asdf plugins from .tool-versions inside the web repository.

cut -d' ' -f1 .tool-versions|xargs -i asdf plugin add  {}

Set up the asdf environment

asdf install

+

asdf allows using specific versions of programming language tools that are known to be compatible with the project, rather than relying on the version that's installed globally on the host system.

In order to use asdf, follow the official asdf getting started guide.

Install all required asdf plugins from .tool-versions inside the web repository.

cut -d' ' -f1 .tool-versions|xargs -i asdf plugin add  {}

Set up the asdf environment

asdf install

diff --git a/readme.html b/readme.html index 6ad8acb1..02e75707 100644 --- a/readme.html +++ b/readme.html @@ -266,14 +266,14 @@

Often times knowing the returned value of the gathered facts is not a trivial thing, more during the implementation of new checks.

To better debug the fact gathering process and the returned values, the facts subcommand of trento-agent is a really useful tool. This command helps to see in the target itself what the gathered fact looks like. This is specially interesting when the returned value is a complex object or the target under test is modified and the check developer wants to see how this affects the gathered fact.

The command can be used as:

./trento-agent facts gather --gatherer corosync.conf --argument totem.token
 # To see the currently available gatherers and their names
-# ./trento-agent facts list

Which would return the next where the Value is the available value in the written check:

{
+# ./trento-agent facts list

Which would return the next where the Value is the available value in the written check:

{
   "Name": "totem.token",
   "CheckID": "",
-  "Value": {
+  "Value": {
     "Value": 30000
-  },
+  },
   "Error": null
-}

+}

diff --git a/specification.html b/specification.html index 3d2e1ce7..24d221ee 100644 --- a/specification.html +++ b/specification.html @@ -465,12 +465,12 @@

- name: bar_expectation expect: facts.bar == values.expected_bar
  • Pipe the expression language functions vertically in order to provide a better visual output of the code.
    So this:

    expectations:
       - name: some_expectation
    -    expect: facts.foo.find(|item| item.id == "super").properties.find(|prop| prop.name == "good").value

    would be:

    expectations:
    +    expect: facts.foo.find(|item| item.id == "super").properties.find(|prop| prop.name == "good").value

    would be:

    expectations:
       - name: some_expectation
         expect: |
           facts.foo
    -      .find(|item| item.id == "super").properties
    -      .find(|prop| prop.name == "good").value

    Note: Keep in mind that some functions such as sort and drain run in-place modifications, so they cannot be piped.

  • + .find(|item| item.id == "super").properties + .find(|prop| prop.name == "good").value

    Note: Keep in mind that some functions such as sort and drain run in-place modifications, so they cannot be piped.