Skip to content

Commit 10bb483

Browse files
authored
Merge master into pool licensing feature branch (#6276)
The following two commits are new ones: 677996e: [Bump up last_known_schema_hash](677996e) 962abf1: [Update datamodel_lifecycle for pool.license_server](962abf1)
2 parents 735e5a4 + 962abf1 commit 10bb483

File tree

358 files changed

+6363
-1787
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

358 files changed

+6363
-1787
lines changed

.github/workflows/generate-and-build-sdks.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ jobs:
168168
run: |
169169
dotnet test source/XenServerTest `
170170
--disable-build-servers `
171+
-p:DefineConstants=BUILD_FOR_TEST `
171172
--verbosity=normal
172173
173174
- name: Build C# SDK

.github/workflows/main.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
name: Build and test
22

33
on:
4+
# When only Hugo docs change, this workflow is not required:
45
push:
6+
paths-ignore:
7+
- 'doc/**'
8+
- '.github/workflows/hugo.yml'
59
pull_request:
610
schedule:
711
# run daily, this refreshes the cache

.github/workflows/other.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
name: Build and test (other)
22

33
on:
4+
# When only Hugo docs change, this workflow is not required:
45
push:
6+
paths-ignore:
7+
- 'doc/**'
8+
- '.github/workflows/hugo.yml'
59
pull_request:
610
schedule:
711
# run daily, this refreshes the cache

doc/README.md

Lines changed: 98 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,104 @@
1-
Quick start guide:
1+
# Quick start guide
2+
3+
- Visit <https://xapi-project.github.io/new-docs/> to view the current documentation.
4+
5+
## Required software
6+
7+
The docs use Hugo and the [Hugo Relearn theme](https://mcshelby.github.io/hugo-theme-relearn),
8+
an enhanced fork of the popular Hugo Learn theme.
9+
10+
### Supported versions of Hugo and the Hugo Relearn theme
11+
12+
Hugo Relearn 7.3.2 is currently used (defined by a git tag in `doc/go.mod`).
13+
14+
- The minimum Hugo version required by the Relearn theme is 0.126.0.
15+
- The current Ubuntu `snap` (which provides 0.142.0) also works.
16+
17+
## Installation
18+
19+
- Install Hugo 0.126 or newer (required by the Hugo Relearn theme)
20+
follow the guidance on <https://gohugo.io/installing>.
21+
You'll need to install Go as well: see <https://go.dev/>
22+
- On Ubuntu, use the `snap` package:
23+
- `sudo snap install hugo` installs the current version
24+
`apt-get install hugo` would install a version that is too old,
25+
(this applies up to Ubuntu 24.04)
26+
27+
- To install Hugo from source, you need a recent `golang-1.2x` compiler:
28+
- On Ubuntu 22.04, this can be done with:
29+
30+
```bash
31+
sudo apt install golang-1.23-go
32+
# Add it to your path, assuming your .local/bin/ is early in your PATH:
33+
ln -s /usr/lib/go-1.23/bin/go ~/.local/bin/go
34+
go version
35+
go install github.com/gohugoio/[email protected]
36+
```
37+
38+
## Development
239

3-
- Visit https://xapi-project.github.io/new-docs/ to view the current documentation.
4-
- Install Hugo; follow the guidance on https://gohugo.io/getting-started/installing.
5-
You'll need Go as well: see https://go.dev/
6-
- On Ubuntu 22.04 and older, use `sudo snap install hugo` to get the needed newer version of `hugo`.
740
- Run a local server: `hugo server`
8-
- Open a browser at http://127.0.0.1:1313/new-docs/
41+
- Open a browser at <http://127.0.0.1:1313/new-docs/>
942
- Add content to `doc/content/`:
1043
- Documents are written in Markdown.
11-
- Please wrap lines in paragraphs to make review and diffs easier to read.
12-
- The menu hierarchy comes mostly from the directory structure in `content/`.
44+
- Please wrap lines in paragraphs to make reviews more manageable.
45+
- The menu hierarchy comes mainly from the directory structure in `content/`.
1346
- A file called `_index.md` is needed in a directory to define a new level in the menu.
14-
- To set the page title which is also used for the main menu,
47+
- To set the page title,
1548
[use the front matter](https://gohugo.io/content-management/front-matter/).
16-
- For a page that has images or other stuff included, it is best to create a new directory. Put the contents in a `index.md` file (no `_`) and the related files next to it. See https://gohugo.io/content-management/organization/ for more information.
17-
- Look at https://mcshelby.github.io/hugo-theme-relearn/ for more information about what the Relearn theme offers, including some handy "shortcodes".
49+
- For a page that has images or other stuff included, it is best to create a new directory:
50+
Put the contents in an `index.md` file (no `_`) and the related files next to it.
51+
See <https://gohugo.io/content-management/organization/> for more information.
52+
53+
See <https://mcshelby.github.io/hugo-theme-relearn/> for more information about
54+
the features of the Relearn theme, including handy "shortcodes".
55+
56+
Note: When switching versions, before re-generating the documentation using
57+
`hugo server`, delete the previously generated static site using `rm -r docs/public`.
58+
59+
### Notes for supporting current versions of Hugo and the Relearn theme
60+
61+
Backported fixes to support newer Hugo versions:
62+
63+
- `layouts/partials/header.html`, it fixes:
64+
```js
65+
ERROR deprecated: .Sites.First was deprecated in Hugo v0.127.0 and will be removed in Hugo 0.143.0. Use .Sites.Default instead.
66+
```
67+
- `layouts/partials/menu.html`, it fixes:
68+
```js
69+
ERROR deprecated: .Site.IsMultiLingual was deprecated in Hugo v0.124.0 and will be removed in Hugo 0.143.0. Use hugo.IsMultilingual instead.
70+
```
71+
72+
The fixes for those issues were backported from the Hugo Relearn v7.x.x theme.
73+
When updating to Hugo Relearn 7.x.x, please remove them (if possible).
74+
75+
#### Tips when upgradubg to newer Hugo Relearn versions
76+
77+
Check the release notes of the Hugo Relearn theme for breaking changes:
78+
https://mcshelby.github.io/hugo-theme-relearn/introduction/releasenotes
79+
80+
These pages might need review when making changes as their content is
81+
generated by layouts/partials/content.html:
82+
83+
- XenAPI Reference: <https://xapi-project.github.io/new-docs/xen-api/classes>
84+
- XenAPI Releases: <https://xapi-project.github.io/new-docs/xen-api/releases>
85+
86+
For a summary of the partials supported by the Hugo Relearn theme, see:
87+
https://mcshelby.github.io/hugo-theme-relearn/configuration/customization/partials
88+
89+
Hint: For upgrading the Hugo Relearn theme, you can use:
90+
91+
```bash
92+
cd doc; hugo mod get -u github.com/McShelby/[email protected]
93+
```
94+
95+
#### Summary
96+
97+
Hugo >= 0.126 and the Hugo Relearn >= 7.3.2 are supported to render the docs.
98+
99+
#### References
100+
101+
- Changes with Relearn 6.x:
102+
<https://mcshelby.github.io/hugo-theme-relearn/introduction/releasenotes/6/#6-0-0>
103+
- Breaking changes with Relearn 7.x:
104+
<https://mcshelby.github.io/hugo-theme-relearn/introduction/releasenotes/7/#7-0-0>

doc/content/design/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
+++
22
title = "Design Documents"
3-
menuTitle = "Designs"
3+
linkTitle = "Designs"
44
+++
55

66
{{< design_docs_list >}}

doc/content/design/cpu-levelling-v2.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ The old XS 5.6-style Heterogeneous Pool feature that is based around hardware-le
2929
History
3030
=======
3131

32-
- Original XS 5.6 design: [heterogeneous-pools](../heterogeneous-pools)
32+
- Original XS 5.6 design: [heterogeneous-pools](heterogeneous-pools)
3333
- Changes made in XS 5.6 FP1 for the DR feature (added CPUID checks upon migration)
3434
- XS 6.1: migration checks extended for cross-pool scenario
3535

doc/content/design/emulated-pci-spec.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ status: proposed
1111
At present (early March 2015) the datamodel defines a VM as having a "platform" string-string map, in which two keys are interpreted as specifying a PCI device which should be emulated for the VM. Those keys are "device_id" and "revision" (with int values represented as decimal strings).
1212

1313
Limitations:
14-
* Hardcoded defaults are used for the the vendor ID and all other parameters except device_id and revision.
14+
* Hardcoded defaults are used for the vendor ID and all other parameters except device_id and revision.
1515
* Only one emulated PCI device can be specified.
1616

1717
When instructing qemu to emulate PCI devices, qemu accepts twelve parameters for each device.

doc/content/design/integrated-gpu-passthrough/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Introduction
1111
------------
1212

1313
Passthrough of discrete GPUs has been
14-
[available since XenServer 6.0]({{site.baseurl}}/xapi/design/gpu-passthrough.html).
14+
[available since XenServer 6.0](../gpu-passthrough.md).
1515
With some extensions, we will also be able to support passthrough of integrated
1616
GPUs.
1717

doc/content/design/local-database.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ We propose to:
2525
this should reduce the number of RPCs across the network.
2626

2727
In a later phase we can move to a completely
28-
[distributed database](../distributed-database).
28+
[distributed database](distributed-database/index).
2929

3030
Replicating the database
3131
------------------------

doc/content/design/multiple-cluster-managers.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ revision_history:
1414
Introduction
1515
------------
1616

17-
Xapi currently uses a cluster manager called [xhad](../../features/HA/HA.html). Sometimes other software comes with its own built-in way of managing clusters, which would clash with xhad (example: xhad could choose to fence node 'a' while the other system could fence node 'b' resulting in a total failure). To integrate xapi with this other software we have 2 choices:
17+
Xapi currently uses a cluster manager called [xhad](../toolstack/features/HA/index). Sometimes other software comes with its own built-in way of managing clusters, which would clash with xhad (example: xhad could choose to fence node 'a' while the other system could fence node 'b' resulting in a total failure). To integrate xapi with this other software we have 2 choices:
1818

1919
1. modify the other software to take membership information from xapi; or
2020
2. modify xapi to take membership information from this other software.
@@ -70,4 +70,4 @@ The `xapi.conf` file will have a new field: `cluster-stack-root` which will have
7070

7171
In `Pool.enable_ha` with `cluster_stack="foo"` we will verify that the subdirectory `<cluster-stack-root>/foo` exists. If it does not exist, then the call will fail with `UNKNOWN_CLUSTER_STACK`.
7272

73-
Alternative cluster stacks will need to conform to the exact same interface as [xhad](../../features/HA/HA.html).
73+
Alternative cluster stacks will need to conform to the exact same interface as [xhad](../toolstack/features/HA).

doc/content/design/ocfs2/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@ Summary of the impact on the admin
461461

462462
OCFS2 is fundamentally a different type of storage to all existing storage
463463
types supported by xapi. OCFS2 relies upon O2CB, which provides
464-
[Host-level High Availability](../../../features/HA/HA.html). All HA implementations
464+
[Host-level High Availability](../../toolstack/features/HA/index). All HA implementations
465465
(including O2CB and `xhad`) impose restrictions on the server admin to
466466
prevent unnecessary host "fencing" (i.e. crashing). Once we have OCFS2 as
467467
a feature, we will have to live with these restrictions which previously only

doc/content/design/patches-in-vdis.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ Changes beneath the XenAPI
7171
Summary of the impact on the admin
7272
==================================
7373

74-
- There will nolonger be a size limit on hotfixes imposed by the mechanism
74+
- There will no longer be a size limit on hotfixes imposed by the mechanism
7575
itself.
7676
- There must be enough free space in an SR connected to the host to be able
7777
to apply a patch on that host.

doc/content/design/schedule-snapshot.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ Introduction
2828
* Multiple VMs can be a part of VMSS but a VM cannot be a part of multiple VMSS.
2929
* A VMSS takes VMs snapshot with type [`snapshot`, `checkpoint`, `snapshot_with_quiesce`].
3030
* VMSS takes snapshot of VMs on configured intervals:
31-
* `hourly` -> On everyday, Each hour, Mins [0;15;30;45]
32-
* `daily` -> On everyday, Hour [0 to 23], Mins [0;15;30;45]
31+
* `hourly` -> On every day, Each hour, Mins [0;15;30;45]
32+
* `daily` -> On every day, Hour [0 to 23], Mins [0;15;30;45]
3333
* `weekly` -> Days [`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`,`Sunday`], Hour[0 to 23], Mins [0;15;30;45]
3434
* VMSS will have a limit on retaining number of VM snapshots in range [1 to 10].
3535

doc/content/design/user-certificates.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ and not impersonating the actual host.
1616
Historically there has not been a supported mechanism to do this, and as a
1717
result users have had to rely on guides written by third parties that show how
1818
to manually replace the xapi-ssl.pem file on a host. This process is
19-
error-prone, and if a mistake is made, can result in an unuseable system.
19+
error-prone, and if a mistake is made, can result in an unusable system.
2020
This design provides a fully supported mechanism to allow replacing the
2121
certificates.
2222

@@ -200,7 +200,7 @@ should be removed to avoid a build-up of messages.
200200

201201
Additionally, the task may also produce messages for expired server
202202
certificates which must use the name `HOST_SERVER_CERTIFICATE_EXPIRED`.
203-
These kind of message must contain the message "The TLS server certificate has
203+
This kind of message must contain the message "The TLS server certificate has
204204
expired." as well as the expiry date, like the expiring messages.
205205
They also may replace the existing expiring messages in a host.
206206

@@ -220,7 +220,7 @@ A new class, Certificate, will be added with the following schema:
220220
| ---------- | --------- | ----- |
221221
| uuid | |
222222
| type | CA | Certificate trusted by all hosts
223-
| | Host | Certificate that the host present sto normal clients
223+
| | Host | Certificate that the host presents to normal clients
224224
| name | String | Name, only present for trusted certificates
225225
| host | Ref _host | Host where the certificate is installed
226226
| not_before | DateTime | Date after which the certificate is valid
@@ -246,7 +246,7 @@ and it will accept the parameter `host-uuid=<uuid>`.
246246
## Recovery mechanism
247247

248248
In the case a certificate is let to expire TLS clients connecting to the host
249-
will refuse establish the connection.
249+
will refuse to establish the connection.
250250
This means that the host is going to be unable to be managed using the xapi
251251
API (Xencenter, or a CVAD control plane)
252252

doc/content/squeezed/architecture/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ includes:
1818
together describe a range, within which the domain's actual used memory
1919
should remain.
2020
- Per-domain calibration data which allows us to compute the necessary balloon
21-
target value to achive a particular memory usage value.
21+
target value to achieve a particular memory usage value.
2222

2323
Squeezed is a single-threaded program which receives commands from xenopsd over
2424
a Unix domain socket. When Xenopsd wishes to start a new VM, squeezed will be

doc/content/squeezed/squeezer.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ hidden: true
44
---
55

66
{{% notice warning %}}
7-
This was converted to markdown from squeezer.tex. It is not clear how much
7+
This was converted to Markdown from squeezer.tex. It is not clear how much
88
of this document is still relevant and/or already present in the other docs.
99
{{% /notice %}}
1010

doc/content/toolstack/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: The XAPI Toolstack
3-
menuTitle: The Toolstack
3+
linkTitle: The Toolstack
44
weight: 10
55
---
66

doc/content/toolstack/features/DR/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title = "Disaster Recovery"
33
+++
44

5-
The [HA](../HA/HA.html) feature will restart VMs after hosts have failed, but what
5+
The [HA](HA) feature will restart VMs after hosts have failed, but what
66
happens if a whole site (e.g. datacenter) is lost? A disaster recovery
77
configuration is shown in the following diagram:
88

0 commit comments

Comments
 (0)