Revision 90e7da53
b/docs/admin-guide.rst | ||
---|---|---|
920 | 920 |
project-show Show project details |
921 | 921 |
quota List and check the integrity of user quota |
922 | 922 |
reconcile-resources-astakos Reconcile resource usage of Quotaholder with Astakos DB |
923 |
resource-export-astakos Export astakos resources in json format |
|
924 |
resource-import Register resources |
|
925 | 923 |
resource-list List resources |
926 | 924 |
resource-modify Modify a resource's default base quota and boolean flags |
925 |
service-export-astakos Export Astakos services and resources in JSON format |
|
927 | 926 |
service-import Register services |
928 | 927 |
service-list List services |
929 | 928 |
service-show Show service details |
... | ... | |
949 | 948 |
Name Description |
950 | 949 |
============================ =========================== |
951 | 950 |
reconcile-commissions-pithos Display unresolved commissions and trigger their recovery |
952 |
resource-export-pithos Export pithos resources in json format
|
|
951 |
service-export-pithos Export Pithos services and resources in JSON format
|
|
953 | 952 |
reconcile-resources-pithos Detect unsynchronized usage between Astakos and Pithos DB resources and synchronize them if specified so. |
954 | 953 |
============================ =========================== |
955 | 954 |
|
... | ... | |
996 | 995 |
floating-ip-remove Delete a floating IP |
997 | 996 |
queue-inspect Inspect the messages of a RabbitMQ queue |
998 | 997 |
queue-retry Resend messages from Dead Letter queues to original exchanges |
999 |
resource-export-cyclades Export Cyclades resources in JSON format. |
|
1000 |
service-export-cyclades Export Cyclades services in JSON format. |
|
998 |
service-export-cyclades Export Cyclades services and resources in JSON format |
|
1001 | 999 |
subnet-create Create a subnet |
1002 | 1000 |
subnet-inspect Inspect a subnet in DB |
1003 | 1001 |
subnet-list List subnets |
/dev/null | ||
---|---|---|
1 |
# Copyright 2013 GRNET S.A. All rights reserved. |
|
2 |
# |
|
3 |
# Redistribution and use in source and binary forms, with or |
|
4 |
# without modification, are permitted provided that the following |
|
5 |
# conditions are met: |
|
6 |
# |
|
7 |
# 1. Redistributions of source code must retain the above |
|
8 |
# copyright notice, this list of conditions and the following |
|
9 |
# disclaimer. |
|
10 |
# |
|
11 |
# 2. Redistributions in binary form must reproduce the above |
|
12 |
# copyright notice, this list of conditions and the following |
|
13 |
# disclaimer in the documentation and/or other materials |
|
14 |
# provided with the distribution. |
|
15 |
# |
|
16 |
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS |
|
17 |
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|
18 |
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
|
19 |
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR |
|
20 |
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|
21 |
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|
22 |
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
|
23 |
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
|
24 |
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
|
25 |
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
|
26 |
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
|
27 |
# POSSIBILITY OF SUCH DAMAGE. |
|
28 |
# |
|
29 |
# The views and conclusions contained in the software and |
|
30 |
# documentation are those of the authors and should not be |
|
31 |
# interpreted as representing official policies, either expressed |
|
32 |
# or implied, of GRNET S.A. |
|
33 |
|
|
34 |
from django.utils import simplejson as json |
|
35 |
from django.core.management.base import BaseCommand |
|
36 |
|
|
37 |
from astakos.im.astakos_resources import resources |
|
38 |
|
|
39 |
|
|
40 |
class Command(BaseCommand): |
|
41 |
help = "Export astakos resources in json format" |
|
42 |
|
|
43 |
def handle(self, *args, **options): |
|
44 |
output = json.dumps(resources, indent=4) |
|
45 |
self.stdout.write(output + '\n') |
/dev/null | ||
---|---|---|
1 |
# Copyright 2013 GRNET S.A. All rights reserved. |
|
2 |
# |
|
3 |
# Redistribution and use in source and binary forms, with or |
|
4 |
# without modification, are permitted provided that the following |
|
5 |
# conditions are met: |
|
6 |
# |
|
7 |
# 1. Redistributions of source code must retain the above |
|
8 |
# copyright notice, this list of conditions and the following |
|
9 |
# disclaimer. |
|
10 |
# |
|
11 |
# 2. Redistributions in binary form must reproduce the above |
|
12 |
# copyright notice, this list of conditions and the following |
|
13 |
# disclaimer in the documentation and/or other materials |
|
14 |
# provided with the distribution. |
|
15 |
# |
|
16 |
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS |
|
17 |
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|
18 |
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
|
19 |
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR |
|
20 |
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|
21 |
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|
22 |
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
|
23 |
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
|
24 |
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
|
25 |
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
|
26 |
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
|
27 |
# POSSIBILITY OF SUCH DAMAGE. |
|
28 |
# |
|
29 |
# The views and conclusions contained in the software and |
|
30 |
# documentation are those of the authors and should not be |
|
31 |
# interpreted as representing official policies, either expressed |
|
32 |
# or implied, of GRNET S.A. |
|
33 |
|
|
34 |
from optparse import make_option |
|
35 |
|
|
36 |
from django.db import transaction |
|
37 |
from django.core.management.base import BaseCommand, CommandError |
|
38 |
from django.utils import simplejson as json |
|
39 |
|
|
40 |
from astakos.im.register import add_resource, RegisterException |
|
41 |
from ._common import read_from_file |
|
42 |
|
|
43 |
|
|
44 |
class Command(BaseCommand): |
|
45 |
help = "Register resources" |
|
46 |
|
|
47 |
option_list = BaseCommand.option_list + ( |
|
48 |
make_option('--json', |
|
49 |
dest='json', |
|
50 |
metavar='<json.file>', |
|
51 |
help="Load resource definitions from a json file"), |
|
52 |
) |
|
53 |
|
|
54 |
def handle(self, *args, **options): |
|
55 |
|
|
56 |
json_file = options['json'] |
|
57 |
if not json_file: |
|
58 |
m = "Expecting option --json." |
|
59 |
raise CommandError(m) |
|
60 |
|
|
61 |
else: |
|
62 |
data = read_from_file(json_file) |
|
63 |
m = 'Input should be a JSON list.' |
|
64 |
try: |
|
65 |
data = json.loads(data) |
|
66 |
except json.JSONDecodeError: |
|
67 |
raise CommandError(m) |
|
68 |
if not isinstance(data, list): |
|
69 |
raise CommandError(m) |
|
70 |
self.add_resources(data) |
|
71 |
|
|
72 |
@transaction.commit_on_success |
|
73 |
def add_resources(self, resources): |
|
74 |
output = [] |
|
75 |
for resource in resources: |
|
76 |
if not isinstance(resource, dict): |
|
77 |
raise CommandError("Malformed resource dict.") |
|
78 |
try: |
|
79 |
r, exists = add_resource(resource) |
|
80 |
except RegisterException as e: |
|
81 |
raise CommandError(e.message) |
|
82 |
name = r.name |
|
83 |
if exists: |
|
84 |
m = "Resource '%s' updated in database.\n" % (name) |
|
85 |
else: |
|
86 |
m = ("Resource '%s' created in database with default " |
|
87 |
"quota limit 0.\n" % (name)) |
|
88 |
output.append(m) |
|
89 |
|
|
90 |
for line in output: |
|
91 |
self.stdout.write(line) |
/dev/null | ||
---|---|---|
1 |
# Copyright 2012-2013 GRNET S.A. All rights reserved. |
|
2 |
# |
|
3 |
# Redistribution and use in source and binary forms, with or |
|
4 |
# without modification, are permitted provided that the following |
|
5 |
# conditions are met: |
|
6 |
# |
|
7 |
# 1. Redistributions of source code must retain the above |
|
8 |
# copyright notice, this list of conditions and the following |
|
9 |
# disclaimer. |
|
10 |
# |
|
11 |
# 2. Redistributions in binary form must reproduce the above |
|
12 |
# copyright notice, this list of conditions and the following |
|
13 |
# disclaimer in the documentation and/or other materials |
|
14 |
# provided with the distribution. |
|
15 |
# |
|
16 |
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS |
|
17 |
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|
18 |
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
|
19 |
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR |
|
20 |
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|
21 |
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|
22 |
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
|
23 |
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
|
24 |
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
|
25 |
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
|
26 |
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
|
27 |
# POSSIBILITY OF SUCH DAMAGE. |
|
28 |
# |
|
29 |
# The views and conclusions contained in the software and |
|
30 |
# documentation are those of the authors and should not be |
|
31 |
# interpreted as representing official policies, either expressed |
|
32 |
# or implied, of GRNET S.A. |
|
33 |
|
|
34 |
from django.utils import simplejson as json |
|
35 |
from django.core.management.base import NoArgsCommand |
|
36 |
from synnefo.quotas import resources |
|
37 |
|
|
38 |
|
|
39 |
class Command(NoArgsCommand): |
|
40 |
help = "Export Cyclades resources in JSON format." |
|
41 |
|
|
42 |
def handle(self, *args, **options): |
|
43 |
output = json.dumps(resources.resources, indent=4) |
|
44 |
self.stdout.write(output + "\n") |
/dev/null | ||
---|---|---|
1 |
# Copyright 2013 GRNET S.A. All rights reserved. |
|
2 |
# |
|
3 |
# Redistribution and use in source and binary forms, with or |
|
4 |
# without modification, are permitted provided that the following |
|
5 |
# conditions are met: |
|
6 |
# |
|
7 |
# 1. Redistributions of source code must retain the above |
|
8 |
# copyright notice, this list of conditions and the following |
|
9 |
# disclaimer. |
|
10 |
# |
|
11 |
# 2. Redistributions in binary form must reproduce the above |
|
12 |
# copyright notice, this list of conditions and the following |
|
13 |
# disclaimer in the documentation and/or other materials |
|
14 |
# provided with the distribution. |
|
15 |
# |
|
16 |
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS |
|
17 |
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|
18 |
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
|
19 |
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR |
|
20 |
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|
21 |
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|
22 |
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
|
23 |
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
|
24 |
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
|
25 |
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
|
26 |
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
|
27 |
# POSSIBILITY OF SUCH DAMAGE. |
|
28 |
# |
|
29 |
# The views and conclusions contained in the software and |
|
30 |
# documentation are those of the authors and should not be |
|
31 |
# interpreted as representing official policies, either expressed |
|
32 |
# or implied, of GRNET S.A. |
|
33 |
|
|
34 |
from django.utils import simplejson as json |
|
35 |
from django.core.management.base import BaseCommand |
|
36 |
|
|
37 |
from pithos.api import resources |
|
38 |
|
|
39 |
|
|
40 |
class Command(BaseCommand): |
|
41 |
help = "Export pithos resources in json format" |
|
42 |
|
|
43 |
def handle(self, *args, **options): |
|
44 |
output = json.dumps(resources.resources, indent=4) |
|
45 |
self.stdout.write(output + '\n') |
Also available in: Unified diff