Revision 85e3803d
b/docs/clients.rst | ||
---|---|---|
2 | 2 |
=========== |
3 | 3 |
|
4 | 4 |
.. toctree:: |
5 |
|
|
6 | 5 |
connection |
7 | 6 |
|
8 | 7 |
compute |
... | ... | |
13 | 12 |
:show-inheritance: |
14 | 13 |
:undoc-members: |
15 | 14 |
|
16 |
Compute stuff. This is what we do here in GRNet. We are compute people, after all! |
|
17 |
|
|
18 | 15 |
|
19 | 16 |
cyclades |
20 | 17 |
-------- |
b/docs/commands.rst | ||
---|---|---|
1 | 1 |
Commands |
2 | 2 |
======== |
3 | 3 |
|
4 |
Command specifications for the kamaki.cli |
|
5 |
|
|
6 |
compute_cli |
|
7 |
----------- |
|
8 |
|
|
9 |
.. automodule:: kamaki.cli.commands.compute_cli |
|
10 |
:members: |
|
11 |
:show-inheritance: |
|
12 |
:undoc-members: |
|
4 |
Command specifications for kamaki.cli |
|
13 | 5 |
|
14 | 6 |
cyclades_cli |
15 | 7 |
------------ |
... | ... | |
20 | 12 |
:undoc-members: |
21 | 13 |
|
22 | 14 |
|
23 |
storage_cli |
|
24 |
----------- |
|
25 |
|
|
26 |
.. automodule:: kamaki.cli.commands.storage_cli |
|
27 |
:members: |
|
28 |
:show-inheritance: |
|
29 |
:undoc-members: |
|
30 |
|
|
31 |
|
|
32 | 15 |
pithos_cli |
33 | 16 |
---------- |
34 | 17 |
|
b/docs/conf.py | ||
---|---|---|
16 | 16 |
# documentation root, use os.path.abspath to make it absolute, like shown here. |
17 | 17 |
|
18 | 18 |
import sys, os |
19 |
sys.path.append("gevent.monkey") |
|
20 |
sys.path.append("~/src/synnefo/snf-common") |
|
21 |
sys.path.append("snf-common") |
|
22 |
sys.path.append("../") |
|
19 |
sys.path.append("/home/saxtouri/src/synnefo/snf-common") |
|
20 |
sys.path.append('../') |
|
23 | 21 |
|
24 | 22 |
# -- General configuration ----------------------------------------------------- |
25 | 23 |
|
b/docs/connection.rst | ||
---|---|---|
5 | 5 |
|
6 | 6 |
In version 0.6 and on it is safe to use parallel connections with greenlets. |
7 | 7 |
|
8 |
It uses httplib and GRNet Synnefo snf-common packages. All pooling parameters are configures in the external snf-common package. |
|
8 |
It uses httplib and GRNet Synnefo snf-common packages. All pooling parameters are configures in the external snf-common package. |
|
9 |
|
|
10 |
.. automodule:: kamaki.clients.connection |
|
11 |
:members: |
|
12 |
:show-inheritance: |
|
13 |
:undoc-members: |
b/docs/man/kamaki.rst | ||
---|---|---|
105 | 105 |
* setmeta update server metadata |
106 | 106 |
* delmeta delete server metadata |
107 | 107 |
* stats get server statistics |
108 |
* wait: Wait for server to finish [BUILD, STOPPED, REBOOT, ACTIVE] |
|
108 | 109 |
|
109 | 110 |
|
110 | 111 |
flavor commands |
... | ... | |
148 | 149 |
store commands |
149 | 150 |
************** |
150 | 151 |
|
151 |
* create create a container |
|
152 |
* container get container info |
|
153 |
* upload upload a file |
|
154 |
* download download a file |
|
155 |
* delete delete a file |
|
152 |
* append Append local file to (existing) remote object |
|
153 |
* cat Print a file to console |
|
154 |
* copy Copy an object |
|
155 |
* create Create a container or a directory object |
|
156 |
* delete Delete a container [or an object] |
|
157 |
* delgroup Delete a user group on an account |
|
158 |
* delmeta Delete an existing metadatum of account [, container [or object]] |
|
159 |
* delpermissions Delete all sharing permissions |
|
160 |
* download Download a file |
|
161 |
* group Get user groups details for account |
|
162 |
* hashmap Get the hashmap of an object |
|
163 |
* info Get information for account [, container [or object]] |
|
164 |
* list List containers, object trees or objects in a directory |
|
165 |
* manifest Create a remote file with uploaded parts by manifestation |
|
166 |
* meta Get custom meta-content for account [, container [or object]] |
|
167 |
* mkdir Create a directory |
|
168 |
* move Copy an object |
|
169 |
* overwrite Overwrite part (from start to end) of a remote file |
|
170 |
* permissions Get object read/write permissions |
|
171 |
* publish Publish an object |
|
172 |
* purge Purge a container |
|
173 |
* quota Get quota for account [or container] |
|
174 |
* setgroup Create/update a new user group on account |
|
175 |
* setmeta Set a new metadatum for account [, container [or object]] |
|
176 |
* setpermissions Set sharing permissions |
|
177 |
* setquota Set new quota (in KB) for account [or container] |
|
178 |
* setversioning Set new versioning (auto, none) for account [or container] |
|
179 |
* sharers List the accounts that share objects with default account |
|
180 |
* truncate Truncate remote file up to a size |
|
181 |
* unpublish Unpublish an object |
|
182 |
* upload Upload a file |
|
183 |
* versioning Get versioning for account [or container ] |
|
184 |
* versions Get the version list of an object |
|
185 |
|
|
156 | 186 |
|
157 | 187 |
|
158 | 188 |
Author |
b/docs/overview.rst | ||
---|---|---|
5 | 5 |
------- |
6 | 6 |
|
7 | 7 |
Here, at the |
8 |
`Greek Research and Technology Network <http://grnet.gr/default.asp?pid=1&la=2>`_,
|
|
8 |
`Greek Research and Technology Network `_, |
|
9 | 9 |
we have been developing an IaaS cloud management software called **synnefo** |
10 |
(or **+nefo**) that is accessed and managed via an extended OpenStack Compute API v1.1. Synnefo has been deployed in many enviroments to cover multiple needs. For example, the `~okeanos <http://okeanos.grnet.gr/>`_ IaaS service, running in our datacenters, is used to offer services for the Greek Research and Academic Community.
|
|
10 |
(or **+nefo**) that is accessed and managed via an extended OpenStack Compute API v1.1. Synnefo has been deployed in many environments to cover multiple needs. For example, the `~okeanos `_ IaaS service, running in our datacenters, is used to offer services for the Greek Research and Academic Community.
|
|
11 | 11 |
|
12 | 12 |
From the early start, we needed a simple command-line tool to test the OpenStack API. That's why we developed *kamaki*, which proved to be powerful and intuitive enough, to be used not only for testing purposes but also as a complete Openstack Compute API v1.1 client, able to manage our cloud from the command line. |
13 | 13 |
|
... | ... | |
35 | 35 |
* synnefo@lists.grnet.gr |
36 | 36 |
|
37 | 37 |
Please be sure to have read the Documentation and check the known |
38 |
`issues <https://code.grnet.gr/project*kamaki*/issues>`_ before contacting the
|
|
38 |
`issues `_ before contacting the |
|
39 | 39 |
team. |
40 | 40 |
|
b/docs/setup.rst | ||
---|---|---|
1 |
Set up
|
|
2 |
======
|
|
1 |
Setup |
|
2 |
===== |
|
3 | 3 |
|
4 |
Kamaki is easy to install from source or as a package. Some ui features are optional and can be install seperately. Kamaki behavior can be configured in the kamaki config file.
|
|
4 |
Kamaki is easy to install from source or as a package. Some ui features are optional and can be install separately. Kamaki behavior can be configured in the kamaki config file.
|
|
5 | 5 |
|
6 | 6 |
Requirements |
7 | 7 |
------------ |
... | ... | |
31 | 31 |
|
32 | 32 |
Kamaki comes with preset default values to all configuration options. All vital configurion options are set to use the okeanos.grnet.gr cloud services. User information is not included and should be provided either through the kamaki config command or by editing the configuration file. |
33 | 33 |
|
34 |
Kamaki configuration options are vital for correct Kamaki behavior. An incorrect option may render some command groups disfunctional. There are two ways of managing configuration options: edit the config file or use the kamaki config command.
|
|
34 |
Kamaki configuration options are vital for correct Kamaki behavior. An incorrect option may render some command groups dysfunctional. There are two ways of managing configuration options: edit the config file or use the kamaki config command.
|
|
35 | 35 |
|
36 | 36 |
Using multiple setups |
37 | 37 |
^^^^^^^^^^^^^^^^^^^^^ |
... | ... | |
83 | 83 |
|
84 | 84 |
In the above example, if the kamaki configuration file does not exist, it will be created with all the default values plus the *global.account* option set to *myusername@mydomain.com* value. |
85 | 85 |
|
86 |
The configuration file is formated so that it can be parsed by the python Config Parser module. It consists of command sections that are denoted with brackets. Every section contains variables with values. For example:
|
|
86 |
The configuration file is formatted so that it can be parsed by the python ConfigParser module. It consists of command sections that are denoted with brackets. Every section contains variables with values. For example:
|
|
87 | 87 |
|
88 | 88 |
*[store]* |
89 | 89 |
*url=https://okeanos.grnet.gr/pithos* |
... | ... | |
94 | 94 |
Available options |
95 | 95 |
^^^^^^^^^^^^^^^^^ |
96 | 96 |
|
97 |
The [global] group is treated by kamaki as a generic group for arbitary options, and it is used as a super-group for vital Kamaki options like account, token, or url. For example if global.account option is set and store.account option is not set, store services will use the global.account option instead. In case of conflict, the most specific options overide the global ones.
|
|
97 |
The [global] group is treated by kamaki as a generic group for arbitrary options, and it is used as a supergroup for vital Kamaki options like account, token, or url. For example if global.account option is set and store.account option is not set, store services will use the global.account option instead. In case of conflict, the most specific options override the global ones.
|
|
98 | 98 |
|
99 | 99 |
* global.colors <on|off> |
100 |
enable/dissable colors in command line based uis. Requires ansicolors, otherwise it is ignored
|
|
100 |
enable/disable colors in command line based uis. Requires ansicolors, otherwise it is ignored |
|
101 | 101 |
|
102 | 102 |
* global.account <account name> |
103 |
the username or user email that is user to connect to the cloud service. It can be ommited if provided as a service-specific option
|
|
103 |
the username or user email that is user to connect to the cloud service. It can be omitted if provided as a service-specific option
|
|
104 | 104 |
|
105 |
* global.token <user authedication token>
|
|
105 |
* global.token <user authentication token>
|
|
106 | 106 |
|
107 | 107 |
* store.cli <UI command specifications for store> |
108 | 108 |
a special package that is used to load storage commands to kamaki UIs. Don't touch this unless if you know what you are doing. |
... | ... | |
111 | 111 |
the url of the OOS storage or Pithos+ service. Set to Okeanos.grnet.gr Pithos+ storage service by default. Users should set a different value if they need to use a different storage service. |
112 | 112 |
|
113 | 113 |
* store.account <account name> |
114 |
if set, it overides possible global.account option for store level commands. |
|
114 |
if set, it overrides possible global.account option for store level commands.
|
|
115 | 115 |
|
116 | 116 |
* compute.url <OOS compute or Cyclades service url> |
117 | 117 |
the url of the OOS compute or Cyclades service. Set to Okeanos.grnet.gr Cyclades IaaS service by default. Users should set a different value if they need to use a different IaaS service. |
... | ... | |
135 | 135 |
the url of the Astakos authentication service. Set to the Okeanos.grnet.gr Astakos service by default. Users should set a different value if they need to use a different service. |
136 | 136 |
|
137 | 137 |
* astakos.cli <UI command specifications for Astakos authentication service> |
138 |
a special package that is used to load astakos-related commands to kamaki UIs. Don't touch this unless you know what you are doing. |
|
138 |
a special package that is used to load astakos-related commands to kamaki UIs. Don't touch this unless you know what you are doing. |
b/kamaki/cli/commands/quotaholder_cli.py | ||
---|---|---|
31 | 31 |
# interpreted as representing official policies, either expressed |
32 | 32 |
# or implied, of GRNET S.A.command |
33 | 33 |
|
34 |
from kamaki.clients.quotaholder import QuotaHolderClient |
|
34 |
#from kamaki.clients.quotaholder import QuotaHolderClient
|
|
35 | 35 |
from kamaki.cli import command |
36 | 36 |
from kamaki.cli.commands import _command_init |
37 | 37 |
|
... | ... | |
63 | 63 |
super(self.__class__, self).main() |
64 | 64 |
|
65 | 65 |
@command() |
66 |
class quotaholder_test_me(_quotaholder_init):
|
|
67 |
"""quotaholder test"""
|
|
66 |
class quotaholder_manage(_quotaholder_init):
|
|
67 |
"""quotaholder manage"""
|
|
68 | 68 |
|
69 |
def main(self, who='you'):
|
|
69 |
def main(self): |
|
70 | 70 |
super(self.__class__, self).main() |
Also available in: Unified diff