• Stars
    star
    339
  • Rank 120,818 (Top 3 %)
  • Language
    OCaml
  • License
    Other
  • Created over 13 years ago
  • Updated 25 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The Xapi Project's XenAPI Server

Xapi Project's XenAPI Management Toolstack

Build

Xen API (or xapi) is a management stack that configures and controls Xen-enabled hosts and resource pools, and co-ordinates resources within the pool. Xapi exposes the Xen API interface for many languages and is a component of the XenServer project. Xen API is written mostly in OCaml 4.07.

Xapi is the main component produced by the Linux Foundation's Xapi Project.

Build and Install

To build xen-api from source, we recommend using opam with the xs-opam repository (farther explanation in its readme).

  1. Install opam and git with your package manager.

  2. Clone this repo, and work from it's root.

    git clone https://github.com/xapi-project/xen-api && cd xen-api
  3. Figure out what version of ocaml-base-compiler to use.

    • Go to this xs-opam file, and look for "OCAML_VERSION_FULL"

    • Run that line, i.e:

      export OCAML_VERSION_FULL="4.10.1"
  4. Setup opam, with your Enviornment (i.e switch).

    opam init
    opam switch create xen-api ocaml-base-compiler.$OCAML_VERSION_FULL
    # This basically "jumps you into" the enviornment you just created:
    eval $(opam env --switch=xen-api --set-switch)
  5. Get the Recommended Packages.

    # Add the xs-opam library as the main repo to check for versions at:
    opam repo add xs-opam https://github.com/xapi-project/xs-opam.git
    # Remove the default, because how it handles version conflicts is different:
    opam repo remove default
    # (NOT needed with opam>=2.1.0) Have opam now figure out what versions of each package to use:
    opam pin --yes add . --no-action
  6. Install all the Packages.

    PACKAGES="xapi-cli-protocol xapi-client xapi-consts xapi-datamodel xapi-types xapi xe xen-api-sdk xen-api-client xen-api-client-lwt xen-api-client-async xapi-rrdd xapi-rrdd-plugin xapi-rrd-transport xapi-rrd-transport-utils rrd-transport rrdd-plugin rrdd-plugins rrddump gzip http-lib pciutil safe-resources sexpr stunnel uuid xapi-compression xml-light2 zstd vhd-tool xs-toolstack"
    
    # NOT needed with opam>=2.1.0) Install all the dependencies (Including OS):
    opam --yes depext --yes -u $PACKAGES # The first '--yes' is to install depext itself
    # Install the Packages finally:
    opam install $PACKAGES --yes --deps-only --with-test -v
    # Update the current switch. (You're already on the correct one, just refresh it).
    eval $(opam env)
  7. Build xen-api.

    ./configure
    make
    make test

The binaries should now be in ./_build/install/default/bin!

Contributions

To contribute patches to xen-api, please fork the repository on Github, and then submit a pull request. If for some reason you can't use Github to submit a pull request, then you may send your patch for review to the [email protected] mailing list, with a link to a public git repository for review. We much prefer Github pull requests, however, and submitting a patch to the mailing list will take much more time for review.

Maintainers

Maintainers can be contacted via this mailing list: [email protected]

Licensing

This software is licensed under the GNU LGPLv2 license. Please see the LICENSE file for more information.

More Repositories

1

vagrant-xenserver

A Vagrant provider for XenServer
Ruby
117
star
2

blktap

blktap, vhd stuff
C
43
star
3

xen-api-libs

XCP xen-api libs
OCaml
42
star
4

xen-api-sdk

Xen API SDK generation code.
C#
33
star
5

sm

Xapi Project storage managers
Python
19
star
6

xenopsd

XCP toolstack domain manager
OCaml
15
star
7

nbd

Ocaml NBD library
OCaml
14
star
8

xcp-networkd

The XCP networking daemon
OCaml
14
star
9

xs-opam

Opam repository for OCaml libraries to build Citrix Hypervisor toolstack components
Shell
14
star
10

ocaml-crc

Library for finding the CRC of parts of various kinds of data in-place
OCaml
11
star
11

xenops

Xen operations
OCaml
11
star
12

ocaml-xen-lowlevel-libs

OCaml bindings for low-level xen management functions. All code developed here should be upstreamed to xen-unstable eventually.
OCaml
10
star
13

xcp-rrdd

The XCP RRDD daemon
OCaml
9
star
14

xcp-idl

Interface descriptions for services running on an XCP host.
Roff
9
star
15

xapi-storage

Experimental new storage interface for xapi
Python
9
star
16

ocaml-encodings

Character and string encoding (UTF) library for OCaml.
OCaml
9
star
17

squeezed

