1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
console
-------
The slapconsole tool allows to interact with a SlapOS Master throught the SLAP
library.
For more information about SlapOS or slapconsole usages, please go to
http://community.slapos.org.
The slapconsole tool is only a bare Python console with several global variables
defined and initialized.
Initialization and configuration file
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Slapconsole allows to automatically connect to a Master using URL and SSL
certificate from given slapos.cfg.
Certificate has to be *USER* certificate, manually obtained from SlapOS master
web interface.
Slapconsole tools reads the given slapos.cfg configuration file and use the
following informations :
* Master URL is read from [slapos] in the "master_url" parameter.
* SSL Certificate is read from [slapconsole] in the "cert_file" parameter.
* SSL Key is read from [slapconsole] in the "key_file" parameter.
See slapos.cfg.example for examples.
Global functions
~~~~~~~~~~~~~~~~
* request() is a shorthand for slap.registerOpenOrder().request() allowing
to request instances.
* supply() is a shorthand for slap.registerSupply().supply() allowing to
request software installation.
For more information about those methods, please read the SLAP library
documentation.
Global aliases
~~~~~~~~~~~~~~
"software_list" is a list containing all the Software Release URLs defined in
client slapos.cfg configuration file.
Also, each Software Release defined in this configuration file is translated
into a global variable to ease the request of those Sofware Releases.
This allows to request instances in a few words, i.e::
request("http://www.url.com/path/to/kvm/software.cfg", "mykvm")
can be simplified into ::
request(kvm, "mykvm")
If the slapos.cfg file contains ::
alias =
kvm http://www.url.com/path/to/kvm/software.cfg
Global objects
~~~~~~~~~~~~~~
"slap" is an instance of the SLAP library. It is only used for advanced usages.
"slap" instance is obtained by doing ::
slap = slapos.slap.slap()
slap.initializeConnection(config.master_url,
key_file=config.key_file, cert_file=config.cert_file)
Examples
~~~~~~~~
::
>>> # Request instance
>>> request(kvm, "myuniquekvm")
>>> # Request instance on specific computer
>>> request(kvm, "myotheruniquekvm",
filter_kw={ "computer_guid": "COMP-12345" })
>>> # Request instance, specifying parameters (here nbd_ip and nbd_port)
>>> request(kvm, "mythirduniquekvm",
partition_parameter_kw={"nbd_ip":"2a01:e35:2e27:460:e2cb:4eff:fed9:48dc",
"nbd_port":"1024"})
>>> # Request software installation on owned computer
>>> supply(kvm, "mycomputer")
>>> # Fetch existing instance status
>>> request(kvm, "myuniquekvm").getState()
>>> # Fetch instance information on already launched instance
>>> request(kvm, "myuniquekvm").getConnectionParameter("url")