• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

xapi-project / xen-api / 36872445381
79%
master: 79%

Build:
Build:
LAST BUILD BRANCH: gh-readonly-queue/master/pr-7316-4f56ae693f2f603dcc9a4a8494121cdf81a1dab0
DEFAULT BRANCH: master
Ran 01 Oct 2026 01:57PM UTC
Jobs 1
Files 36
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

01 Oct 2026 01:56PM UTC coverage: 78.996%. Remained the same
36872445381

push

github

web-flow
CA-431418: Allow Invoke cmdlets to call the C# overload the caller asked for (#7307)

Invoke cmdlets always called the newest C# overload of a message,
passing every parameter the current datamodel knows about. A message
that gained parameters in a later release therefore became unusable
against hosts that only implement the older signature:

```
Invoke-XenHost -ref (Get-XenHost).opaque_ref -XenAction Disable
Invoke-XenHost : You tried to call the method host.disable with the incorrect
number of parameters 2.  The method expect 1 parameter(s).
```

`host.disable` gained `auto_enable` in 25.31.0, so the cmdlet sent two
parameters to 8.2 and 8.4 hosts that accept one.

### Approach

Group a message's parameters by the release that published them and emit
one branch per resulting overload, longest first. A branch is taken when
the caller supplied any parameter *that overload added*; the chain ends
in an unconditional `else` calling the overload published in the
earliest release. Unless the caller asks for something newer, the oldest
signature is used and old hosts keep working.

```diff
-                    taskRef = XenAPI.Host.async_disable(session, host, contxt.AutoEnable);
+                    if (contxt.IsAutoEnableSpecified)
+                        taskRef = XenAPI.Host.async_disable(session, host, contxt.AutoEnable);
+                    else
+                        taskRef = XenAPI.Host.async_disable(session, host);
```

Whether a parameter was supplied cannot be inferred from its value, so
the dynamic-parameter properties that select an overload now record it
in the setter. Only those parameters are affected: the ones present in
the earliest release keep their plain auto-properties, and their cmdlets
are generated exactly as before.

### Evidence

Two PowerShell modules were built from identical C# SDK sources,
differing only in the generator, and each ran the command from the
ticket against a XenAPI simulator that records every served call. T... (continued)

3667 of 4642 relevant lines covered (79.0%)

0.79 hits per line

Jobs
ID Job ID Ran Files Coverage
1 python3.11 - 36872445381.1 01 Oct 2026 01:57PM UTC 36
79.0
GitHub Action Run
Source Files on build 36872445381
  • Tree
  • List 36
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #36872445381
  • 14ea7f3a on github
  • Prev Build on gh-readonly-queue/master/pr-7306-c0a9bfe651406feef88bad152a020c9ba91acbcd (#36842790980)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc