From f487efc0dae15cecc9b9891dd84429dfaf1a88fa Mon Sep 17 00:00:00 2001 From: dottorblaster Date: Wed, 7 Feb 2024 17:32:55 +0000 Subject: [PATCH] deploy: 8fd494f08718ee7ebc2cf41134f6b6c6c0cacff4 --- Wanda.DataCase.html | 6 +++--- Wanda.epub | Bin 528459 -> 528463 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 daad6356..0b0a336b 100644 --- a/Wanda.DataCase.html +++ b/Wanda.DataCase.html @@ -208,9 +208,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 7de426f50ccfc60de3f561f07e70817a7034f4cb..ed4782f667bda26df24f0e61d311f467d7e4223c 100644 GIT binary patch delta 11526 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 Qz-z>CVi@i&wEsf;Kd18{Z~y=R delta 11158 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 diff --git a/gatherers.html b/gatherers.html index 750a88a2..575edbd4 100644 --- a/gatherers.html +++ b/gatherers.html @@ -136,7 +136,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 d5988100..d5e167fc 100644 --- a/hack_on_wanda.html +++ b/hack_on_wanda.html @@ -142,7 +142,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 a01337e9..90820a73 100644 --- a/readme.html +++ b/readme.html @@ -272,14 +272,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 92932e0a..90f88452 100644 --- a/specification.html +++ b/specification.html @@ -472,12 +472,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.