From 07cda0f2b6e27891bcc32ac5a70223bd58520638 Mon Sep 17 00:00:00 2001 From: jamie-suse Date: Mon, 1 Jul 2024 07:39:17 +0000 Subject: [PATCH] deploy: 498c6cc856348e17ebf032cacd9ad1652b29e532 --- Wanda.DataCase.html | 6 +++--- Wanda.epub | Bin 537152 -> 537155 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 0c96c5f4..1b00a2f5 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 9fd78a8fa7471942332dc4f0f19cfc1971902848..c54965129845b3506d252e58569ddb599ca01ec8 100644 GIT binary patch delta 13735 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 S$PQ-a24W&^U_&}B%>M)PQVGQX delta 13716 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 Z+5efED=-w95x5b6NQ2f0VG9}Q{{c4<(MA9O diff --git a/gatherers.html b/gatherers.html index 5fc4393c..a83d3da1 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 45553f4d..8f736b6d 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 d72833da..4c6b5348 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 79f9ee33..dac749c9 100644 --- a/specification.html +++ b/specification.html @@ -521,12 +521,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.