[pve-devel] [PATCH ha-manager 11/18] test: rules: use to_json instead of Data::Dumper for config output
Daniel Kral
d.kral at proxmox.com
Thu Aug 21 16:35:44 CEST 2025
Makes the output cleaner and won't change unrelated config properties
because of Data::Dumper's space indentation if rule configs are
modified in future patches.
Suggested-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
Signed-off-by: Daniel Kral <d.kral at proxmox.com>
---
...efaults-for-node-affinity-rules.cfg.expect | 116 ++++----
...lts-for-resource-affinity-rules.cfg.expect | 72 ++---
...nt-node-resource-affinity-rules.cfg.expect | 130 ++++-----
...sistent-resource-affinity-rules.cfg.expect | 10 +-
...egative-resource-affinity-rules.cfg.expect | 52 ++--
...fective-resource-affinity-rules.cfg.expect | 10 +-
...egative-resource-affinity-rules.cfg.expect | 254 +++++++++---------
...ositive-resource-affinity-rules.cfg.expect | 218 +++++++--------
...egative-resource-affinity-rules.cfg.expect | 142 +++++-----
...ositive-resource-affinity-rules.cfg.expect | 136 +++++-----
...ty-with-resource-affinity-rules.cfg.expect | 84 +++---
...rce-refs-in-node-affinity-rules.cfg.expect | 116 ++++----
src/test/test_rules_config.pl | 9 +-
13 files changed, 673 insertions(+), 676 deletions(-)
diff --git a/src/test/rules_cfgs/defaults-for-node-affinity-rules.cfg.expect b/src/test/rules_cfgs/defaults-for-node-affinity-rules.cfg.expect
index 59a2c364..8ea928f2 100644
--- a/src/test/rules_cfgs/defaults-for-node-affinity-rules.cfg.expect
+++ b/src/test/rules_cfgs/defaults-for-node-affinity-rules.cfg.expect
@@ -1,60 +1,60 @@
--- Log ---
--- Config ---
-$VAR1 = {
- 'digest' => 'c96c9de143221a82e44efa8bb4814b8248a8ea11',
- 'ids' => {
- 'node-affinity-defaults' => {
- 'nodes' => {
- 'node1' => {
- 'priority' => 0
- }
- },
- 'resources' => {
- 'vm:101' => 1
- },
- 'type' => 'node-affinity'
- },
- 'node-affinity-disabled' => {
- 'disable' => 1,
- 'nodes' => {
- 'node2' => {
- 'priority' => 0
- }
- },
- 'resources' => {
- 'vm:102' => 1
- },
- 'type' => 'node-affinity'
- },
- 'node-affinity-disabled-explicit' => {
- 'disable' => 1,
- 'nodes' => {
- 'node2' => {
- 'priority' => 0
- }
- },
- 'resources' => {
- 'vm:103' => 1
- },
- 'type' => 'node-affinity'
- },
- 'node-affinity-strict' => {
- 'nodes' => {
- 'node3' => {
- 'priority' => 0
- }
- },
- 'resources' => {
- 'vm:104' => 1
- },
- 'strict' => 1,
- 'type' => 'node-affinity'
- }
- },
- 'order' => {
- 'node-affinity-defaults' => 1,
- 'node-affinity-disabled' => 2,
- 'node-affinity-disabled-explicit' => 3,
- 'node-affinity-strict' => 4
- }
- };
+{
+ "digest" : "c96c9de143221a82e44efa8bb4814b8248a8ea11",
+ "ids" : {
+ "node-affinity-defaults" : {
+ "nodes" : {
+ "node1" : {
+ "priority" : 0
+ }
+ },
+ "resources" : {
+ "vm:101" : 1
+ },
+ "type" : "node-affinity"
+ },
+ "node-affinity-disabled" : {
+ "disable" : 1,
+ "nodes" : {
+ "node2" : {
+ "priority" : 0
+ }
+ },
+ "resources" : {
+ "vm:102" : 1
+ },
+ "type" : "node-affinity"
+ },
+ "node-affinity-disabled-explicit" : {
+ "disable" : 1,
+ "nodes" : {
+ "node2" : {
+ "priority" : 0
+ }
+ },
+ "resources" : {
+ "vm:103" : 1
+ },
+ "type" : "node-affinity"
+ },
+ "node-affinity-strict" : {
+ "nodes" : {
+ "node3" : {
+ "priority" : 0
+ }
+ },
+ "resources" : {
+ "vm:104" : 1
+ },
+ "strict" : 1,
+ "type" : "node-affinity"
+ }
+ },
+ "order" : {
+ "node-affinity-defaults" : 1,
+ "node-affinity-disabled" : 2,
+ "node-affinity-disabled-explicit" : 3,
+ "node-affinity-strict" : 4
+ }
+}
diff --git a/src/test/rules_cfgs/defaults-for-resource-affinity-rules.cfg.expect b/src/test/rules_cfgs/defaults-for-resource-affinity-rules.cfg.expect
index 7384b0b8..7af19a18 100644
--- a/src/test/rules_cfgs/defaults-for-resource-affinity-rules.cfg.expect
+++ b/src/test/rules_cfgs/defaults-for-resource-affinity-rules.cfg.expect
@@ -1,38 +1,38 @@
--- Log ---
--- Config ---
-$VAR1 = {
- 'digest' => '9ac7cc517f02c41e3403085ec02f6a9259f2ac94',
- 'ids' => {
- 'resource-affinity-defaults' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:101' => 1,
- 'vm:102' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'resource-affinity-disabled' => {
- 'affinity' => 'negative',
- 'disable' => 1,
- 'resources' => {
- 'vm:201' => 1,
- 'vm:202' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'resource-affinity-disabled-explicit' => {
- 'affinity' => 'negative',
- 'disable' => 1,
- 'resources' => {
- 'vm:301' => 1,
- 'vm:302' => 1
- },
- 'type' => 'resource-affinity'
- }
- },
- 'order' => {
- 'resource-affinity-defaults' => 1,
- 'resource-affinity-disabled' => 2,
- 'resource-affinity-disabled-explicit' => 3
- }
- };
+{
+ "digest" : "9ac7cc517f02c41e3403085ec02f6a9259f2ac94",
+ "ids" : {
+ "resource-affinity-defaults" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:101" : 1,
+ "vm:102" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "resource-affinity-disabled" : {
+ "affinity" : "negative",
+ "disable" : 1,
+ "resources" : {
+ "vm:201" : 1,
+ "vm:202" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "resource-affinity-disabled-explicit" : {
+ "affinity" : "negative",
+ "disable" : 1,
+ "resources" : {
+ "vm:301" : 1,
+ "vm:302" : 1
+ },
+ "type" : "resource-affinity"
+ }
+ },
+ "order" : {
+ "resource-affinity-defaults" : 1,
+ "resource-affinity-disabled" : 2,
+ "resource-affinity-disabled-explicit" : 3
+ }
+}
diff --git a/src/test/rules_cfgs/inconsistent-node-resource-affinity-rules.cfg.expect b/src/test/rules_cfgs/inconsistent-node-resource-affinity-rules.cfg.expect
index 80222c86..ad517077 100644
--- a/src/test/rules_cfgs/inconsistent-node-resource-affinity-rules.cfg.expect
+++ b/src/test/rules_cfgs/inconsistent-node-resource-affinity-rules.cfg.expect
@@ -10,68 +10,68 @@ Drop rule 'vm501-vm502-must-be-kept-together', because resources are in multiple
Drop rule 'vm502-vm503-must-be-kept-together', because resources are in multiple node affinity rules.
Drop rule 'vm503-must-be-on-node2', because at least one resource is in a positive resource affinity rule and there are other resources in at least one other node affinity rule already.
--- Config ---
-$VAR1 = {
- 'digest' => '00a70f4c2bdd41aed16b6e5b9860cd9fb7f0f098',
- 'ids' => {
- 'vm101-vm102-must-be-kept-together' => {
- 'affinity' => 'positive',
- 'resources' => {
- 'vm:101' => 1,
- 'vm:102' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'vm101-vm102-must-be-on-node1' => {
- 'nodes' => {
- 'node1' => {
- 'priority' => 0
- }
- },
- 'resources' => {
- 'vm:101' => 1,
- 'vm:102' => 1
- },
- 'strict' => 1,
- 'type' => 'node-affinity'
- },
- 'vm201-must-be-on-node1' => {
- 'nodes' => {
- 'node1' => {
- 'priority' => 0
- }
- },
- 'resources' => {
- 'vm:201' => 1
- },
- 'strict' => 1,
- 'type' => 'node-affinity'
- },
- 'vm201-vm202-must-be-kept-separate' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:201' => 1,
- 'vm:202' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'vm202-must-be-on-node2' => {
- 'nodes' => {
- 'node2' => {
- 'priority' => 0
- }
- },
- 'resources' => {
- 'vm:202' => 1
- },
- 'strict' => 1,
- 'type' => 'node-affinity'
- }
- },
- 'order' => {
- 'vm101-vm102-must-be-kept-together' => 2,
- 'vm101-vm102-must-be-on-node1' => 1,
- 'vm201-must-be-on-node1' => 3,
- 'vm201-vm202-must-be-kept-separate' => 5,
- 'vm202-must-be-on-node2' => 4
- }
- };
+{
+ "digest" : "00a70f4c2bdd41aed16b6e5b9860cd9fb7f0f098",
+ "ids" : {
+ "vm101-vm102-must-be-kept-together" : {
+ "affinity" : "positive",
+ "resources" : {
+ "vm:101" : 1,
+ "vm:102" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "vm101-vm102-must-be-on-node1" : {
+ "nodes" : {
+ "node1" : {
+ "priority" : 0
+ }
+ },
+ "resources" : {
+ "vm:101" : 1,
+ "vm:102" : 1
+ },
+ "strict" : 1,
+ "type" : "node-affinity"
+ },
+ "vm201-must-be-on-node1" : {
+ "nodes" : {
+ "node1" : {
+ "priority" : 0
+ }
+ },
+ "resources" : {
+ "vm:201" : 1
+ },
+ "strict" : 1,
+ "type" : "node-affinity"
+ },
+ "vm201-vm202-must-be-kept-separate" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:201" : 1,
+ "vm:202" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "vm202-must-be-on-node2" : {
+ "nodes" : {
+ "node2" : {
+ "priority" : 0
+ }
+ },
+ "resources" : {
+ "vm:202" : 1
+ },
+ "strict" : 1,
+ "type" : "node-affinity"
+ }
+ },
+ "order" : {
+ "vm101-vm102-must-be-kept-together" : 2,
+ "vm101-vm102-must-be-on-node1" : 1,
+ "vm201-must-be-on-node1" : 3,
+ "vm201-vm202-must-be-kept-separate" : 5,
+ "vm202-must-be-on-node2" : 4
+ }
+}
diff --git a/src/test/rules_cfgs/inconsistent-resource-affinity-rules.cfg.expect b/src/test/rules_cfgs/inconsistent-resource-affinity-rules.cfg.expect
index 8f2338d9..f47828c6 100644
--- a/src/test/rules_cfgs/inconsistent-resource-affinity-rules.cfg.expect
+++ b/src/test/rules_cfgs/inconsistent-resource-affinity-rules.cfg.expect
@@ -7,8 +7,8 @@ Drop rule 'split-stick-together2', because rule shares two or more resources wit
Drop rule 'stick-together1', because rule shares two or more resources with a negative resource affinity rule.
Drop rule 'stick-together1', because rule shares two or more resources with a negative resource affinity rule.
--- Config ---
-$VAR1 = {
- 'digest' => '80cdc11a1d5bf2d1d500665af1210cd59aabede6',
- 'ids' => {},
- 'order' => {}
- };
+{
+ "digest" : "80cdc11a1d5bf2d1d500665af1210cd59aabede6",
+ "ids" : {},
+ "order" : {}
+}
diff --git a/src/test/rules_cfgs/ineffective-negative-resource-affinity-rules.cfg.expect b/src/test/rules_cfgs/ineffective-negative-resource-affinity-rules.cfg.expect
index 8a2b8797..e2c1ad11 100644
--- a/src/test/rules_cfgs/ineffective-negative-resource-affinity-rules.cfg.expect
+++ b/src/test/rules_cfgs/ineffective-negative-resource-affinity-rules.cfg.expect
@@ -2,29 +2,29 @@
Drop rule 'remove-me1', because rule defines more resources than available nodes.
Drop rule 'remove-me2', because rule defines more resources than available nodes.
--- Config ---
-$VAR1 = {
- 'digest' => '68633cedeeb355ef78fe28221ef3f16537b3e788',
- 'ids' => {
- 'do-not-remove-me1' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:101' => 1,
- 'vm:102' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'do-not-remove-me2' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:101' => 1,
- 'vm:102' => 1,
- 'vm:103' => 1
- },
- 'type' => 'resource-affinity'
- }
- },
- 'order' => {
- 'do-not-remove-me1' => 1,
- 'do-not-remove-me2' => 2
- }
- };
+{
+ "digest" : "68633cedeeb355ef78fe28221ef3f16537b3e788",
+ "ids" : {
+ "do-not-remove-me1" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:101" : 1,
+ "vm:102" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "do-not-remove-me2" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:101" : 1,
+ "vm:102" : 1,
+ "vm:103" : 1
+ },
+ "type" : "resource-affinity"
+ }
+ },
+ "order" : {
+ "do-not-remove-me1" : 1,
+ "do-not-remove-me2" : 2
+ }
+}
diff --git a/src/test/rules_cfgs/ineffective-resource-affinity-rules.cfg.expect b/src/test/rules_cfgs/ineffective-resource-affinity-rules.cfg.expect
index b2d468b2..4bbc782a 100644
--- a/src/test/rules_cfgs/ineffective-resource-affinity-rules.cfg.expect
+++ b/src/test/rules_cfgs/ineffective-resource-affinity-rules.cfg.expect
@@ -2,8 +2,8 @@
Drop rule 'lonely-resource1', because rule is ineffective as there are less than two resources.
Drop rule 'lonely-resource2', because rule is ineffective as there are less than two resources.
--- Config ---
-$VAR1 = {
- 'digest' => 'fe89f8c8f5acc29f807eaa0cec5974b6e957a596',
- 'ids' => {},
- 'order' => {}
- };
+{
+ "digest" : "fe89f8c8f5acc29f807eaa0cec5974b6e957a596",
+ "ids" : {},
+ "order" : {}
+}
diff --git a/src/test/rules_cfgs/infer-implicit-negative-resource-affinity-rules.cfg.expect b/src/test/rules_cfgs/infer-implicit-negative-resource-affinity-rules.cfg.expect
index 09364d41..d3f1c7c3 100644
--- a/src/test/rules_cfgs/infer-implicit-negative-resource-affinity-rules.cfg.expect
+++ b/src/test/rules_cfgs/infer-implicit-negative-resource-affinity-rules.cfg.expect
@@ -2,130 +2,130 @@
Drop rule 'do-not-infer-inconsistent-negative2', because rule shares two or more resources with a positive resource affinity rule.
Drop rule 'do-not-infer-inconsistent-positive1', because rule shares two or more resources with a negative resource affinity rule.
--- Config ---
-$VAR1 = {
- 'digest' => 'd8724dfe2130bb642b98e021da973aa0ec0695f0',
- 'ids' => {
- '_implicit-negative-infer-simple-positive1-vm:202-vm:204' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:202' => 1,
- 'vm:204' => 1
- },
- 'type' => 'resource-affinity'
- },
- '_implicit-negative-infer-simple-positive1-vm:203-vm:204' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:203' => 1,
- 'vm:204' => 1
- },
- 'type' => 'resource-affinity'
- },
- '_implicit-negative-infer-two-positive1-vm:301-vm:304' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:301' => 1,
- 'vm:304' => 1
- },
- 'type' => 'resource-affinity'
- },
- '_implicit-negative-infer-two-positive1-vm:301-vm:305' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:301' => 1,
- 'vm:305' => 1
- },
- 'type' => 'resource-affinity'
- },
- '_implicit-negative-infer-two-positive1-vm:302-vm:304' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:302' => 1,
- 'vm:304' => 1
- },
- 'type' => 'resource-affinity'
- },
- '_implicit-negative-infer-two-positive1-vm:303-vm:305' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:303' => 1,
- 'vm:305' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'do-not-infer-inconsistent-negative1' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:401' => 1,
- 'vm:404' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'do-not-infer-positive1' => {
- 'affinity' => 'positive',
- 'resources' => {
- 'vm:101' => 1,
- 'vm:102' => 1,
- 'vm:103' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'infer-simple-negative1' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:201' => 1,
- 'vm:204' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'infer-simple-positive1' => {
- 'affinity' => 'positive',
- 'resources' => {
- 'vm:201' => 1,
- 'vm:202' => 1,
- 'vm:203' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'infer-two-negative1' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:303' => 1,
- 'vm:304' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'infer-two-negative2' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:302' => 1,
- 'vm:305' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'infer-two-positive1' => {
- 'affinity' => 'positive',
- 'resources' => {
- 'vm:301' => 1,
- 'vm:302' => 1,
- 'vm:303' => 1
- },
- 'type' => 'resource-affinity'
- }
- },
- 'order' => {
- '_implicit-negative-infer-simple-positive1-vm:202-vm:204' => 2,
- '_implicit-negative-infer-simple-positive1-vm:203-vm:204' => 2,
- '_implicit-negative-infer-two-positive1-vm:301-vm:304' => 2,
- '_implicit-negative-infer-two-positive1-vm:301-vm:305' => 2,
- '_implicit-negative-infer-two-positive1-vm:302-vm:304' => 2,
- '_implicit-negative-infer-two-positive1-vm:303-vm:305' => 2,
- 'do-not-infer-inconsistent-negative1' => 8,
- 'do-not-infer-positive1' => 1,
- 'infer-simple-negative1' => 3,
- 'infer-simple-positive1' => 2,
- 'infer-two-negative1' => 5,
- 'infer-two-negative2' => 6,
- 'infer-two-positive1' => 4
- }
- };
+{
+ "digest" : "d8724dfe2130bb642b98e021da973aa0ec0695f0",
+ "ids" : {
+ "_implicit-negative-infer-simple-positive1-vm:202-vm:204" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:202" : 1,
+ "vm:204" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "_implicit-negative-infer-simple-positive1-vm:203-vm:204" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:203" : 1,
+ "vm:204" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "_implicit-negative-infer-two-positive1-vm:301-vm:304" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:301" : 1,
+ "vm:304" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "_implicit-negative-infer-two-positive1-vm:301-vm:305" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:301" : 1,
+ "vm:305" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "_implicit-negative-infer-two-positive1-vm:302-vm:304" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:302" : 1,
+ "vm:304" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "_implicit-negative-infer-two-positive1-vm:303-vm:305" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:303" : 1,
+ "vm:305" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "do-not-infer-inconsistent-negative1" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:401" : 1,
+ "vm:404" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "do-not-infer-positive1" : {
+ "affinity" : "positive",
+ "resources" : {
+ "vm:101" : 1,
+ "vm:102" : 1,
+ "vm:103" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "infer-simple-negative1" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:201" : 1,
+ "vm:204" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "infer-simple-positive1" : {
+ "affinity" : "positive",
+ "resources" : {
+ "vm:201" : 1,
+ "vm:202" : 1,
+ "vm:203" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "infer-two-negative1" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:303" : 1,
+ "vm:304" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "infer-two-negative2" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:302" : 1,
+ "vm:305" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "infer-two-positive1" : {
+ "affinity" : "positive",
+ "resources" : {
+ "vm:301" : 1,
+ "vm:302" : 1,
+ "vm:303" : 1
+ },
+ "type" : "resource-affinity"
+ }
+ },
+ "order" : {
+ "_implicit-negative-infer-simple-positive1-vm:202-vm:204" : 2,
+ "_implicit-negative-infer-simple-positive1-vm:203-vm:204" : 2,
+ "_implicit-negative-infer-two-positive1-vm:301-vm:304" : 2,
+ "_implicit-negative-infer-two-positive1-vm:301-vm:305" : 2,
+ "_implicit-negative-infer-two-positive1-vm:302-vm:304" : 2,
+ "_implicit-negative-infer-two-positive1-vm:303-vm:305" : 2,
+ "do-not-infer-inconsistent-negative1" : 8,
+ "do-not-infer-positive1" : 1,
+ "infer-simple-negative1" : 3,
+ "infer-simple-positive1" : 2,
+ "infer-two-negative1" : 5,
+ "infer-two-negative2" : 6,
+ "infer-two-positive1" : 4
+ }
+}
diff --git a/src/test/rules_cfgs/infer-node-affinity-for-positive-resource-affinity-rules.cfg.expect b/src/test/rules_cfgs/infer-node-affinity-for-positive-resource-affinity-rules.cfg.expect
index 33c56c62..3f5cd6d8 100644
--- a/src/test/rules_cfgs/infer-node-affinity-for-positive-resource-affinity-rules.cfg.expect
+++ b/src/test/rules_cfgs/infer-node-affinity-for-positive-resource-affinity-rules.cfg.expect
@@ -1,111 +1,111 @@
--- Log ---
--- Config ---
-$VAR1 = {
- 'digest' => '32ae135ef2f8bd84cd12c18af6910dce9d6bc9fa',
- 'ids' => {
- 'do-not-infer-negative1' => {
- 'nodes' => {
- 'node1' => {
- 'priority' => 0
- },
- 'node2' => {
- 'priority' => 0
- }
- },
- 'resources' => {
- 'vm:203' => 1
- },
- 'strict' => 1,
- 'type' => 'node-affinity'
- },
- 'do-not-infer-negative2' => {
- 'nodes' => {
- 'node3' => {
- 'priority' => 0
- }
- },
- 'resources' => {
- 'vm:201' => 1
- },
- 'type' => 'node-affinity'
- },
- 'do-not-infer-negative3' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:201' => 1,
- 'vm:203' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'do-not-infer-positive1' => {
- 'affinity' => 'positive',
- 'resources' => {
- 'vm:101' => 1,
- 'vm:102' => 1,
- 'vm:103' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'infer-multi-resources1' => {
- 'nodes' => {
- 'node1' => {
- 'priority' => 0
- },
- 'node3' => {
- 'priority' => 0
- }
- },
- 'resources' => {
- 'vm:401' => 1,
- 'vm:402' => 1,
- 'vm:403' => 1,
- 'vm:404' => 1,
- 'vm:405' => 1
- },
- 'strict' => 1,
- 'type' => 'node-affinity'
- },
- 'infer-multi-resources2' => {
- 'affinity' => 'positive',
- 'resources' => {
- 'vm:401' => 1,
- 'vm:402' => 1,
- 'vm:403' => 1,
- 'vm:404' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'infer-single-resource1' => {
- 'nodes' => {
- 'node3' => {
- 'priority' => 0
- }
- },
- 'resources' => {
- 'vm:301' => 1,
- 'vm:302' => 1,
- 'vm:303' => 1
- },
- 'type' => 'node-affinity'
- },
- 'infer-single-resource2' => {
- 'affinity' => 'positive',
- 'resources' => {
- 'vm:301' => 1,
- 'vm:302' => 1,
- 'vm:303' => 1
- },
- 'type' => 'resource-affinity'
- }
- },
- 'order' => {
- 'do-not-infer-negative1' => 2,
- 'do-not-infer-negative2' => 3,
- 'do-not-infer-negative3' => 4,
- 'do-not-infer-positive1' => 1,
- 'infer-multi-resources1' => 7,
- 'infer-multi-resources2' => 8,
- 'infer-single-resource1' => 5,
- 'infer-single-resource2' => 6
- }
- };
+{
+ "digest" : "32ae135ef2f8bd84cd12c18af6910dce9d6bc9fa",
+ "ids" : {
+ "do-not-infer-negative1" : {
+ "nodes" : {
+ "node1" : {
+ "priority" : 0
+ },
+ "node2" : {
+ "priority" : 0
+ }
+ },
+ "resources" : {
+ "vm:203" : 1
+ },
+ "strict" : 1,
+ "type" : "node-affinity"
+ },
+ "do-not-infer-negative2" : {
+ "nodes" : {
+ "node3" : {
+ "priority" : 0
+ }
+ },
+ "resources" : {
+ "vm:201" : 1
+ },
+ "type" : "node-affinity"
+ },
+ "do-not-infer-negative3" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:201" : 1,
+ "vm:203" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "do-not-infer-positive1" : {
+ "affinity" : "positive",
+ "resources" : {
+ "vm:101" : 1,
+ "vm:102" : 1,
+ "vm:103" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "infer-multi-resources1" : {
+ "nodes" : {
+ "node1" : {
+ "priority" : 0
+ },
+ "node3" : {
+ "priority" : 0
+ }
+ },
+ "resources" : {
+ "vm:401" : 1,
+ "vm:402" : 1,
+ "vm:403" : 1,
+ "vm:404" : 1,
+ "vm:405" : 1
+ },
+ "strict" : 1,
+ "type" : "node-affinity"
+ },
+ "infer-multi-resources2" : {
+ "affinity" : "positive",
+ "resources" : {
+ "vm:401" : 1,
+ "vm:402" : 1,
+ "vm:403" : 1,
+ "vm:404" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "infer-single-resource1" : {
+ "nodes" : {
+ "node3" : {
+ "priority" : 0
+ }
+ },
+ "resources" : {
+ "vm:301" : 1,
+ "vm:302" : 1,
+ "vm:303" : 1
+ },
+ "type" : "node-affinity"
+ },
+ "infer-single-resource2" : {
+ "affinity" : "positive",
+ "resources" : {
+ "vm:301" : 1,
+ "vm:302" : 1,
+ "vm:303" : 1
+ },
+ "type" : "resource-affinity"
+ }
+ },
+ "order" : {
+ "do-not-infer-negative1" : 2,
+ "do-not-infer-negative2" : 3,
+ "do-not-infer-negative3" : 4,
+ "do-not-infer-positive1" : 1,
+ "infer-multi-resources1" : 7,
+ "infer-multi-resources2" : 8,
+ "infer-single-resource1" : 5,
+ "infer-single-resource2" : 6
+ }
+}
diff --git a/src/test/rules_cfgs/merge-and-infer-implicit-negative-resource-affinity-rules.cfg.expect b/src/test/rules_cfgs/merge-and-infer-implicit-negative-resource-affinity-rules.cfg.expect
index 876c2030..0002dc2a 100644
--- a/src/test/rules_cfgs/merge-and-infer-implicit-negative-resource-affinity-rules.cfg.expect
+++ b/src/test/rules_cfgs/merge-and-infer-implicit-negative-resource-affinity-rules.cfg.expect
@@ -1,73 +1,73 @@
--- Log ---
--- Config ---
-$VAR1 = {
- 'digest' => '5695bd62a65966a275a62a01d2d8fbc370d91668',
- 'ids' => {
- '_implicit-negative-_merged-infer-connected-positive1-infer-connected-positive2-vm:101-vm:105' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:101' => 1,
- 'vm:105' => 1
- },
- 'type' => 'resource-affinity'
- },
- '_implicit-negative-_merged-infer-connected-positive1-infer-connected-positive2-vm:102-vm:104' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:102' => 1,
- 'vm:104' => 1
- },
- 'type' => 'resource-affinity'
- },
- '_implicit-negative-_merged-infer-connected-positive1-infer-connected-positive2-vm:103-vm:104' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:103' => 1,
- 'vm:104' => 1
- },
- 'type' => 'resource-affinity'
- },
- '_implicit-negative-_merged-infer-connected-positive1-infer-connected-positive2-vm:103-vm:105' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:103' => 1,
- 'vm:105' => 1
- },
- 'type' => 'resource-affinity'
- },
- '_merged-infer-connected-positive1-infer-connected-positive2' => {
- 'affinity' => 'positive',
- 'resources' => {
- 'vm:101' => 1,
- 'vm:102' => 1,
- 'vm:103' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'infer-connected-negative1' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:101' => 1,
- 'vm:104' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'infer-connected-negative2' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:102' => 1,
- 'vm:105' => 1
- },
- 'type' => 'resource-affinity'
- }
- },
- 'order' => {
- '_implicit-negative-_merged-infer-connected-positive1-infer-connected-positive2-vm:101-vm:105' => 2,
- '_implicit-negative-_merged-infer-connected-positive1-infer-connected-positive2-vm:102-vm:104' => 2,
- '_implicit-negative-_merged-infer-connected-positive1-infer-connected-positive2-vm:103-vm:104' => 2,
- '_implicit-negative-_merged-infer-connected-positive1-infer-connected-positive2-vm:103-vm:105' => 2,
- '_merged-infer-connected-positive1-infer-connected-positive2' => 1,
- 'infer-connected-negative1' => 3,
- 'infer-connected-negative2' => 4
- }
- };
+{
+ "digest" : "5695bd62a65966a275a62a01d2d8fbc370d91668",
+ "ids" : {
+ "_implicit-negative-_merged-infer-connected-positive1-infer-connected-positive2-vm:101-vm:105" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:101" : 1,
+ "vm:105" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "_implicit-negative-_merged-infer-connected-positive1-infer-connected-positive2-vm:102-vm:104" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:102" : 1,
+ "vm:104" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "_implicit-negative-_merged-infer-connected-positive1-infer-connected-positive2-vm:103-vm:104" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:103" : 1,
+ "vm:104" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "_implicit-negative-_merged-infer-connected-positive1-infer-connected-positive2-vm:103-vm:105" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:103" : 1,
+ "vm:105" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "_merged-infer-connected-positive1-infer-connected-positive2" : {
+ "affinity" : "positive",
+ "resources" : {
+ "vm:101" : 1,
+ "vm:102" : 1,
+ "vm:103" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "infer-connected-negative1" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:101" : 1,
+ "vm:104" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "infer-connected-negative2" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:102" : 1,
+ "vm:105" : 1
+ },
+ "type" : "resource-affinity"
+ }
+ },
+ "order" : {
+ "_implicit-negative-_merged-infer-connected-positive1-infer-connected-positive2-vm:101-vm:105" : 2,
+ "_implicit-negative-_merged-infer-connected-positive1-infer-connected-positive2-vm:102-vm:104" : 2,
+ "_implicit-negative-_merged-infer-connected-positive1-infer-connected-positive2-vm:103-vm:104" : 2,
+ "_implicit-negative-_merged-infer-connected-positive1-infer-connected-positive2-vm:103-vm:105" : 2,
+ "_merged-infer-connected-positive1-infer-connected-positive2" : 1,
+ "infer-connected-negative1" : 3,
+ "infer-connected-negative2" : 4
+ }
+}
diff --git a/src/test/rules_cfgs/merge-connected-positive-resource-affinity-rules.cfg.expect b/src/test/rules_cfgs/merge-connected-positive-resource-affinity-rules.cfg.expect
index e57a792b..935a4f7c 100644
--- a/src/test/rules_cfgs/merge-connected-positive-resource-affinity-rules.cfg.expect
+++ b/src/test/rules_cfgs/merge-connected-positive-resource-affinity-rules.cfg.expect
@@ -1,70 +1,70 @@
--- Log ---
--- Config ---
-$VAR1 = {
- 'digest' => '920d9caac206fc0dd893753bfb2cab3e6d6a9b9b',
- 'ids' => {
- '_merged-merge-positive1-merge-positive3-merge-positive4-merge-positive2-merge-positive5' => {
- 'affinity' => 'positive',
- 'resources' => {
- 'vm:301' => 1,
- 'vm:302' => 1,
- 'vm:303' => 1,
- 'vm:304' => 1,
- 'vm:305' => 1,
- 'vm:306' => 1,
- 'vm:307' => 1,
- 'vm:308' => 1,
- 'vm:309' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'do-not-merge-negative1' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:101' => 1,
- 'vm:102' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'do-not-merge-negative2' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:102' => 1,
- 'vm:103' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'do-not-merge-negative3' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:104' => 1,
- 'vm:105' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'do-not-merge-positive1' => {
- 'affinity' => 'positive',
- 'resources' => {
- 'vm:201' => 1,
- 'vm:202' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'do-not-merge-positive2' => {
- 'affinity' => 'positive',
- 'resources' => {
- 'vm:203' => 1,
- 'vm:204' => 1
- },
- 'type' => 'resource-affinity'
- }
- },
- 'order' => {
- '_merged-merge-positive1-merge-positive3-merge-positive4-merge-positive2-merge-positive5' => 6,
- 'do-not-merge-negative1' => 1,
- 'do-not-merge-negative2' => 2,
- 'do-not-merge-negative3' => 3,
- 'do-not-merge-positive1' => 4,
- 'do-not-merge-positive2' => 5
- }
- };
+{
+ "digest" : "920d9caac206fc0dd893753bfb2cab3e6d6a9b9b",
+ "ids" : {
+ "_merged-merge-positive1-merge-positive3-merge-positive4-merge-positive2-merge-positive5" : {
+ "affinity" : "positive",
+ "resources" : {
+ "vm:301" : 1,
+ "vm:302" : 1,
+ "vm:303" : 1,
+ "vm:304" : 1,
+ "vm:305" : 1,
+ "vm:306" : 1,
+ "vm:307" : 1,
+ "vm:308" : 1,
+ "vm:309" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "do-not-merge-negative1" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:101" : 1,
+ "vm:102" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "do-not-merge-negative2" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:102" : 1,
+ "vm:103" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "do-not-merge-negative3" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:104" : 1,
+ "vm:105" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "do-not-merge-positive1" : {
+ "affinity" : "positive",
+ "resources" : {
+ "vm:201" : 1,
+ "vm:202" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "do-not-merge-positive2" : {
+ "affinity" : "positive",
+ "resources" : {
+ "vm:203" : 1,
+ "vm:204" : 1
+ },
+ "type" : "resource-affinity"
+ }
+ },
+ "order" : {
+ "_merged-merge-positive1-merge-positive3-merge-positive4-merge-positive2-merge-positive5" : 6,
+ "do-not-merge-negative1" : 1,
+ "do-not-merge-negative2" : 2,
+ "do-not-merge-negative3" : 3,
+ "do-not-merge-positive1" : 4,
+ "do-not-merge-positive2" : 5
+ }
+}
diff --git a/src/test/rules_cfgs/multi-priority-node-affinity-with-resource-affinity-rules.cfg.expect b/src/test/rules_cfgs/multi-priority-node-affinity-with-resource-affinity-rules.cfg.expect
index 92d12929..e2d5ee00 100644
--- a/src/test/rules_cfgs/multi-priority-node-affinity-with-resource-affinity-rules.cfg.expect
+++ b/src/test/rules_cfgs/multi-priority-node-affinity-with-resource-affinity-rules.cfg.expect
@@ -4,45 +4,45 @@ Drop rule 'vm101-vm102-should-be-on-node1-or-node2', because resources are in a
Drop rule 'vm201-vm202-must-be-kept-together', because resources are in node affinity rules with multiple priorities.
Drop rule 'vm201-vm202-must-be-on-node1-or-node2', because resources are in a resource affinity rule and cannot be in a node affinity rule with multiple priorities.
--- Config ---
-$VAR1 = {
- 'digest' => '722a98914555f296af0916c980a9d6c780f5f072',
- 'ids' => {
- 'vm301-must-be-on-node1-with-prio-1' => {
- 'nodes' => {
- 'node1' => {
- 'priority' => 1
- }
- },
- 'resources' => {
- 'vm:301' => 1
- },
- 'strict' => 1,
- 'type' => 'node-affinity'
- },
- 'vm301-vm302-must-be-kept-together' => {
- 'affinity' => 'negative',
- 'resources' => {
- 'vm:301' => 1,
- 'vm:302' => 1
- },
- 'type' => 'resource-affinity'
- },
- 'vm302-must-be-on-node2-with-prio-2' => {
- 'nodes' => {
- 'node2' => {
- 'priority' => 2
- }
- },
- 'resources' => {
- 'vm:302' => 1
- },
- 'strict' => 1,
- 'type' => 'node-affinity'
- }
- },
- 'order' => {
- 'vm301-must-be-on-node1-with-prio-1' => 5,
- 'vm301-vm302-must-be-kept-together' => 7,
- 'vm302-must-be-on-node2-with-prio-2' => 6
- }
- };
+{
+ "digest" : "722a98914555f296af0916c980a9d6c780f5f072",
+ "ids" : {
+ "vm301-must-be-on-node1-with-prio-1" : {
+ "nodes" : {
+ "node1" : {
+ "priority" : 1
+ }
+ },
+ "resources" : {
+ "vm:301" : 1
+ },
+ "strict" : 1,
+ "type" : "node-affinity"
+ },
+ "vm301-vm302-must-be-kept-together" : {
+ "affinity" : "negative",
+ "resources" : {
+ "vm:301" : 1,
+ "vm:302" : 1
+ },
+ "type" : "resource-affinity"
+ },
+ "vm302-must-be-on-node2-with-prio-2" : {
+ "nodes" : {
+ "node2" : {
+ "priority" : 2
+ }
+ },
+ "resources" : {
+ "vm:302" : 1
+ },
+ "strict" : 1,
+ "type" : "node-affinity"
+ }
+ },
+ "order" : {
+ "vm301-must-be-on-node1-with-prio-1" : 5,
+ "vm301-vm302-must-be-kept-together" : 7,
+ "vm302-must-be-on-node2-with-prio-2" : 6
+ }
+}
diff --git a/src/test/rules_cfgs/multiple-resource-refs-in-node-affinity-rules.cfg.expect b/src/test/rules_cfgs/multiple-resource-refs-in-node-affinity-rules.cfg.expect
index 3fd0c9ca..30633d8c 100644
--- a/src/test/rules_cfgs/multiple-resource-refs-in-node-affinity-rules.cfg.expect
+++ b/src/test/rules_cfgs/multiple-resource-refs-in-node-affinity-rules.cfg.expect
@@ -3,61 +3,61 @@ Drop rule 'same-resource1', because resource 'vm:201' is already used in another
Drop rule 'same-resource2', because resource 'vm:201' is already used in another node affinity rule.
Drop rule 'same-resource3', because resource 'vm:201' is already used in another node affinity rule.
--- Config ---
-$VAR1 = {
- 'digest' => '5865d23b1a342e7f8cfa68bd0e1da556ca8d28a6',
- 'ids' => {
- 'no-same-resource1' => {
- 'nodes' => {
- 'node1' => {
- 'priority' => 0
- },
- 'node2' => {
- 'priority' => 2
- }
- },
- 'resources' => {
- 'vm:101' => 1,
- 'vm:102' => 1,
- 'vm:103' => 1
- },
- 'strict' => 0,
- 'type' => 'node-affinity'
- },
- 'no-same-resource2' => {
- 'nodes' => {
- 'node1' => {
- 'priority' => 0
- },
- 'node2' => {
- 'priority' => 2
- }
- },
- 'resources' => {
- 'vm:104' => 1,
- 'vm:105' => 1
- },
- 'strict' => 0,
- 'type' => 'node-affinity'
- },
- 'no-same-resource3' => {
- 'nodes' => {
- 'node1' => {
- 'priority' => 0
- },
- 'node2' => {
- 'priority' => 2
- }
- },
- 'resources' => {
- 'vm:106' => 1
- },
- 'strict' => 1,
- 'type' => 'node-affinity'
- }
- },
- 'order' => {
- 'no-same-resource1' => 1,
- 'no-same-resource2' => 2,
- 'no-same-resource3' => 3
- }
- };
+{
+ "digest" : "5865d23b1a342e7f8cfa68bd0e1da556ca8d28a6",
+ "ids" : {
+ "no-same-resource1" : {
+ "nodes" : {
+ "node1" : {
+ "priority" : 0
+ },
+ "node2" : {
+ "priority" : 2
+ }
+ },
+ "resources" : {
+ "vm:101" : 1,
+ "vm:102" : 1,
+ "vm:103" : 1
+ },
+ "strict" : 0,
+ "type" : "node-affinity"
+ },
+ "no-same-resource2" : {
+ "nodes" : {
+ "node1" : {
+ "priority" : 0
+ },
+ "node2" : {
+ "priority" : 2
+ }
+ },
+ "resources" : {
+ "vm:104" : 1,
+ "vm:105" : 1
+ },
+ "strict" : 0,
+ "type" : "node-affinity"
+ },
+ "no-same-resource3" : {
+ "nodes" : {
+ "node1" : {
+ "priority" : 0
+ },
+ "node2" : {
+ "priority" : 2
+ }
+ },
+ "resources" : {
+ "vm:106" : 1
+ },
+ "strict" : 1,
+ "type" : "node-affinity"
+ }
+ },
+ "order" : {
+ "no-same-resource1" : 1,
+ "no-same-resource2" : 2,
+ "no-same-resource3" : 3
+ }
+}
diff --git a/src/test/test_rules_config.pl b/src/test/test_rules_config.pl
index 3c2dac4b..edfcb3b7 100755
--- a/src/test/test_rules_config.pl
+++ b/src/test/test_rules_config.pl
@@ -6,11 +6,11 @@ use Getopt::Long;
use lib qw(..);
+use JSON;
+
use Test::More;
use Test::MockModule;
-use Data::Dumper;
-
use PVE::HA::Rules;
use PVE::HA::Rules::NodeAffinity;
use PVE::HA::Rules::ResourceAffinity;
@@ -56,10 +56,7 @@ sub check_cfg {
my $messages = PVE::HA::Rules->transform($cfg, $nodes);
print $_ for @$messages;
print "--- Config ---\n";
- {
- local $Data::Dumper::Sortkeys = 1;
- print Dumper($cfg);
- }
+ print to_json($cfg, { canonical => 1, pretty => 1, utf8 => 1 });
select(STDOUT);
}
--
2.47.2
More information about the pve-devel
mailing list