From 36b00f4aa835bfa8fa848b4dcf7030e108979e5c Mon Sep 17 00:00:00 2001 From: CDimonaco Date: Thu, 23 Nov 2023 12:33:04 +0000 Subject: [PATCH] deploy: 57d4a64980f75c0e687d424fe5554feb9c0545d5 --- Wanda.DataCase.html | 6 +++--- Wanda.epub | Bin 528206 -> 528212 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 2b3bb8ce..7192c8fd 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 a937e219db879a8f0a914c4c1758a23c29867e5a..7847af553e54efee13919ff0923c0d0770cbf013 100644 GIT binary patch delta 11631 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 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 7ce32ad3..12242550 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 618c269b..91a7db1c 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 c2d1a033..d85a40cf 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.