Statistics
| Branch: | Tag: | Revision:

root / Changelog @ a6143787

History | View | Annotate | Download (10 kB)

1
.. _Changelog:
2

    
3
Unified Changelog file for Synnefo versions >= 0.13
4
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
5

    
6
Since v0.13 most of the Synnefo components have been merged into a single
7
repository and have aligned versions.
8

    
9

    
10
.. _Changelog-0.13next:
11

    
12
v0.13next
13
=========
14

    
15
Released: UNRELEASED
16

    
17
Synnefo-wide
18
------------
19

    
20
* Create 'snf_django' Python package to hold common code for all Synnefo
21
  components.
22

    
23
* Create a JSON-exportable definition document for each Synnefo Components
24
  (Astakos, Cyclades, Pithos, etc.) that consolidates APIs (services),
25
  resources, and other standardized properties (e.g. default URL prefixes).
26

    
27
* Standardize URLs for Synnefo Components, impose structure and naming
28
  conventions to related settings. Make each component deployable under
29
  a user-configurable <COMPONENT>_BASE_URL. Each API (compute, image, etc.)
30
  is deployable under a developer-configurable prefix beneath BASE_URL.
31

    
32
Astakos
33
-------
34

    
35
* Redesign of the accounting system (quotaholder) and integration into
36
  Astakos.
37

    
38
  * Simplified the quotaholder model; removed tables Entity and Policy; now
39
    table Holding contains limit and usage for every holding.
40
  * Extended table Holding, so that we can keep track of quota for every
41
    valid combination of holder (e.g. user), resource, and source (e.g. the
42
    default system or some specific project).
43
  * Refactored code for issuing and resolving commissions for robustness;
44
    added a 'force' option to bypass the upper limit check when issuing a
45
    commission.
46
  * Simplified syncing to the quotaholder; removed fields from models
47
    Project and ProjectMembership, previously needed for syncing; removed
48
    state PROJECT_DEACTIVATED from ProjectMembership.
49
  * Removed settings ASTAKOS_QUOTAHOLDER_URL, ASTAKOS_QUOTAHOLDER_TOKEN,
50
    and ASTAKOS_QUOTAHOLDER_POOLSIZE.
51

    
52
* API-related changes:
53

    
54
  * Implemented API calls for quota, resources, and commissions.
55
  * Moved all API calls under '/account/v1.0'.
56
  * Implemented the keystone API call POST /tokens under '/identity/v2.0'.
57

    
58
* Service and resource specification and handling:
59

    
60
  * Specified a format for defining services along with the API endpoints
61
    and the resources they expose. Migrated internal resource name by
62
    prefixing it with service name (e.g. 'vm' becomes 'cyclades.vm');
63
    renamed registered service 'pithos+' to 'pithos'.
64
  * Specified a procedure to register a Synnefo component, its services and
65
    their resources in astakos and set the resources' default base quota
66
    limit. Removed resource definitions from settings.
67
  * Moved service and resource presentation data out of the respective db
68
    models into a separate file of UI constants.
69

    
70
* Converted the limit on pending applications from a setting to a quotable
71
  resource. Converted the related user setting to a user-specific base quota
72
  limit. Deprecated model UserSetting; removed setting
73
  ASTAKOS_PENDING_APPLICATION_LIMIT.
74

    
75
* Changes in locking strategy:
76

    
77
  * Lock only project's chain for all project operations; lock user before
78
    syncing to quotaholder.
79
  * When locking multiple rows (e.g. users or holdings) include an ORDER BY
80
    clause in the query to impose ordering on locking.
81

    
82
* Changes in views:
83

    
84
  * Replaced custom transaction context with a simple decorator for managing
85
    transactions and a context 'ExceptionHandler', which logs and suppresses
86
    exceptions
87

    
88
* Added fine grain user auth provider's policies.
89

    
90
  * Administrator can override default auth provider policies to a specific 
91
    user or group of users.
92
  * Optionally a user can be assigned to a list of groups, based on the
93
    authentication method he choosed to signup.
