Statistics
| Branch: | Tag: | Revision:

root / Changelog @ ed7e736e

History | View | Annotate | Download (30.4 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
v0.15next
10
=============
11

    
12
Released: UNRELEASED
13

    
14
Synnefo-wide
15
------------
16

    
17
* Replace accumulative projects with pool projects:
18

    
19
  * Projects are now viewed as a source of finite resources. A member can
20
    reserve a part of these resources up to a specified limit.
21

    
22
  * Base quota are now offered through a special purpose user-specific base
23
    project, identified with the same UUID as the user.
24

    
25
  * Each actual resource (Cyclades VM, network, floating IP and Pithos
26
    container) is now also associated with a project besides the owner.
27

    
28
  * In resource creation, project defaults to the user-specific base
29
    project, if not specified otherwise. It is also possible to change the
30
    project assignment of an existing resource.
31

    
32
  * All existing resources have been assigned to the respective
33
    user-specific base projects.
34

    
35
Astakos
36
-------
37

    
38
* Decouple projects from applications:
39

    
40
  * Support project creation (by the system) and modification (by a
41
    privileged user) without the need to submit/approve an application.
42

    
43
  * View applications as modifications. When a project is uninitialized
44
    (e.g. an application for a new project is pending), no further
45
    modification is allowed.
46

    
47
  * Applications are removed from the API. A project's last application is
48
    only accessible as part of the project details.
49

    
50
  * Decouple project state from application state; they can be combined by
51
    an API client, if needed.
52

    
53
* Changes concerning quota and pool projects:
54

    
55
  * A project must provide limits for all registered resources. On project
56
    activation, resources missing are automatically completed using a
57
    skeleton.
58

    
59
  * Field `uplimit' of registed resources is exposed as `base_default' and
60
    provide the skeleton for user-specific base projects. A new field
61
    `project_default' is introduce to act as a skeleton for conventional
62
    projects.
63

    
64
  * The quotaholder now also records project quota besides user quota. The
65
    two types of holders are distinguished with a prefix: `user:' and
66
    `project:'.
67

    
68
  * The quota API is extended to make project quota available.
69

    
70
  * Removed setting `ASTAKOS_PROJECTS_VISIBLE'; we now always display
71
    projects in Astakos menu.
72

    
73
* Projects can be set `private', making it accessible only to its owner and
74
  members.
75

    
76
v0.14next
77
=========
78

    
79
Released: UNRELEASED
80

    
81
Synnefo-wide
82
------------
83

    
84
* Integrate Pithos tests in continuous integration.
85

    
86
* Change astakosclient to accept AUTH_URL instead of BASE_URL
87
  ASTAKOS_BASE_URL settings has been removed from Pithos and Cyclades
88
  and has been replaced with ASTAKOS_AUTH_URL. Both Pithos and Cyclades
89
  proxy the Astakos services under ASTAKOS_PROXY_PREFIX path.
90
  ASTAKOS_PROXY_PREFIX by default has a value of '_astakos'.
91
  More specifically, Astakos' identity service is proxied under
92
  '_astakos/identity', Astakos' account service is under '_astakos/account'
93
  and Astakos' ui service is under '_astakos/ui'.
94

    
95
* Add 'mail_admins' handler to 'django.request' logger in order to send email
96
  notifactions to users listed in 'ADMINS' setting about unhandled exceptions
97
  in the code.
98

    
99
* Extend astakosclient to request and validate OAuth 2.0 access tokens
100

    
101
* Change response status code from 400 (Bad Request) to 405 (Not allowed
102
  method) in case of an unexpected request method.
103

    
104
Astakos
105
-------
106

    
107
* Changes in project schema:
108

    
109
  * A Project entry is created when submitting an application for a new
110
    project, rather than on approval. Its state is dependent on the state
111
    of its `reference' application (current definition). Lock Project rather
112
    than Chain (the latter is semantically obsolete).
113

    
114
  * Project states "Active - Pending" and "Suspended - Pending" have been
115
    removed. In management command `project-list', the existence of a pending
116
    modification is indicated by a non-blank `Pending AppID'.
117

    
118
  * Improve recording of project, application, and membership actions.
119

    
120
* Implement API calls for projects.
121

    
122
* Store the base URL of a component. Deployer should provide it when adding
123
  a new component. Service endpoints originating from a component are
124
  expected to match its base URL; otherwise, a warning is issued.
125
  Re-registration with `snf-component-register' affects both the base and
126
  the ui URL.
127

    
128
* Changes in resource and quota handling:
129

    
130
  * New resources are registered with unlimited default base quota,
131
    represented by 2**63-1.
132
  * Each newly accepted user copies the default value for all resources
133
    as their own base quota. A base quota is considered 'custom' if its
134
    value differs from the default.
135
  * Changing resource's default quota affects the base quota *only* of
136
    future users.
137
  * Resource definition got flags 'api_visible' and 'ui_visible',
138
    replacing flag 'allow_in_projects'. They control whether a user can
139
    access these resources. The system internally always accounts for
140
    all resources, and a user can get off quota even for a resource that
141
    is not visible.
142

    
143
* Remove API call GET /account/v1.0/authenticate in favor of
144
  POST /identity/v2.0/tokens.
145

    
146
* Export basic statistics about Astakos service from '/admin/stats/detail' API
147
  endpoint. Access to this endpoint is only allowed to users that belong to
148
  the Astakos groups that are defined in the
149
  'ASTAKOS_ADMIN_STATS_PERMITTED_GROUPS' setting. Statistics are also availble
150
  from 'snf-manage stats-astakos' management command.
151

    
152
* Implement OAuth 2.0 Authorization Code Grant
153
  Add API calls for authorization code and access token generation
154

    
155
* Add API call for validating OAuth 2.0 access tokens
156

    
157
* **Shibboleth module** Extract unique identifier from the
158
  ``REMOTE_USER`` header.
159

    
160
* Automatically fill third party signup form fields when available by the
161
  the third party provider.
162

    
163
* Omit validation issues for non-required metadata values received from the 
164
  third party authentication provider.
165

    
166
* Management commands:
167

    
168
  * Introduced new commands:
169
	* component-show
170
	* quota-list (replacing quota, supports various filters)
171
	* quota-verify (replacing quota)
172
	* oauth2-client-add (register OAuth 2.0 client)
173
	* oauth2-client-list (list registered oauth 2.0 clients)
174
	* oauth2-client-remove (remove OAuth 2.0 client)
175
  * Changed commands:
176
	* component-add got options --base-url and --ui-url
177
	* resource-modify --limit became --default-quota
178
	* user-modify can operate on multiple users with --all and --exclude
179
	* user-modify --set-base-quota became --base-quota
180
  * Removed commands:
181
	* quota
182
	* resource-import (subsumed by service-import)
183
	* resource-export-astakos (subsumed by service-export-astakos)
184

    
185
Cyclades
186
--------
187

    
188
* Major changes to Cyclades networks:
189

    
190
  * Implement 'cyclades_network' service, containing the /networks, /ports,
191
    /subnets and /floatingips API endpoints under '/network/v2.0'. The old
192
    /networks API of 'cyclades_compute' (under /compute/v2.0) is
193
    removed.
194
  * Implement `snf-manage subnet-{create, list, modify, inspect}' management
195
    commands for handling of subnets.
196
  * Implement `snf-manage port-{create, list, remove, inspect}' management
197
    commands for handling of ports.
198
  * Add two new settings, 'CYCLADES_FORCED_SERVER_NETWORKS' and
199
    'CYCLADES_DEFAULT_SERVER_NETWORKS' to control the networks that newly
200
    created servers will be connected.
201

    
202
* Implement Floating IP addresses, which are IPv4 addresses that can be
203
  dynamically added and removed to a running server.
204

    
205
  * Add new 'cyclades.floating_ip' resource.
206
  * Implement 'snf-manage floating-ip-{create,list,remove,attach,detach}'
207
    management commands to handle floating IPs.
208
  * Add 'floating_ip_pool' attribute to networks to mark networks that can
209
    be used as floating IP pools.
210

    
211
* Implement 'resize' server action.
212

    
213
  * Implement the 'resize' server action, to change the flavor of a server.
214
    Only 'cpu' and 'memory' resizing is supported.
215

    
216
* Compute quotas for CPU and memory of running vms.
217

    
218
  * Change 'cyclades.cpu' and 'cyclades.ram' resources to represent the CPU
219
    and RAM for running VMs. Total CPU and RAM usage is represented by new
220
    'cyclades.total_cpu' and 'cyclades.total_ram' resources.
221

    
222
* Refer to Ganeti NICs by their name instead of their index.
223

    
224
  * Make cyclades give a unique name to each Ganeti NIC. NICs are refered by
225
    their unique name and not by their index inside the VM that are connected
226
    to.
227

    
228
* Support firewall profile for all NICs of an instance. Change firewall
229
  settings to be filled with the unique name of the NIC. The affected settings
230
  are the GANETI_FIREWALL_{ENABLED, DISABLED, PROTECTED}_TAG settings.
231
* Add accounting for public IP addresses that is accessible via `snf-manage
232
  ip-list` management command and via the helpdesk app.
233
* Implement IPv6 only networks.
234
* Extend servers info API response with 'SNF:fqdn' attribute, and introduce
235
  CYCLADES_SERVERS_FQDN to set the template for servers FDQN. Remove
236
  'UI_VM_HOSTNAME_FORMAT' setting.
237
* Extend servers info API response with 'SNF:port_forwarding' attribute,
238
  describing port fowarding rules (DNAT) that are applied to vms. The
239
  description of such rules is done via the new CYCLADES_PORT_FORWARDING
240
  setting.
241
* Speed up server reconciliation, by performing parallel reconciliation for
242
  each backend.
243
* Change --dhcp option of network management commands from a flag to a boolean
244
  value, e.g. --dhcp=True
245
* Remove 'ARCHIPELAGO_BACKENDS' setting used to distinquish between backends
246
  that hosted only archipelago backends. Instead allocation is based on which
247
  disk-templates are enabled in each backend.
248
* Implement 'snf-manage server-remove' management command.
249
* Move reconciliation of IP pools from 'reconcile-networks' to
250
  'reconcile-pools'. The IP pool reconciliation does not reconcile the IP
251
  pools with Ganeti. Instead it checks if the pool is consistent with the
252
  IPs that are used by instances.
253
* Do not automatically release externally reserved IPs if they are released
254
  from a Ganeti backend. Management of externally reserved IPs must be
255
  performed from Cyclades with 'network-modify' command.
256
* Export basic statistics about Cyclades Service from '/admin/stats/detail'
257
  API endpoint. Access to this endpoint is only allowed to users that belong
258
  to the Astakos groups that are defined in the 'ADMIN_STATS_PERMITTED_GROUPS'
259
  setting.  Statistics are also availble from 'snf-manage stats-cyclades'
260
  management command.
261
* Support enforcing quota through command 'enforce-resources-cyclades'.
262
* Remove command 'resource-export-cyclades' subsumed by
263
  'service-export-cyclades'.
264
* Obsolete PUBLIC_USE_POOL setting, since Cyclades manages IP pool for all
265
  type of networks.
266
* Encrypt / decrypt the instance id / hostname in the  stats URL in
267
  snf-cyclades-app and snf-stats-app, using the 'CYCLADES_STATS_SECRET_KEY'
268
  and 'STATS_SECRET_KEY' respectively.
269
* Add support for snf-vncauthproxy-1.5 and the setting
270
  'CYCLADES_VNCAUTHPROXY_OPTS', which configures the extra options / arguments
271
  needed by the newer version of snf-vncauthproxy. Support for older versions
272
  of snf-vncauthproxy has been dropped. See also the upgrade notes for Synnefo
273
  and snf-vncauthproxy-1.5.
274
* Remove 'DEFAULT_ROUTING_TABLE' setting. If a link for an IP_LESS_ROUTED
275
  network is not specified, the link will be uniquely named
276
  'snf-link-$network_id'.
277
* Extend flavors with 'allow_create' attribute. Flavors that have this
278
  attribute unset cannot be used by users to create new servers.
279

    
280

    
281
Cyclades UI
282
-----------
283

    
284
- Retrieve all networks information from the introduced cyclades network
285
  service.
286
- New IPs pane from which user can manage floating IPs.
287
- Redesign public keys overlay as an additional pane view.
288
- Split networking configuration into an additional step in machine create
289
  wizard.
290
- Display forced networks and choices of the available floating IPs which will
291
  be assigned to the created machine.
292
- Support for machine resize action. Explicit handling when machine is started
293
  by displaying an utility shutdown button within the resize overlay.
294
- Machine IPs toggling subview in icon/single views.
295
- Replace IPv4/IPv6 with machine's FQDN in icon/single view. When no FQDN can
296
  be resolved display a message. Message can be configured using the introduced
297
  ``UI_NO_FQDN_MESSAGE``. Setting ``UI_VM_HOSTNAME_FORMAT`` has been removed
298
  and no longer used.
299
- Respect ``SNF:task_state`` machine attribute in order to improve machine
300
  status display.
301
- Append software version as a url parameter in HTML static files in order
302
  to force browser cache invalidation between versions.
303
- Configurable Google fonts base url. Fonts base url can be changed usint the
304
  ``SYNNEFO_FONTS_BASE_URL`` setting.
305
- Regression fix: Display reboot required notification on machine firewall
306
  parameters.
307
- Handling of ``GANETI_USE_HOTPLUG`` setting. Do not allow live network actions
308
  when setting is set to ``False``.
309
- Double escaping fix in machine create wizard images list and machine details
310
  subview.
311
- Fix image ordering in machine create wizard.
312
- New setting ``UI_SSH_SUPPORT_OSFAMILY_EXCLUDE_LIST``. A list of image OS
313
  families for which ui will disable ssh key injection in machine wizard.
314
- Setting ``UI_SUPPORT_SSH_OS_LIST`` removed and no longer used.
315
- Group public networks by name if setting ``UI_GROUP_PUBLIC_NETWORKS`` is set 
316
  to True.
317
- Setting ``UI_GROUPED_PUBLIC_NETWORK_NAME`` has been deprecated and no longer 
318
  used.
319

    
320

    
321
Cyclades Userdata
322
-----------------
323

    
324
- Maximum allowed length of ssh key content. Configurable from the 
325
  ``USERDATA_SSH_KEY_MAX_CONTENT_SIZE`` setting.
326

    
327

    
328
Pithos
329
------
330

    
331
* Rewrite tests.
332
* Performance optimizations in object listing.
333
* Introduce backend method decorator for handling transaction management if no
334
  transaction is initiated from the frontend.
335
* Fix Internal Server Errors https://code.grnet.gr/issues/4501 &
336
  https://code.grnet.gr/issues/4502.
337
* Fix REQUEST ENTITY TOO LARGE request failure during move operations
338
  https://code.grnet.gr/issues/4154.
339
* Fix FORBIDDEN request failure while listing implicitly shared objects
340
  https://code.grnet.gr/issues/4131.
341
* Fix issue with the computed size of an updated object.
342
* Reply with the Merkle hash in the ETag header if MD5 is deactivated.
343
* Reply with FORBIDDEN (403) to public listing requests performed by non path
344
  owners.
345
* Change response status to NOT FOUND (404) while trying to delete an
346
  already deleted object.
347
* Change SQLAlchemy version to 0.7
348
* Change view authorization
349
  The pithos views do not use the cookie information for user authentication.
350
  They request (from Astakos) and use a short-term access token for a
351
  specific resource.
352
* Remove PITHOS_ASTAKOS_COOKIE_NAME setting, since it is no longer useful
353
* Add PITHOS_OAUTH2_CLIENT_CREDENTIALS setting to authenticate the views with
354
  astakos during the resource access token generation procedure
355
* Add PITHOS_UNSAFE_DOMAIN setting to restrict file serving endpoints to a
356
  specific host
357
* Added new 'file-show' management command
358
* Remove command 'resource-export-pithos' subsumed by 'service-export-pithos'.
359

    
360
.. _Changelog-0.14.10:
361

    
362
v0.14.10
363
=======
364

    
365
Released: Tue Nov 26 11:03:37 EET 2013
366

    
367
Cyclades
368
-------
369

    
370
* This is the first release to support Ganeti 2.8. Support for older versions
371
  of Ganeti is dropped.
372
* Use Ganeti opportunistic locking to achive parallelized instance creations
373
  in the same backend. Add setting 'GANETI_USE_OPPORTUNISTIC_LOCKING' to
374
  enable the use of this feature.
375
* Fix warning message while getting object permissions to appear only when
376
  path is None and the object has permissions
377
* Add name to newly created NICs and the corresponding firewall tags.
378

    
379
.. _Changelog-0.14.9:
380

    
381
v0.14.9
382
=======
383

    
384
Released: Mon Nov 11 12:13:31 EET 2013
385

    
386
* Astakos: Fix minor problems with logging in the Astakos module, which could
387
  lead to unexpected exceptions
388

    
389
.. _Changelog-0.14.8:
390

    
391
v0.14.8
392
=======
393

    
394
Released: Fri Nov  8 17:25:08 EET 2013
395

    
396
Synnefo-wide
397
------------
398

    
399
* This is the first release to support Debian Wheezy along with Squeeze. You
400
  can mix and match nodes freely.
401
* Update Django dependency to Django>=1.2,<1.5. Django 1.4.5 is available for
402
  Squeeze through squeeze-backports.
403
* Since this version, Synnefo ships an example Gunicorn configuration file
404
  that is automatically installed at ``/etc/gunicorn.d/synnefo.example``.
405

    
406
Cyclades
407
--------
408

    
409
* On VM creation, pass the hashmap of the image (pithosmap://) instead of the
410
  image URL (pithos://). Access to the Pithos DB by Ganeti nodes is no longer
411
  required.
412
* Workaround race between server creation and server deletion. This will be
413
  fixed properly by updating Ganeti to support the 'depends' attribute for
414
  OP_INSTANCE_REMOVE.
415

    
416
Astakos
417
-------
418

    
419
* For Shibboleth logins, store all attributes along with the user in the DB.
420

    
421
.. _Changelog-0.14.7:
422

    
423
v0.14.7
424
=======
425

    
426
Released: Wed Sep 18 17:50:12 EEST 2013
427

    
428
Cyclades
429
--------
430

    
431
* Fix bug in helpdesk view
432

    
433
.. _Changelog-0.14.6:
434

    
435
v0.14.6
436
=======
437

    
438
Released: Wed Sep 18 16:18:58 EEST 2013
439

    
440
Pithos
441
------
442

    
443
* Substitute the PITHOS_BACKEND_QUOTA setting with two
444
  distinct settings: PITHOS_BACKEND_ACCOUNT_QUOTA &
445
  PITHOS_BACKEND_CONTAINER_QUOTA
446
* Set PITHOS_BACKEND_CONTAINER_QUOTA default value to 0 (unlimited)
447
* Fix bug that resulted in DB deadlocks.
448

    
449
Cyclades
450
--------
451

    
452
* Fix bug in snf-dispatcher that resulted in servers to be deleted from the
453
  DB even if the corresponding Ganeti job failed.
454

    
455
Branding
456
--------
457

    
458
* Add new BRANDING_FOOTER_EXTRA_MESSAGE setting.
459

    
460

    
461
.. _Changelog-0.14.5:
462

    
463
v0.14.5
464
=======
465

    
466
Released: Wed Aug  7 11:19:49 EEST 2013
467

    
468
Pithos
469
------
470

    
471
* Fix security issue with handling Pithos versions.
472

    
473

    
474
.. _Changelog-0.14.4:
475

    
476
v0.14.4
477
=======
478

    
479
Released: Mon Jul 29 12:24:22 EEST 2013
480

    
481
Pithos
482
------
483

    
484
* Fix bug in reconcile resources management command.
485

    
486

    
487
.. _Changelog-0.14.3:
488

    
489
v0.14.3
490
=======
491

    
492
Released: Thu Jul 25 12:22:47 EEST 2013
493

    
494
Synnefo-wide
495
------------
496

    
497
* Use the SYNNEFO_TRACE environmental variable to control whether the greenlet
498
  tracing code will get loaded or not.
499
* Split the HIDDEN_COOKIES setting in HIDDEN_HEADERS and HIDDEN_COOKIES, and
500
  add the MAIL_MAX_LEN setting, to limit the mail size for unhandled
501
  exceptions.
502

    
503

    
504
.. _Changelog-0.14.2:
505

    
506
Released: Fri Jul 12 13:13:32 EEST 2013
507

    
508
v0.14.2
509
=======
510

    
511
Cyclades
512
--------
513

    
514
* Add new setting PITHOS_BACKEND_POOL_SIZE, which configures the size
515
  of the pool of Pithos backends that are used by plankton.
516

    
517
Pithos
518
------
519

    
520
* Refactor metadata schema (table attributes) in Pithos DB to speedup current
521
objects by domain attribute. This is used by Plankton for listing VM images.
522

    
523

    
524
.. _Changelog-0.14:
525

    
526
v0.14
527
=====
528

    
529
Released: Tue Jun 25 14:01:19 EEST 2013
530

    
531
Synnefo-wide
532
------------
533

    
534
* Create 'snf_django' Python package to hold common code for all Synnefo
535
  components.
536

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

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

    
546
* Deprecate CLOUDBAR_ACTIVE_SERVICE setting from all apps.
547

    
548
* Common synnefo 404/500 templates (located in snf-webproject)
549

    
550
Astakos
551
-------
552

    
553
* Redesign of the accounting system (quotaholder) and integration into
554
  Astakos.
555

    
556
  * Simplified the quotaholder model; removed tables Entity and Policy; now
557
    table Holding contains limit and usage for every holding.
558
  * Extended table Holding, so that we can keep track of quota for every
559
    valid combination of holder (e.g. user), resource, and source (e.g. the
560
    default system or some specific project).
561
  * Refactored code for issuing and resolving commissions for robustness;
562
    added a 'force' option to bypass the upper limit check when issuing a
563
    commission.
564
  * Simplified syncing to the quotaholder; removed fields from models
565
    Project and ProjectMembership, previously needed for syncing; removed
566
    state PROJECT_DEACTIVATED from ProjectMembership.
567
  * Removed settings ASTAKOS_QUOTAHOLDER_URL, ASTAKOS_QUOTAHOLDER_TOKEN,
568
    and ASTAKOS_QUOTAHOLDER_POOLSIZE.
569

    
570
* API-related changes:
571

    
572
  * Implemented API calls for quota, resources, and commissions.
573
  * Moved all API calls under '/account/v1.0'.
574
  * Implemented the keystone API call POST /tokens under '/identity/v2.0'.
575

    
576
* Service and resource specification and handling:
577

    
578
  * Specified a format for defining services along with the API endpoints
579
    and the resources they expose. Migrated internal resource name by
580
    prefixing it with service name (e.g. 'vm' becomes 'cyclades.vm');
581
    renamed registered service 'pithos+' to 'pithos'.
582
  * Specified a procedure to register a Synnefo component, its services and
583
    their resources in astakos and set the resources' default base quota
584
    limit. Removed resource definitions from settings.
585
  * Moved service and resource presentation data out of the respective db
586
    models into a separate file of UI constants.
587

    
588
* Converted the limit on pending applications from a setting to a quotable
589
  resource. Converted the related user setting to a user-specific base quota
590
  limit. Deprecated model UserSetting; removed setting
591
  ASTAKOS_PENDING_APPLICATION_LIMIT.
592

    
593
* Changes in locking strategy:
594

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

    
600
* Changes in views:
601

    
602
  * Replaced custom transaction context with a simple decorator for managing
603
    transactions and a context 'ExceptionHandler', which logs and suppresses
604
    exceptions
605

    
606
* Added fine grain user auth provider's policies.
607

    
608
  * Administrator can override default auth provider policies to a specific
609
    user or group of users.
610
  * Optionally a user can be assigned to a list of groups, based on the
611
    authentication method he choosed to signup.
612

    
613
* Removed explicit handling of SMTP errors on each email delivery. Exceptions
614
  are now propagated to base django exception handler.
615

    
616
* Email used in html/email tempaltes which prompt user to contact for service
617
  support prompts is now defined in ``CONTACT_EMAIL`` setting introduced in
618
  snf-common settings.
619

    
620
* Improvements in user activation flow
621

    
622
  * User moderation now takes place after the user has verified his email
623
    address.
624
  * User model enriched with additional user state fields
625
  * Split activation email from moderation process. Administrator is required
626
    to moderate user explicitly using the `user-modify --accept` or
627
    `user-modify --reject` commands.
628
  * Improved logging throught out user activation procedures.
629

    
630
* Remove deprecated AstakosUser model fields: `provider`,
631
  `third_party_identifier`
632

    
633
* Allow override of authentication provider messages using the following
634
  format in setting names: ``ASTAKOS_<PROVIDER_MODULE>_<MSGID>_MSG``
635

    
636
* Cloudbar automatically tries to identify the active service based on window
637
  location.
638

    
639
* Removing authentication provider view is now CSRF protected.
640

    
641
* New `API access` view, containing useful information to users on how to
642
  access available Synnefo services API's.
643

    
644
* Remove of ASTAKOS_*_EMAIL_SUBJECT settings. All email subjects are now
645
  defined in astakos.im.messages module. Overriding default values can be
646
  achieved using custom gettext files or using astakos messages settings::
647

    
648
	#change of greeting email subject
649
  	ASTAKOS_GREETING_EMAIL_SUBJECT_MESSAGE = 'Welcome to my cloud'
650

    
651
* Remove ``ASTAKOS_ACTIVATION_REDIRECT_URL`` and ``ASTAKOS_LOGIN_SUCCESS_URL``
652
  from astakos .conf file. Settings are dynamically computed based on
653
  ``ASTAKOS_BASE_URL``.
654

    
655
* Management commands:
656

    
657
  * Introduced new commands:
658
     * authpolicy-{add, list, remove, set, show}
659
     * group-{add, list}
660
     * component-{add, list, modify, remove}
661
     * reconcile-resources-astakos
662
     * resource-{export-astakos, import, modify}
663
     * service-{export-astakos, import, show}
664
  * Renamed commands:
665
     * astakos-quota to quota
666
     * user-update to user-modify
667
     * full-cleanup to cleanup-full
668
  * Removed commands:
669
     * astakos-init
670
     * invitation-{details, list}
671
     * project-sync
672
     * resource-{add, remove}
673
     * service-{add, remove, token-renew, update}
674
     * user-invite
675
     * user-set-initial-quota (integrated its functionality in user-modify and quota)
676
  * Added quota and project-related information in user-show command; added
677
    membership information in project-show.
678

    
679
Cyclades
680
--------
681

    
682
* Make 'type' attribute required for network create API request.
683
* Networks not created to all Ganeti backends upon creation, they are instead
684
  created to a backend only when a VM connects to the network.
685
* Add 'CYCLADES_ASTAKOSCLIENT_POOLSIZE' setting which tunes the size of the
686
  http connection pool to astakos.
687
* Remove 'CYCLADES_USER_CATALOG_URL' and 'CYCLADES_USER_FEEDBACK_URL' settings
688
* Remove CYCLADES_USE_QUOTAHOLDER, CYCLADES_QUOTAHOLDER_TOKEN,
689
  CYCLADES_QUOTAHOLDER_URL, CYCLADES_QUOTAHOLDER_POOLSIZE settings
690
* Rename 'cyclades-usage-verify' management command to
691
  'reconcile-resources-cyclades'. Also, remove 'cyclades-usage-reset' command,
692
  which is equivalent to 'reconcile-resources-cyclades --fix'.
693
* Rename 'cyclades-reconcile-commissions' management command to
694
  'reconcile-commissions-cyclades'.
695
* Remove obsolete 'MAX_VMS_PER_USER', 'MAX_NETWORKS_PER_USER',
696
  "VMS_USER_QUOTA" and "NETWORKS_USER_QUOTA" settings, since their usage
697
  is covered by Quotaholder.
698
* Remove obsolete setting 'API_ROOT_URL', since it is being covered by
699
  the use of CYCLADES_BASE_URL* Remove obsolete setting 'API_ROOT_URL', since
700
  it is being covered by 'CYCLADES_BASE_URL'.
701
* Remove obsolete settings GANETI_DISK_TEMPLATES and
702
  DEFAULT_GANETI_DISK_TEMPLATE
703

    
704
Cyclades helpdesk
705
-----------------
706

    
707
* Additional start/stop vm action
708
* Display extend backend info in vm's view
709
* Fixed IP lookup
710

    
711
Pithos
712
------
713

    
714
* Remove PITHOS_AUTHENTICATION_USERS setting, which was used to override
715
  astakos users.
716
* Remove 'PITHOS_USER_CATALOG_URL', 'PITHOS_USER_FEEDBACK_URL' and
717
  'PITHOS_USER_LOGIN_URL' settings.
718
* Remove PITHOS_USE_QUOTAHOLDER, PITHOS_QUOTAHOLDER_URL,
719
  PITHOS_QUOTAHOLDER_TOKEN and PITHOS_ASTAKOSCLIENT_POOLSIZE
720

    
721
* Enforce container-level atomicity in (most) Pithos API calls.
722

    
723

    
724
Tools
725
-----
726

    
727

    
728
.. _Changelog-0.13:
729

    
730
v0.13
731
=====
732

    
733
Released: Wed Apr 10 18:52:50 EEST 2013
734

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

    
741
Synnefo-wide
742
------------
743

    
744
* Support for pooling throughout Synnefo
745

    
746
  * Pooled Django DB connections, Pithos backend connections, HTTP
747
    connections using single `objpool` package
748

    
749
* Improved management commands
750

    
751
  * Unified codebase for output of tables in JSON, CSV
752

    
753
* Bring most of Synnefo code inside a single, unified repository
754

    
755
  * support automatic Python and Debian package builds for individual commits
756
  * with automatic version generation
757

    
758
* Overhauling of Synnefo settings: renames and refactoring, for increased
759
  uniformity (in progress)
760
* Deployment: Standardize on gunicorn, with gevent-based workers
761
  and use of Green threads throughout Synnefo
762
* Documentation: New scale-out guide, with distinct node roles,
763
  for mass Synnefo deployments
764

    
765
Astakos
766
-------
767

    
768
* Support multiple authentication methods
769

    
770
  * Classic (username/password), Shibboleth, LDAP/Active Directory,
771
    Google, Twitter, LinkedIn
772
  * Users can enable/disable auth methods, and switch between them
773

    
774
* Introduce a UUID as a global identifier for users, throughout Synnefo
775

    
776
  * The UUID remains constant as the user enables/disables login methods
777

    
778
* Allow users to modify their email address freely
779
* Per-user, per-resource accounting mechanism (quotaholder)
780
* Full quota support, with per-user, per-resource quotas, based on quotaholder
781
* Projects: Users can create and join Projects
782

    
783
  * Projects grant extra resources to their members
784

    
785
* UI Enhancements for quotas and projects
786

    
787
  * distinct Usage tab, showing usage of individual resources
788
  * Project management UI
789
  * New Overview page
790

    
791
* refactored/improved /login endpoint used by desktop/mobile clients.
792
  * endpoint url is now exposed by `weblogin` service
793
  * clients should use unauthenticated identity/tokens api to resolve the
794
    endpoint url
795
  * view only allows redirects to `pithos://` scheme urls
796
  * removed uuid from redirect parameters. Client should use authenticated
797
    request to identity/tokens to retrieve user uuid.
798

    
799

    
800
Cyclades
801
--------
802

    
803
* Commission resources on quotaholder/Astakos
804
* Support mass creation of flavors
805
* Support for the ExtStorage disk template in Ganeti
806
* Query and report quotas in the UI
807
* Pass VM configuration parameters over a VM-side API (`vmapi`)
808

    
809
  * Do not pass sensitive data as Ganeti OS parameters
810
  * Keep sensitive data in memory caches (memcached) and
811
    never allow them to hit the disk
812

    
813
* Display additional backend information in helpdesk machines list
814
* Allow helpdesk users to search for an account using a known machine id
815
* Helpdesk actions are now logged using the synnefo's common login
816
  infrastructure
817

    
818
UI
819
^^
820
* Removed feedback endpoint. Feedback requests delegate to astakos feedback
821
  service. ``FEEDBACK_CONTACTS``, ``FEEDBACK_EMAIL_FROM`` settings removed,
822
  and no longer used.
823
* ``UI_LOGIN_URL``, ``UI_GLANCE_URL``, ``COMPUTE_URL`` settings no longer
824
  required to be set and are dynamically computed based on ``ASTAKOS_BASE_URL``
825
  and ``CYCLADES_BASE_URL`` settings.
826
* File group is no longer included in ssh keys personality metadata sent in
827
  create vm calls.
828

    
829

    
830
Pithos
831
------
832

    
833
* Support storage of blocks on a RADOS backend, for Archipelago
834

    
835
  * new settings:
836
    PITHOS_RADOS_STORAGE, PITHOS_RADOS_POOL_BLOCKS, PITHOS_RADOS_POOL_MAPS
837

    
838
* X-Object-Public now contains full url (domain + proper component prefix +
839
  file path)
840

    
841
* Rewritten support for public URLs, with admin-selectable length
842

    
843
  * new settings:
844
    PITHOS_PUBLIC_URL_SECURITY, PITHOS_PUBLIC_URL_ALPHABET
845

    
846
* Enable pithos backend to use external quotaholder component
847

    
848
  * new settings:
849
    PITHOS_USE_QUOTAHOLDER, PITHOS_QUOTAHOLDER_URL, PITHOS_QUOTAHOLDER_TOKEN,
850
    PITHOS_QUOTAHOLDER_POOLSIZE
851

    
852
* Moderated version debiting mechanism
853

    
854
  * new setting:
855
    PITHOS_BACKEND_FREE_VERSIONING
856

    
857
* Proxy Astakos user-visible services
858

    
859
  * new settings:
860
    PITHOS_PROXY_USER_SERVICES, PITHOS_USER_CATALOG_URL,
861
    PITHOS_USER_FEEDBACK_URL, PITHOS_USER_LOGIN_URL
862

    
863
Tools
864
-----
865

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