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