94

    
95
* Removed explicit handling of SMTP errors on each email delivery. Exceptions 
96
  are now propagated to base django exception handler.
97

    
98
* Improvements in user activation flow
99

    
100
  * User moderation now takes place after the user has verified his email
101
    address.
102
  * User model enriched with additional user state fields
103
  * Split activation email from moderation process. Administrator is required 
104
    to moderate user explicitly using the `user-modify --accept` or
105
    `user-modify --reject` commands.
106
  * Improved logging throught out user activation procedures.
107

    
108
* Management commands:
109

    
110
  * Introduced new commands:
111
     * authpolicy-{add, list, remove, set, show}
112
     * group-{add, list}
113
     * component-{add, list, modify, remove}
114
     * reconcile-resources-astakos
115
     * resource-{export-astakos, import, modify}
116
     * service-{export-astakos, import, show}
117
  * Renamed commands:
118
     * astakos-quota to quota
119
     * user-update to user-modify
120
     * full-cleanup to cleanup-full
121
  * Removed commands:
122
     * astakos-init
123
     * invitation-{details, list}
124
     * project-sync
125
     * resource-{add, remove}
126
     * service-{add, remove, token-renew, update}
127
     * user-invite
128
     * user-set-initial-quota (integrated its functionality in user-modify and quota)
129
  * Added quota and project-related information in user-show command; added
130
    membership information in project-show.
131

    
132
Cyclades
133
--------
134

    
135
* Make 'type' attribute required for network create API request.
136
* Networks not created to all Ganeti backends upon creation, they are instead
137
  created to a backend only when a VM connects to the network.
138
* Add 'ASTAKOS_POOLSIZE' setting which tunes the size of the http connection
139
  pool to astakos.
140
* Remove 'CYCLADES_USER_CATALOG_URL' and 'CYCLADES_USER_FEEDBACK_URL' settings
141
* Remove CYCLADES_USE_QUOTAHOLDER, CYCLADES_QUOTAHOLDER_TOKEN,
142
  CYCLADES_QUOTAHOLDER_URL, CYCLADES_QUOTAHOLDER_POOLSIZE settings
143
* Rename 'cyclades-usage-verify' management command to
144
  'reconcile-resources-cyclades'. Also, remove 'cyclades-usage-reset' command,
145
  which is equivalent to 'reconcile-resources-cyclades --fix'.
146
* Rename 'cyclades-reconcile-commissions' management command to
147
  'reconcile-commissions-cyclades'.
148
* Remove obsolete 'MAX_VMS_PER_USER', 'MAX_NETWORKS_PER_USER',
149
  "VMS_USER_QUOTA" and "NETWORKS_USER_QUOTA" settings, since their usage
150
  is covered by Quotaholder.
151
* Remove obsolete setting 'API_ROOT_URL', since it is being covered by
152
  the use of CYCLADES_BASE_URL* Remove obsolete setting 'API_ROOT_URL', since
153
  it is being covered by 'CYCLADES_BASE_URL'.
154

    
155
Cyclades helpdesk
156
-----------------
157

    
158
* Additional start/stop vm action
159
* Display extend backend info in vm's view
160
* Fixed IP lookup
161

    
162
Pithos
163
------
164

    
165
* Remove PITHOS_AUTHENTICATION_USERS setting, which was used to override
166
  astakos users.
167
* Remove 'PITHOS_USER_CATALOG_URL', 'PITHOS_USER_FEEDBACK_URL' and
168
  'PITHOS_USER_LOGIN_URL' settings.
169
* Remove PITHOS_USE_QUOTAHOLDER, PITHOS_QUOTAHOLDER_URL,
170
  PITHOS_QUOTAHOLDER_TOKEN and PITHOS_ASTAKOSCLIENT_POOLSIZE
