Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / presentation.py @ d558ca0b

History | View | Annotate | Download (8.7 kB)

1 4161cb70 Giorgos Korfiatis
# Copyright 2012, 2013 GRNET S.A. All rights reserved.
2 4161cb70 Giorgos Korfiatis
#
3 4161cb70 Giorgos Korfiatis
# Redistribution and use in source and binary forms, with or
4 4161cb70 Giorgos Korfiatis
# without modification, are permitted provided that the following
5 4161cb70 Giorgos Korfiatis
# conditions are met:
6 4161cb70 Giorgos Korfiatis
#
7 4161cb70 Giorgos Korfiatis
#   1. Redistributions of source code must retain the above
8 4161cb70 Giorgos Korfiatis
#      copyright notice, this list of conditions and the following
9 4161cb70 Giorgos Korfiatis
#      disclaimer.
10 4161cb70 Giorgos Korfiatis
#
11 4161cb70 Giorgos Korfiatis
#   2. Redistributions in binary form must reproduce the above
12 4161cb70 Giorgos Korfiatis
#      copyright notice, this list of conditions and the following
13 4161cb70 Giorgos Korfiatis
#      disclaimer in the documentation and/or other materials
14 4161cb70 Giorgos Korfiatis
#      provided with the distribution.
15 4161cb70 Giorgos Korfiatis
#
16 4161cb70 Giorgos Korfiatis
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
17 4161cb70 Giorgos Korfiatis
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 4161cb70 Giorgos Korfiatis
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 4161cb70 Giorgos Korfiatis
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
20 4161cb70 Giorgos Korfiatis
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 4161cb70 Giorgos Korfiatis
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 4161cb70 Giorgos Korfiatis
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23 4161cb70 Giorgos Korfiatis
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24 4161cb70 Giorgos Korfiatis
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 4161cb70 Giorgos Korfiatis
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26 4161cb70 Giorgos Korfiatis
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 4161cb70 Giorgos Korfiatis
# POSSIBILITY OF SUCH DAMAGE.
28 4161cb70 Giorgos Korfiatis
#
29 4161cb70 Giorgos Korfiatis
# The views and conclusions contained in the software and
30 4161cb70 Giorgos Korfiatis
# documentation are those of the authors and should not be
31 4161cb70 Giorgos Korfiatis
# interpreted as representing official policies, either expressed
32 4161cb70 Giorgos Korfiatis
# or implied, of GRNET S.A.
33 4161cb70 Giorgos Korfiatis
34 75380308 Kostas Papadimitriou
from astakos.im import settings
35 37d59b27 Kostas Papadimitriou
from synnefo.lib.utils import dict_merge
36 75380308 Kostas Papadimitriou
37 75380308 Kostas Papadimitriou
RESOURCES = {
38 4161cb70 Giorgos Korfiatis
    'groups': {
39 4161cb70 Giorgos Korfiatis
        'compute': {
40 4161cb70 Giorgos Korfiatis
            'help_text': ('Compute resources '
41 4161cb70 Giorgos Korfiatis
                          '(amount of VMs, CPUs, RAM, System disk) '),
42 4161cb70 Giorgos Korfiatis
            'is_abbreviation': False,
43 4161cb70 Giorgos Korfiatis
            'report_desc': '',
44 4161cb70 Giorgos Korfiatis
            'verbose_name': 'compute',
45 4161cb70 Giorgos Korfiatis
        },
46 4161cb70 Giorgos Korfiatis
        'storage': {
47 4161cb70 Giorgos Korfiatis
            'help_text': ('Storage resources '
48 4161cb70 Giorgos Korfiatis
                          '(amount of space to store files on Pithos) '),
49 4161cb70 Giorgos Korfiatis
            'is_abbreviation': False,
50 4161cb70 Giorgos Korfiatis
            'report_desc': '',
51 4161cb70 Giorgos Korfiatis
            'verbose_name': 'storage',
52 4161cb70 Giorgos Korfiatis
        },
53 4161cb70 Giorgos Korfiatis
        'network': {
54 4161cb70 Giorgos Korfiatis
            'help_text': ' Network resources (number of Private Networks)  ',
55 4161cb70 Giorgos Korfiatis
            'is_abbreviation': False,
56 4161cb70 Giorgos Korfiatis
            'report_desc': '',
57 4161cb70 Giorgos Korfiatis
            'verbose_name': 'network',
58 4161cb70 Giorgos Korfiatis
        },
59 4161cb70 Giorgos Korfiatis
    },
60 4161cb70 Giorgos Korfiatis
    'resources': {
61 75380308 Kostas Papadimitriou
        'pithos.diskspace': {
62 4161cb70 Giorgos Korfiatis
            'help_text': ('This is the space on Pithos for storing files '
63 4161cb70 Giorgos Korfiatis
                          'and VM Images. '),
64 4161cb70 Giorgos Korfiatis
            'help_text_input_each': ('This is the total amount of space on '
65 4161cb70 Giorgos Korfiatis
                                     'Pithos that will be granted to each '
66 4161cb70 Giorgos Korfiatis
                                     'user of this Project '),
67 4161cb70 Giorgos Korfiatis
            'is_abbreviation': False,
68 4161cb70 Giorgos Korfiatis
            'report_desc': 'Storage Space',
69 4161cb70 Giorgos Korfiatis
            'placeholder': 'eg. 10GB',
70 4161cb70 Giorgos Korfiatis
            'verbose_name': 'Storage Space',
71 75380308 Kostas Papadimitriou
            'group': 'storage'
72 4161cb70 Giorgos Korfiatis
        },
73 4161cb70 Giorgos Korfiatis
        'cyclades.disk': {
74 4161cb70 Giorgos Korfiatis
            'help_text': ('This is the System Disk that the VMs have that '
75 4161cb70 Giorgos Korfiatis
                          'run the OS '),
76 4161cb70 Giorgos Korfiatis
            'help_text_input_each': ("This is the total amount of System Disk "
77 4161cb70 Giorgos Korfiatis
                                     "that will be granted to each user of "
78 4161cb70 Giorgos Korfiatis
                                     "this Project (this refers to the total "
79 4161cb70 Giorgos Korfiatis
                                     "System Disk of all VMs, not each VM's "
80 4161cb70 Giorgos Korfiatis
                                     "System Disk)  "),
81 4161cb70 Giorgos Korfiatis
            'is_abbreviation': False,
82 4161cb70 Giorgos Korfiatis
            'report_desc': 'System Disk',
83 4161cb70 Giorgos Korfiatis
            'placeholder': 'eg. 5GB, 2GB etc',
84 75380308 Kostas Papadimitriou
            'verbose_name': 'System Disk',
85 75380308 Kostas Papadimitriou
            'group': 'compute'
86 4161cb70 Giorgos Korfiatis
        },
87 4161cb70 Giorgos Korfiatis
        'cyclades.ram': {
88 4161cb70 Giorgos Korfiatis
            'help_text': 'RAM used by VMs ',
89 4161cb70 Giorgos Korfiatis
            'help_text_input_each': ('This is the total amount of RAM that '
90 4161cb70 Giorgos Korfiatis
                                     'will be granted to each user of this '
91 4161cb70 Giorgos Korfiatis
                                     'Project (on all VMs)  '),
92 4161cb70 Giorgos Korfiatis
            'is_abbreviation': True,
93 4161cb70 Giorgos Korfiatis
            'report_desc': 'RAM',
94 4161cb70 Giorgos Korfiatis
            'placeholder': 'eg. 4GB',
95 75380308 Kostas Papadimitriou
            'verbose_name': 'ram',
96 75380308 Kostas Papadimitriou
            'group': 'compute'
97 75380308 Kostas Papadimitriou
98 4161cb70 Giorgos Korfiatis
        },
99 4161cb70 Giorgos Korfiatis
        'cyclades.cpu': {
100 4161cb70 Giorgos Korfiatis
            'help_text': 'CPUs used by VMs ',
101 4161cb70 Giorgos Korfiatis
            'help_text_input_each': ('This is the total number of CPUs that '
102 4161cb70 Giorgos Korfiatis
                                     'will be granted to each user of this '
103 4161cb70 Giorgos Korfiatis
                                     'Project (on all VMs)  '),
104 4161cb70 Giorgos Korfiatis
            'is_abbreviation': True,
105 4161cb70 Giorgos Korfiatis
            'report_desc': 'CPUs',
106 4161cb70 Giorgos Korfiatis
            'placeholder': 'eg. 1',
107 75380308 Kostas Papadimitriou
            'verbose_name': 'cpu',
108 75380308 Kostas Papadimitriou
            'group': 'compute'
109 75380308 Kostas Papadimitriou
110 4161cb70 Giorgos Korfiatis
        },
111 4161cb70 Giorgos Korfiatis
        'cyclades.vm': {
112 4161cb70 Giorgos Korfiatis
            'help_text': ('These are the VMs one can create on the '
113 4161cb70 Giorgos Korfiatis
                          'Cyclades UI '),
114 4161cb70 Giorgos Korfiatis
            'help_text_input_each': ('This is the total number of VMs that '
115 4161cb70 Giorgos Korfiatis
                                     'will be granted to each user of this '
116 4161cb70 Giorgos Korfiatis
                                     'Project '),
117 4161cb70 Giorgos Korfiatis
            'is_abbreviation': True,
118 4161cb70 Giorgos Korfiatis
            'report_desc': 'Virtual Machines',
119 4161cb70 Giorgos Korfiatis
            'placeholder': 'eg. 2',
120 4161cb70 Giorgos Korfiatis
            'verbose_name': 'vm',
121 75380308 Kostas Papadimitriou
            'group': 'compute'
122 75380308 Kostas Papadimitriou
123 4161cb70 Giorgos Korfiatis
        },
124 4161cb70 Giorgos Korfiatis
        'cyclades.network.private': {
125 4161cb70 Giorgos Korfiatis
            'help_text': ('These are the Private Networks one can create on '
126 4161cb70 Giorgos Korfiatis
                          'the Cyclades UI. '),
127 4161cb70 Giorgos Korfiatis
            'help_text_input_each': ('This is the total number of Private '
128 4161cb70 Giorgos Korfiatis
                                     'Networks that will be granted to each '
129 4161cb70 Giorgos Korfiatis
                                     'user of this Project '),
130 4161cb70 Giorgos Korfiatis
            'is_abbreviation': False,
131 4161cb70 Giorgos Korfiatis
            'report_desc': 'Private Networks',
132 4161cb70 Giorgos Korfiatis
            'placeholder': 'eg. 1',
133 75380308 Kostas Papadimitriou
            'verbose_name': 'Private Network',
134 75380308 Kostas Papadimitriou
            'group': 'network'
135 75380308 Kostas Papadimitriou
136 37d59b27 Kostas Papadimitriou
        },
137 37d59b27 Kostas Papadimitriou
        'astakos.pending_app': {
138 37d59b27 Kostas Papadimitriou
            'help_text': ('Pending project applications limit'),
139 37d59b27 Kostas Papadimitriou
            'help_text_input_each': ('Total pending project applications user '
140 37d59b27 Kostas Papadimitriou
                                     'is allowed to create'),
141 37d59b27 Kostas Papadimitriou
            'is_abbreviation': False,
142 37d59b27 Kostas Papadimitriou
            'report_desc': 'Pending Project Applications',
143 37d59b27 Kostas Papadimitriou
            'placeholder': 'eg. 2',
144 37d59b27 Kostas Papadimitriou
            'verbose_name': 'pending project application',
145 37d59b27 Kostas Papadimitriou
            'group': 'accounts'
146 37d59b27 Kostas Papadimitriou
147 37d59b27 Kostas Papadimitriou
        },
148 4161cb70 Giorgos Korfiatis
    },
149 37d59b27 Kostas Papadimitriou
    'groups_order': ['storage', 'compute', 'network', 'accounts'],
150 75380308 Kostas Papadimitriou
    'resources_order': ['pithos.diskspace',
151 4161cb70 Giorgos Korfiatis
                        'cyclades.disk',
152 4161cb70 Giorgos Korfiatis
                        'cyclades.cpu',
153 4161cb70 Giorgos Korfiatis
                        'cyclades.ram',
154 4161cb70 Giorgos Korfiatis
                        'cyclades.vm',
155 37d59b27 Kostas Papadimitriou
                        'cyclades.network.private',
156 37d59b27 Kostas Papadimitriou
                        'astakos.pending_app'
157 37d59b27 Kostas Papadimitriou
                        ],
158 37d59b27 Kostas Papadimitriou
    'exclude_from_usage': []
159 4161cb70 Giorgos Korfiatis
}
160 0156e40c Kostas Papadimitriou
161 37d59b27 Kostas Papadimitriou
# extend from settings
162 37d59b27 Kostas Papadimitriou
RESOURCES = dict_merge(RESOURCES, settings.RESOURCES_META)
163 37d59b27 Kostas Papadimitriou
164 0156e40c Kostas Papadimitriou
165 bea584e1 Giorgos Korfiatis
def component_defaults(service_name):
166 0156e40c Kostas Papadimitriou
    """
167 0156e40c Kostas Papadimitriou
    Metadata for unkown services
168 0156e40c Kostas Papadimitriou
    """