A xen host memory ballooning daemon
OCaml
8
star
18

ocaml-qmp

A Qemu Message Protocol (QMP) client in OCaml
OCaml
8
star
19

ocaml-netlink

OCaml bindings to libnl
OCaml
7
star
20

xen-api-client

Ocaml bindings to the Xen API
OCaml
7
star
21

xapi-storage-script

A xapi storage adapter that calls out to scripts, one script per operation
OCaml
6
star
22

xcp-rrd

OCaml RRD library for use with XCP
OCaml
6
star
23

forkexecd

Service for starting and managing other services
6
star
24

rrd-client-lib

C library for writing RRD plugins that report data to RRDD
C
6
star
25

netdev

Network device various bindings for ocaml
OCaml
6
star
26

message-switch

A simple store and forward message switch
OCaml
6
star
27

xapi-xe

The xapi command-line interface
OCaml
6
star
28

xenvm

A client/server LVM-like volume manager with thin-provisioning support
OCaml
6
star
29

vncproxy

A tool to connect securely to a remote VM's VNC console
OCaml
6
star
30

xcp-inventory

The XCP inventory library
OCaml
5
star
31

wsproxy

Ocaml websockets proxy for use with XCP
OCaml
5
star
32

ocaml-dlm

OCaml bindings for libdlm
OCaml
5
star
33

ocaml-rrdd-plugin

A plugin library for the XCP RRD daemon
OCaml
5
star
34

xapi-web-dashboard

A simple web dashboard
HTML
5
star
35

ocaml-opasswd

OCaml bindings for glibc's passwd and shadow password file interface
OCaml
5
star
36

ocamldoc-json

An OCamlDoc generator for JSON
OCaml
5
star
37

xapi-project.github.io

Home of the Xapi-project docs site
HTML
5
star
38

stdext

Xenserver's (deprecated) extensions to the ocaml standard library
OCaml
5
star
39

libvhd

Ocaml bindings to libvhd
OCaml
5
star
40

example-ocaml-daemon

A minimal OCaml daemon suitable to compile with xen-api.
OCaml
4
star
41

xenops-cli

CLI for controlling the xenopsd, the xapi domain manager
OCaml
4
star
42

varstored

C
4
star
43

tapctl

Tapdisk control library
OCaml
4
star
44

xapi-nbd

Expose XenServer disks conveniently over NBD
OCaml
4
star
45

xen-api-libs-transitional

Transitional repo while we remove these dependencies from xapi
OCaml
4
star
46

sm-cli

CLI for controlling xapi storage managers.
OCaml
4
star
47

xsconsole

Python
3
star
48

ocaml-rpc-legacy

Camlp4 parts of ocaml-rpc
OCaml
3
star
49

ocaml-xapi-plugin

Library to simplify writing xapi plugins in OCaml
OCaml
3
star
50

ocaml-xenstore-clients

Unix client tools for accessing xenstore
OCaml
3
star
51

blktap-dkms

Blktap kernel module with DKMS packaging
C
3
star
52

rrd-transport

Shared-memory protocols for transmitting RRD data
OCaml
3
star
53

dev-vm

A dev VM to check our installation steps are OK.
3
star
54

ocaml-xenstore-old

Experimental version of the ocaml xenstore service
OCaml
2
star
55

xapi-libvirt-storage

A xapi storage adapter that uses libvirt
OCaml
2
star
56

ocaml-xenstore-xen

Provides I/O for the ocaml xenstore service
OCaml
2
star
57

ezxenstore

An easy-to-use Xenstore library
OCaml
2
star
58

xenctrl

OCaml
2
star
59

rrddump

OCaml
2
star
60

stunnel

Modified stunnel used in XCP
C
2
star
61

cdrom

Ocaml CDROM bindings
OCaml
2
star
62

camldm

Ocaml bindings to libdevicemapper
OCaml
2
star
63

unixpwd

Library for updating Unix passwords
C
2
star
64

xapi-codegen

Code generator from xapi
OCaml
1
star
65

vxs

Virtual XenServer toolkit
OCaml
1
star
66

.github

1
star
67

opam-repo-dev

Source packages for releases of xapi-project components
Shell
1
star
68

xapi-storage-plugins

SMAPIv3 plugins
Python
1
star
69

xapi-project

The Xapi Project Central Repository
1
star
70

varstored-guard

OCaml
1
star
71

xen-test-vm

Minimal VM for testing Xen
OCaml
1
star
72

backtrace

Helper functions to preserve and transport exception backtraces
OCaml
1
star
73

xapi-test-utils

An OCaml package with modules for easy unit testing
OCaml
1
star
74

quicktest

Quick test program for the xapi-project components
OCaml
1
star