171

    
172
Tools
173
-----
174

    
175

    
176
.. _Changelog-0.13:
177

    
178
v0.13
179
=====
180

    
181
Released: Wed Apr 10 18:52:50 EEST 2013
182

    
183
In v0.13 the code was very heavily refactored for increased uniformity since
184
most of the Synnefo components have been merged into a single repository. Thus,
185
**just for this version** we will not document a complete Changelog (features,
186
fixes, improvements, issues, setting changes), but rather just copy from the
187
`NEWS` file with minor additions wherever needed.
188

    
189
Synnefo-wide
190
------------
191

    
192
* Support for pooling throughout Synnefo
193

    
194
  * Pooled Django DB connections, Pithos backend connections, HTTP
195
    connections using single `objpool` package
196

    
197
* Improved management commands
198

    
199
  * Unified codebase for output of tables in JSON, CSV
200

    
201
* Bring most of Synnefo code inside a single, unified repository
202

    
203
  * support automatic Python and Debian package builds for individual commits
204
  * with automatic version generation
205

    
206
* Overhauling of Synnefo settings: renames and refactoring, for increased
207
  uniformity (in progress)
208
* Deployment: Standardize on gunicorn, with gevent-based workers
209
  and use of Green threads throughout Synnefo
210
* Documentation: New scale-out guide, with distinct node roles,
211
  for mass Synnefo deployments
212

    
213
Astakos
214
-------
215

    
216
* Support multiple authentication methods
217

    
218
  * Classic (username/password), Shibboleth, LDAP/Active Directory,
219
    Google, Twitter, LinkedIn
220
  * Users can enable/disable auth methods, and switch between them
221

    
222
* Introduce a UUID as a global identifier for users, throughout Synnefo
223

    
224
  * The UUID remains constant as the user enables/disables login methods
225

    
226
* Allow users to modify their email address freely
227
* Per-user, per-resource accounting mechanism (quotaholder)
228
* Full quota support, with per-user, per-resource quotas, based on quotaholder
229
* Projects: Users can create and join Projects
230

    
231
  * Projects grant extra resources to their members
232

    
233
* UI Enhancements for quotas and projects
234

    
235
  * distinct Usage tab, showing usage of individual resources
236
  * Project management UI
237
  * New Overview page
238

    
239
Cyclades
240
--------
241

    
242
* Commission resources on quotaholder/Astakos
243
* Support mass creation of flavors
244
* Support for the ExtStorage disk template in Ganeti
245
* Query and report quotas in the UI
246
* Pass VM configuration parameters over a VM-side API (`vmapi`)
247

    
248
  * Do not pass sensitive data as Ganeti OS parameters
249
  * Keep sensitive data in memory caches (memcached) and
250
    never allow them to hit the disk
251

    
252
* Display additional backend information in helpdesk machines list
253
* Allow helpdesk users to search for an account using a known machine id
254
* Helpdesk actions are now logged using the synnefo's common login
255
  infrastructure
256

    
257
Pithos
258
------
259

    
260
* Support storage of blocks on a RADOS backend, for Archipelago
261

    
262
  * new settings:
263
    PITHOS_RADOS_STORAGE, PITHOS_RADOS_POOL_BLOCKS, PITHOS_RADOS_POOL_MAPS
264

    
265
* Rewritten support for public URLs, with admin-selectable length
266

    
267
  * new settings:
268
    PITHOS_PUBLIC_URL_SECURITY, PITHOS_PUBLIC_URL_ALPHABET
269

    
270
* Enable pithos backend to use external quotaholder component
271

    
272
  * new settings:
273
    PITHOS_USE_QUOTAHOLDER, PITHOS_QUOTAHOLDER_URL, PITHOS_QUOTAHOLDER_TOKEN,
274
    PITHOS_QUOTAHOLDER_POOLSIZE
275

    
276
* Moderated version debiting mechanism
277

    
278
  * new setting:
279
    PITHOS_BACKEND_FREE_VERSIONING
280

    
281
* Proxy Astakos user-visible services
282

    
283
  * new settings:
284
    PITHOS_PROXY_USER_SERVICES, PITHOS_USER_CATALOG_URL,
285
    PITHOS_USER_FEEDBACK_URL, PITHOS_USER_LOGIN_URL
286

    
287
Tools
288
-----
289

    
290
* Extend snf-burnin to include testing of Pithos functionality