SlapOS core.
Project description
slapos.core
The core of SlapOS.
0.6 (2011-06-27)
slap: Fix bug: state shall be XML encapsulated.
0.5 (2011-06-24)
slapgrid: Use temporary extends-cache directory in order to make faster remote profile refresh. [Łukasz Nowak]
0.4 (2011-06-24)
general: Polish requirement versions. [Arnaud Fontaine]
general: Remove libnetworkcache. [Lucas Carvalho]
slap: Remove not needed method from interface. [Romain Courteaud]
slap: state parameter is accepted and transmitted to SlapOS master [Łukasz Nowak]
slapformat: Implement dry run. [Vincent Pelletier]
slapgrid: Allow to select any buildout binary used to bootstrap environment. [Łukasz Nowak]
0.3 (2011-06-14)
slap: Implement SLA by filter_kw in OpenOrder.request. [Łukasz Nowak]
slap: Timeout network operations. [Łukasz Nowak]
slapformat: Make slapsoft and slapuser* system users. [Kazuhiko Shiozaki]
slapgrid: Add more tolerance with supervisord. [Łukasz Nowak]
0.2 (2011-06-01)
Include required files in distribution [Łukasz Nowak]
0.1 (2011-05-27)
Merged slapos.slap, slapos.tool.console, slapos.tool.format, slapos.tool.grid, slapos.tool.libnetworkcache and slapos.tool.proxy into one package: slapos.core
console
format
slapformat is an application to prepare SlapOS ready node (machine).
It “formats” the machine by:
creating users and groups
creating bridge interface
creating needed tap interfaces
creating needed directories with proper ownership and permissions
In the end special report is generated and information are posted to configured SlapOS server.
This program shall be only run by root.
Requirements
Linux with IPv6, bridging and tap interface support.
Binaries:
brctl
groupadd
ip
tunctl
useradd
grid
slapgrid is a client of SLAPos. SLAPos provides support for deploying a SaaS system in a minute. Slapgrid allows you to easily deploy instances of softwares based on buildout profiles. For more informations about SLAP and SLAPos, please see the SLAP documentation.
Requirements
A working SLAP server with informations about your computer, in order to retrieve them.
As Vifib servers use IPv6 only, we strongly recommend an IPv6 enabled UNIX box.
For the same reasons, Python >= 2.6 with development headers is also strongly recommended (IPv6 support is not complete in previous releases).
For now, gcc and glibc development headers are required to build most software releases.
Concepts
Here are the fundamental concepts of slapgrid : A Software Release (SR) is just a software. A Computer Partition (CP) is an instance of a Software Release. Imagine you want to install with slapgrid some software and run it. You will have to install the software as a Software Release, and then instantiate it, i.e configuring it for your needs, as a Computer Partition.
How it works
When run, slapgrid will authenticate to the SLAP library with a computer_id and fetch the list of Software Releases to install or remove and Computer Partitions to start or stop. Then, it will process each Software Release, and each Computer Partition. It will also periodically send to SLAP the usage report of each Computer Partition.
Installation
With easy_install:
$ easy_install slapgrid
slapgrid needs several directories to be created and configured before being able to run : a software releases directory, and an instances directory with configured computer partition directory(ies). You should create for each Computer Partition directory created a specific user and associate it with its Computer Partition directory. Each Computer Partition directory should belongs to this specific user, with permissions of 0750.
Usage
slapgrid needs several informations in order to run. You can specify them by adding arguments to the slapgrid command line, or by putting then in a configuration file. Beware : you need a valid computer resource on server side.
Examples
simple example : Just run slapgrid:
$ slapgrid –instance-root /path/to/instance/root –software-root /path/to/software_root –master-url https://some.server/some.resource –computer-id my.computer.id
configuration file example:
[slapgrid] instance_root = /path/to/instance/root software_root = /path/to/software/root master_url = https://slapos.server/slap_service computer_id = my.computer.id
then run slapgrid:
$ slapgrid --configuration-file = path/to/configuration/file
proxy
slap
Simple Language for Accounting and Provisioning python library.
Developer note - python version
This library is used on client (slapgrid) and server side. Server is using python2.4 and client is using python2.6 Having this in mind, code of this library have to work on python2.4
How it works
The SLAP main server which is in charge of service coordination receives from participating servers the number of computer paritions which are available, the type of resource which a party is ready provide, and request from parties for resources which are needed.
Each participating server is identified by a unique ID and runs a slap-server daemon. This dameon collects from the main server the installation tasks and does the installation of resources, then notifies the main server of completion whenever a resource is configured, installed and available.
The data structure on the main server is the following:
A - Action: an action which can happen to provide a resource or account its usage CP - Computer Partition: provides a URL to Access a Cloud Resource RI - Resource Item: describes a resource CI - Contract Item: describes the contract to attach the DL to (This is unclear still) R - Resource: describes a type of cloud resource (ex. MySQL Table) is published on slapgrid.org DL - Delivery Line: Describes an action happening on a resource item on a computer partition D - Delivery: groups multiple Delivery Lines
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.