169 0156e40c Kostas Papadimitriou
    return {
170 0156e40c Kostas Papadimitriou
        'name': service_name,
171 0156e40c Kostas Papadimitriou
        'order': 1000,
172 0156e40c Kostas Papadimitriou
        'verbose_name': service_name.title(),
173 0156e40c Kostas Papadimitriou
        'cloudbar': {
174 0156e40c Kostas Papadimitriou
            'show': True,
175 0156e40c Kostas Papadimitriou
            'title': service_name
176 0156e40c Kostas Papadimitriou
        },
177 0156e40c Kostas Papadimitriou
        'dashboard': {
178 0156e40c Kostas Papadimitriou
            'show': True,
179 0156e40c Kostas Papadimitriou
            'order': 1000,
180 0156e40c Kostas Papadimitriou
            'description': '%s service' % service_name
181 0156e40c Kostas Papadimitriou
        }
182 0156e40c Kostas Papadimitriou
    }
183 0156e40c Kostas Papadimitriou
184 0156e40c Kostas Papadimitriou
185 bea584e1 Giorgos Korfiatis
COMPONENTS = {
186 0156e40c Kostas Papadimitriou
    'astakos': {
187 0156e40c Kostas Papadimitriou
        'url': '/im/landing',
188 0156e40c Kostas Papadimitriou
        'order': 1,
189 0156e40c Kostas Papadimitriou
        'dashboard': {
190 0156e40c Kostas Papadimitriou
            'order': 3,
191 0156e40c Kostas Papadimitriou
            'show': True,
192 0156e40c Kostas Papadimitriou
            'description': "Access the dashboard from the top right corner "
193 0156e40c Kostas Papadimitriou
                           "of your screen. Here you can manage your profile, "
194 0156e40c Kostas Papadimitriou
                           "see the usage of your resources and manage "
195 0156e40c Kostas Papadimitriou
                           "projects to share virtual resources with "
196 0156e40c Kostas Papadimitriou
                           "colleagues."
197 0156e40c Kostas Papadimitriou
        },
198 0156e40c Kostas Papadimitriou
        'cloudbar': {
199 0156e40c Kostas Papadimitriou
            'show': False
200 0156e40c Kostas Papadimitriou
        }
201 0156e40c Kostas Papadimitriou
    },
202 0156e40c Kostas Papadimitriou
    'pithos': {
203 0156e40c Kostas Papadimitriou
        'url': '/pithos/ui/',
204 0156e40c Kostas Papadimitriou
        'order': 2,
205 0156e40c Kostas Papadimitriou
        'dashboard': {
206 0156e40c Kostas Papadimitriou
            'order': 1,
207 0156e40c Kostas Papadimitriou
            'show': True,
208 0156e40c Kostas Papadimitriou
            'description': "Pithos is the File Storage service. "
209 0156e40c Kostas Papadimitriou
                           "Click to start uploading and managing your "
210 0156e40c Kostas Papadimitriou
                           "files on the cloud."
211 0156e40c Kostas Papadimitriou
        },
212 0156e40c Kostas Papadimitriou
        'cloudbar': {
213 0156e40c Kostas Papadimitriou
            'show': True
214 0156e40c Kostas Papadimitriou
        }
215 0156e40c Kostas Papadimitriou
    },
216 0156e40c Kostas Papadimitriou
    'cyclades': {
217 0156e40c Kostas Papadimitriou
        'url': '/cyclades/ui/',
218 0156e40c Kostas Papadimitriou
        'order': 3,
219 0156e40c Kostas Papadimitriou
        'dashboard': {
220 0156e40c Kostas Papadimitriou
            'order': 2,
221 0156e40c Kostas Papadimitriou
            'show': True,
222 0156e40c Kostas Papadimitriou
            'description': "Cyclades is the Compute and Network Service. "
223 0156e40c Kostas Papadimitriou
                           "Click to start creating Virtual Machines and "
224 0156e40c Kostas Papadimitriou
                           "connect them to arbitrary Networks."
225 0156e40c Kostas Papadimitriou
        },
226 0156e40c Kostas Papadimitriou
        'cloudbar': {
227 0156e40c Kostas Papadimitriou
            'show': True
228 0156e40c Kostas Papadimitriou
        }
229 0156e40c Kostas Papadimitriou
    }
230 0156e40c Kostas Papadimitriou
}
231 251b83be Giorgos Korfiatis
232 251b83be Giorgos Korfiatis
233 251b83be Giorgos Korfiatis
PROJECT_MEMBER_JOIN_POLICIES = {
234 251b83be Giorgos Korfiatis
    1: 'automatically accepted',
235 251b83be Giorgos Korfiatis
    2: 'owner accepts',
236 251b83be Giorgos Korfiatis
    3: 'closed',
237 251b83be Giorgos Korfiatis
}
238 251b83be Giorgos Korfiatis
239 251b83be Giorgos Korfiatis
240 251b83be Giorgos Korfiatis
PROJECT_MEMBER_LEAVE_POLICIES = {
241 251b83be Giorgos Korfiatis
    1: 'automatically accepted',
242 251b83be Giorgos Korfiatis
    2: 'owner accepts',
243 251b83be Giorgos Korfiatis
    3: 'closed',
244 251b83be Giorgos Korfiatis
}