From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [45.144.208.40]) by lore.proxmox.com (Postfix) with ESMTPS id 799831FF0AD for ; Sun, 18 Oct 2026 14:46:52 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 71B982159E; Sun, 18 Oct 2026 14:46:31 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ghfQn0l+WmQ+siQCAnvyx0BMxQBzBSeaz71ELfgQqqyPPoArhOeUJuXljLTL9hAhCfnBUG6KOpFLHNg2WKIYGfIcCe+LKJUXJUG6DL3S4EpwbqlrNdVrlmLC6GBq5evv3sgLn8enLR7hHZx45W4ZPum3fXIRkZb9YIw+6E9dWJMF7JHwdE6xRuQwX20Byqo6S0sX1ZKx301GLFVor5M/I7PpxweJxud5SNX6RmjmYQrpXRRki8ln6/XwisHf2rUAgt1ko64Zpx++sBeIevf4Veq5dxIVZN7FYMBL9CyYZ9YUmF+FpiC8EYt8uYGREZUz2GwaOS5qyEYteOOWLhuq5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=GEzx5UAsUIJp6NZYWOvh/EgSWL24dRA4EdfIieXiUO0=; b=mubgaNf9aqGr0WSRCyi25gpc4X1rKkBTBPJk23ZyYL9Ck07GNy8BVihU9L3Waz+dF0ld8+1NBMqqANx15wsetJCh9BJXV8qToqV1/22iVZ0UnAypKWtbh+VdrGCvoHCtrsKsvvbQ4En5SX3m9i0yScbPx7DknBJ9v3FjlPz12609fG38jHHJZVj0p0bI1ztpkJZKNHqtrASfIyKP6UntmQDWBsyUnnFYscJksr/xoQwpcPBVJ5qyya70CwZlClHLQX0DGuu9edzkS1f7qTNU6dGMWT37gFS28qCm2DPRcGZ2bc/8q+UcW7izkWM3dQmL7D9ASZoNZ38bOZuGJU/hgA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ryomherold.dk; dmarc=pass action=none header.from=ryomherold.dk; dkim=pass header.d=ryomherold.dk; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=RyomHerold.dk; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GEzx5UAsUIJp6NZYWOvh/EgSWL24dRA4EdfIieXiUO0=; b=Uk9dIPlJVlzMrNdOiG2S+vtsBUkv4n31YC/Bu2GF9xiIxUTnc451oEuo55y3U0o5ctAzLjn5nmkbISljov3s3fb5l7l+Y1kqJC4k2HvpSgfEswGyMmAV4qP5TEeJzcZtGbVn6wNSwE41Gxb+OL+hS1kHMeT9WoK+4kxjXrfGhhVJzitZPUQyO7LULZ1uv6F31UgpQorNbRIy+uM6BBWe7tmxwMCEttpspT1Nx1v5ZOfJDYAMWc8br4FIiugEF9zgfrLkJL8C+aHPqVLsCknay098zuZZAy4U5sDEcTF7+BloYD0E/jgrzPCv55gOKoBc9z+rwldrIedsMklQhqmr8Q== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=RyomHerold.dk; From: Michael Ryom To: pve-devel@lists.proxmox.com Subject: [PATCH ha-manager v2 05/14] test: add auto rebalance test case for an immediate reverse motion Date: Sun, 18 Oct 2026 14:45:49 +0200 Message-ID: <20261018124559.24305-6-Michael@RyomHerold.dk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261018124559.24305-1-Michael@RyomHerold.dk> References: <20261018124559.24305-1-Michael@RyomHerold.dk> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: MM0P280CA0046.SWEP280.PROD.OUTLOOK.COM (2603:10a6:190:b::20) To AS8PR10MB7231.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:619::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR10MB7231:EE_|PA4PR10MB5706:EE_ X-MS-Office365-Filtering-Correlation-Id: 7f8ad2e4-a5f1-4f74-58dd-08df2d15cc5d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|23010399003|6133799003|22082099003|10067099003|18002099003|260925021311599003|261009223027099003|260925022911599003|261009221227099003|260925021911599003|56012099006; X-Microsoft-Antispam-Message-Info: WRd61r87NLU7+5lROFj8OFd7aRutGpZDDl36lJVeeUwEzvH98wLxgYov3919Lal32GPCcbYchYeZviIKiCZnMi65SBTJf3YgG70EgiUBC9Btl86zvnpHK8K85F3MJaGiY1fpeR1PZ4PuzkW5+N7LrvqTzgOsA6koCY1Mfuqc1hDQeF6DHTlNqoK+RWJ/z84yxyGWmIJGPnVtMELQkNYWr/njnCWtCMTMo3Zm/BQgD4QS+qs6yhtuY9BXjlJ1E5mV1r3JHlNB/2989KBOvmRbpXTO2E1CNQLA+QoKuMdp880CAvvZGWT7SbvZOxkpFCz+LnUd4xJ1Q0Us6pKiDRpy8dV/TP8q+pI1+D08LtQYOa1bBeFANGjssBqJne33eMamZEte89L5ngID4hMcnkrfHgtNOVkOhL6x60RPMCz1qkENJyfpsL8txv23reVgoIco9qxW/wUUhFjTBxDTevfm6cf4M5qTTYMnLOA94xLZwXb4362d8P55niAsH9nPm17HuYC/Te0TX+dd+lh/TyxHvRmIiD+B9/jTvNlMe0zWxbuwgNGDJcl1ObElpoSIsERvQWAqqf0tQm9BrHalPrCu55aGYfYuUHGBFYuKLE5aaSrwprV2BHGpif7zcBn1cgZr73JWwmvIqnfocC8kMoHYNiuNMYK8OUuori2YoGtoXDQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR10MB7231.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(23010399003)(6133799003)(22082099003)(10067099003)(18002099003)(260925021311599003)(261009223027099003)(260925022911599003)(261009221227099003)(260925021911599003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?lazXtRUbtYz+F9XnG0aNSwuBwOSBTnYfFiPzYucsv7M2dtQPR67D6CHXK6NG?= =?us-ascii?Q?t0OUfFTXpm1F6ECT5qkOQLnH7vYzX/YN3UzeBJp6h64Z+SFgjGFdhDKF0ZRR?= =?us-ascii?Q?oMPiAZioMG+J99y5fQlQ/3mp6XbJdA3Mqo0fz3Kq8SQYdqidxcXkodjjBTzP?= =?us-ascii?Q?jUIDRaY7OJy4QPn8MT8hXEYzdKnR93sx7khqrKAQNJ6B+tXQ05y09UV6Vy9w?= =?us-ascii?Q?nFDXMrO/+M9U/HnjwxIivYn/MM/4LaF9ZchJjcSYNxuAjLWOy4Zutm+mN2ZA?= =?us-ascii?Q?8ZjSvSOa4HltcvbxsZdtwx3n+g2QqIht8BOO5HaOoUR2zcm6cZIOUzruyq/i?= =?us-ascii?Q?lOS/dmW1jPUV8GdQUd0spPsn3tJ3t7ASGw3Izt1LoxpHazS5WSy6b11/zInp?= =?us-ascii?Q?/amctmGykSZ77mjjqIF1M0f7W+bZ4ES+DzL3+u6SlDzPS4reZDoVhrL4VxJY?= =?us-ascii?Q?4k9tJ5A38+I7OV3axo9wHmCzpH3ClpNdLZuKZeBroFQ+ysZ51Ry4TCTVitnC?= =?us-ascii?Q?ebpBNjZquQJ7WSrFsVvZJfc1/bSNa32Ys775F0blpn/VWouyTnuTGFx+W2vX?= =?us-ascii?Q?MSVp8NNTCivdP0EuaDXL4fpN5SaMro5WVWx4mp+nNvQZUcU7/W6R6h/N3H3s?= =?us-ascii?Q?F58DDbQ6Lqkl3LNg+2cgiMTIOFE0AaKBaR/FnEsGkp+FEuCQUiquxlgBi/lV?= =?us-ascii?Q?ydlB4axf1m6cPE4d8jQ+PHt+zwq5jweUdHHr2DoFvHmQ9Kl+0wzUBaPPY+0/?= =?us-ascii?Q?bXkSEUhZmNyd5Mlk8Gv6y0VkmbYyQE/8+RL6+/rTao1Tl0jIN4Agz4iWCVDe?= =?us-ascii?Q?5KRMAtHN9v/ckLfyywGR0NSwHlxmvImf8a+taAq7OubfgBPhQTNtVRaKSyfQ?= =?us-ascii?Q?7mQ1d4TftxCEPyUJIjVglcVRuq4mOoLuFavYYWRF5K4l1Y+SPLtVME/kuna5?= =?us-ascii?Q?1Qe0j+OKEpyIvX3mkvU2h6uxu88kBeuLbMUFWGafLpCtJNQUsnD7XNdYKXJf?= =?us-ascii?Q?3QggqccTIA/SIbJIcVniS/vx93DK8NFBwd1GwhPTHPBbaVZyZTkWGV4Ld8dK?= =?us-ascii?Q?oagje4LKAZvfht67i1MWQoRS2cU7JYkRSOkk6SQpNobw+U7RFfbEsuJcJyG6?= =?us-ascii?Q?L1OYN05exFXoRu4KX/lsuXp9scKf1vDxU6yenjtr0b+6oD1lQOL34m45JZNW?= =?us-ascii?Q?rsBmP/hLahkmjIpV3KTb0/92e0u3c3LKAmnU84Dv07dLF5N9g6x4aOhoDI4g?= =?us-ascii?Q?ll1TPA608dxg8FwgSLwkIT8m6t9J53CqlGKkZjv97uSMdJFUypYfppKlxu4m?= =?us-ascii?Q?WnI2zcy5twSQS86oT3oaINLwkplSc3Nub++2ZOgV+FQmCj9dF3UBG0TbBm2V?= =?us-ascii?Q?o0OiHmk025NOzGrqBqTxFiXU3Z80d/xtSpTeqsQ0+c3/hP0UnyenMiKfnwxd?= =?us-ascii?Q?xgO2lb5lawcsXYtmz3t6hPuK+pYW1blsHlSLiCl0fMzpAusiscWwcwV6U4Rh?= =?us-ascii?Q?I+oJzatD6/qqu4yerxoEOMfaGSplteuDwQcgRkKlGh630WuZeWUs7dLuin+E?= =?us-ascii?Q?qNdT0VV9r5vTmZvKmHpZIBJQf+VPolyOuW2LlKDLMxPS/tjlWK0V4zxyHDn7?= =?us-ascii?Q?stkSStxm1mH4PjPLUTxGt7jNidCVH8ZduzQwg2lAuKGyOLUR9wcmfQgKZEkG?= =?us-ascii?Q?Lf60+bvd5fzhi3pEQcxUcwxFYQPDAHa/9UtcJFCM3uG27WaUgDPSVUgwdkOs?= =?us-ascii?Q?RsLtK9TmSA=3D=3D?= X-OriginatorOrg: RyomHerold.dk X-MS-Exchange-CrossTenant-Network-Message-Id: 7f8ad2e4-a5f1-4f74-58dd-08df2d15cc5d X-MS-Exchange-CrossTenant-AuthSource: AS8PR10MB7231.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Oct 2026 12:46:15.6859 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 26a2499e-4646-4888-a695-c64736a56807 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6wQuTCCVIGdCNCZ+esBvOH7LlYSi453fkVhV7WVHQE1+3giWYy3v/4nKkzX8eaZmSKtMBVr/YOdRKGPzZaSYxQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR10MB5706 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.004 Adjusted score from AWL reputation of From: address DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain DMARC_PASS -0.1 DMARC pass policy GB_MSAUTHSOURCE_EUROPE 0.01 Mail authenticated via Microsoft Europe (EURP) datacenter RCVD_IN_DNSWL_NONE -0.0001 Sender listed at https://www.dnswl.org/, no trust SPF_HELO_PASS -0.001 SPF: HELO matches SPF record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: AMY4F7SUY4CKEZTD5XH4AOAEAQNOWKDH X-Message-ID-Hash: AMY4F7SUY4CKEZTD5XH4AOAEAQNOWKDH X-MailFrom: Michael@RyomHerold.dk X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Michael Ryom X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: When a single resource dominates the cluster load and the node base loads fluctuate around each other, the automatic load balancer moves the resource back and forth between the nodes (see bug #8059). Add a test case, where the base loads of two nodes are swapped right after the only movable resource vm:101 was migrated, which shows that vm:101 is migrated back immediately. The test case already configures the ha-auto-rebalance-cooldown option, which is not used yet, and its expected log records the current behavior. It is adapted by the following patch. Signed-off-by: Michael Ryom --- .../test-crs-dynamic-auto-rebalance7/README | 17 +++++++ .../test-crs-dynamic-auto-rebalance7/cmdlist | 7 +++ .../datacenter.cfg | 7 +++ .../dynamic_service_stats | 5 ++ .../hardware_status | 4 ++ .../log.expect | 50 +++++++++++++++++++ .../manager_status | 1 + .../service_config | 5 ++ .../static_service_stats | 5 ++ 9 files changed, 101 insertions(+) create mode 100644 src/test/test-crs-dynamic-auto-rebalance7/README create mode 100644 src/test/test-crs-dynamic-auto-rebalance7/cmdlist create mode 100644 src/test/test-crs-dynamic-auto-rebalance7/datacenter.cfg create mode 100644 src/test/test-crs-dynamic-auto-rebalance7/dynamic_service_stats create mode 100644 src/test/test-crs-dynamic-auto-rebalance7/hardware_status create mode 100644 src/test/test-crs-dynamic-auto-rebalance7/log.expect create mode 100644 src/test/test-crs-dynamic-auto-rebalance7/manager_status create mode 100644 src/test/test-crs-dynamic-auto-rebalance7/service_config create mode 100644 src/test/test-crs-dynamic-auto-rebalance7/static_service_stats diff --git a/src/test/test-crs-dynamic-auto-rebalance7/README b/src/test/test-crs-dynamic-auto-rebalance7/README new file mode 100644 index 0000000..db7bb00 --- /dev/null +++ b/src/test/test-crs-dynamic-auto-rebalance7/README @@ -0,0 +1,17 @@ +Test that a HA resource which was successfully moved by the auto rebalancer +is not moved again during the configured cooldown, even if a qualifying +rebalance motion exists. + +The cluster has two nodes, where each node has a HA resource excluded from +the auto rebalancing (vm:100 on node1 and vm:200 on node2), which act as the +node base loads, and one movable HA resource vm:101 on node1. Initially, +node1 is much more loaded than node2, so vm:101 is migrated to node2. + +Afterwards, the base loads are swapped, i.e. node2 becomes much more loaded +than node1. Without a cooldown, the auto rebalancer immediately migrates +vm:101 back to node1, as the expected relative imbalance improvement +qualifies. With ha-auto-rebalance-cooldown set to 600 seconds, vm:101 must +not be moved again until 10 minutes after its first migration has finished. + +This mimics a single dominant HA resource oscillating between two nodes, +whose base loads fluctuate around each other. diff --git a/src/test/test-crs-dynamic-auto-rebalance7/cmdlist b/src/test/test-crs-dynamic-auto-rebalance7/cmdlist new file mode 100644 index 0000000..1de33e4 --- /dev/null +++ b/src/test/test-crs-dynamic-auto-rebalance7/cmdlist @@ -0,0 +1,7 @@ +[ + [ "power node1 on", "power node2 on" ], + [ + "service vm:100 set-dynamic-stats cpu 0.96 mem 0", + "service vm:200 set-dynamic-stats cpu 14.4 mem 0" + ] +] diff --git a/src/test/test-crs-dynamic-auto-rebalance7/datacenter.cfg b/src/test/test-crs-dynamic-auto-rebalance7/datacenter.cfg new file mode 100644 index 0000000..f34bb81 --- /dev/null +++ b/src/test/test-crs-dynamic-auto-rebalance7/datacenter.cfg @@ -0,0 +1,7 @@ +{ + "crs": { + "ha": "dynamic", + "ha-auto-rebalance": 1, + "ha-auto-rebalance-cooldown": 600 + } +} diff --git a/src/test/test-crs-dynamic-auto-rebalance7/dynamic_service_stats b/src/test/test-crs-dynamic-auto-rebalance7/dynamic_service_stats new file mode 100644 index 0000000..3d2d743 --- /dev/null +++ b/src/test/test-crs-dynamic-auto-rebalance7/dynamic_service_stats @@ -0,0 +1,5 @@ +{ + "vm:100": { "cpu": 16.8, "mem": 0 }, + "vm:101": { "cpu": 4.8, "mem": 0 }, + "vm:200": { "cpu": 0.96, "mem": 0 } +} diff --git a/src/test/test-crs-dynamic-auto-rebalance7/hardware_status b/src/test/test-crs-dynamic-auto-rebalance7/hardware_status new file mode 100644 index 0000000..864adb3 --- /dev/null +++ b/src/test/test-crs-dynamic-auto-rebalance7/hardware_status @@ -0,0 +1,4 @@ +{ + "node1": { "power": "off", "network": "off", "maxcpu": 24, "maxmem": 34359738368 }, + "node2": { "power": "off", "network": "off", "maxcpu": 24, "maxmem": 34359738368 } +} diff --git a/src/test/test-crs-dynamic-auto-rebalance7/log.expect b/src/test/test-crs-dynamic-auto-rebalance7/log.expect new file mode 100644 index 0000000..c87f487 --- /dev/null +++ b/src/test/test-crs-dynamic-auto-rebalance7/log.expect @@ -0,0 +1,50 @@ +info 0 hardware: starting simulation +info 20 cmdlist: execute power node1 on +info 20 node1/crm: status change startup => wait_for_quorum +info 20 node1/lrm: status change startup => wait_for_agent_lock +info 20 cmdlist: execute power node2 on +info 20 node2/crm: status change startup => wait_for_quorum +info 20 node2/lrm: status change startup => wait_for_agent_lock +info 20 node1/crm: got lock 'ha_manager_lock' +info 20 node1/crm: status change wait_for_quorum => master +info 20 node1/crm: using scheduler mode 'dynamic' +info 20 node1/crm: node 'node1': state changed from 'unknown' => 'online' +info 20 node1/crm: node 'node2': state changed from 'unknown' => 'online' +info 20 node1/crm: adding new service 'vm:100' on node 'node1' +info 20 node1/crm: adding new service 'vm:101' on node 'node1' +info 20 node1/crm: adding new service 'vm:200' on node 'node2' +info 20 node1/crm: service 'vm:100': state changed from 'request_start' to 'started' (node = node1) +info 20 node1/crm: service 'vm:101': state changed from 'request_start' to 'started' (node = node1) +info 20 node1/crm: service 'vm:200': state changed from 'request_start' to 'started' (node = node2) +info 21 node1/lrm: got lock 'ha_agent_node1_lock' +info 21 node1/lrm: status change wait_for_agent_lock => active +info 21 node1/lrm: starting service vm:100 +info 21 node1/lrm: service status vm:100 started +info 21 node1/lrm: starting service vm:101 +info 21 node1/lrm: service status vm:101 started +info 22 node2/crm: status change wait_for_quorum => slave +info 23 node2/lrm: got lock 'ha_agent_node2_lock' +info 23 node2/lrm: status change wait_for_agent_lock => active +info 23 node2/lrm: starting service vm:200 +info 23 node2/lrm: service status vm:200 started +info 80 node1/crm: auto rebalance - migrate vm:101 to node2 (expected change for imbalance from 91.5% to 48.9%) +info 80 node1/crm: got crm command: migrate vm:101 node2 +info 80 node1/crm: migrate service 'vm:101' to node 'node2' +info 80 node1/crm: service 'vm:101': state changed from 'started' to 'migrate' (node = node1, target = node2) +info 81 node1/lrm: service vm:101 - start migrate to node 'node2' +info 81 node1/lrm: service vm:101 - end migrate to node 'node2' +info 100 node1/crm: service 'vm:101': state changed from 'migrate' to 'started' (node = node2) +info 103 node2/lrm: starting service vm:101 +info 103 node2/lrm: service status vm:101 started +info 120 cmdlist: execute service vm:100 set-dynamic-stats cpu 0.96 mem 0 +info 120 cmdlist: execute service vm:200 set-dynamic-stats cpu 14.4 mem 0 +info 160 node1/crm: auto rebalance - migrate vm:101 to node1 (expected change for imbalance from 90.5% to 42.9%) +info 160 node1/crm: got crm command: migrate vm:101 node1 +info 160 node1/crm: migrate service 'vm:101' to node 'node1' +info 160 node1/crm: service 'vm:101': state changed from 'started' to 'migrate' (node = node2, target = node1) +info 163 node2/lrm: service vm:101 - start migrate to node 'node1' +info 163 node2/lrm: service vm:101 - end migrate to node 'node1' +info 180 node1/crm: service 'vm:101': state changed from 'migrate' to 'started' (node = node1) +info 181 node1/lrm: starting service vm:101 +info 181 node1/lrm: service status vm:101 started +info 720 hardware: exit simulation - done diff --git a/src/test/test-crs-dynamic-auto-rebalance7/manager_status b/src/test/test-crs-dynamic-auto-rebalance7/manager_status new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/src/test/test-crs-dynamic-auto-rebalance7/manager_status @@ -0,0 +1 @@ +{} diff --git a/src/test/test-crs-dynamic-auto-rebalance7/service_config b/src/test/test-crs-dynamic-auto-rebalance7/service_config new file mode 100644 index 0000000..83bf42e --- /dev/null +++ b/src/test/test-crs-dynamic-auto-rebalance7/service_config @@ -0,0 +1,5 @@ +{ + "vm:100": { "node": "node1", "state": "started", "auto-rebalance": 0 }, + "vm:101": { "node": "node1", "state": "started" }, + "vm:200": { "node": "node2", "state": "started", "auto-rebalance": 0 } +} diff --git a/src/test/test-crs-dynamic-auto-rebalance7/static_service_stats b/src/test/test-crs-dynamic-auto-rebalance7/static_service_stats new file mode 100644 index 0000000..f7d1a27 --- /dev/null +++ b/src/test/test-crs-dynamic-auto-rebalance7/static_service_stats @@ -0,0 +1,5 @@ +{ + "vm:100": { "maxcpu": 20.0, "maxmem": 8589934592 }, + "vm:101": { "maxcpu": 6.0, "maxmem": 8589934592 }, + "vm:200": { "maxcpu": 16.0, "maxmem": 8589934592 } +} -- 2.47.3