Red Hat Network Satellite 5.5 Note di rilascio

Transcript

Red Hat Network Satellite 5.5 Note di rilascio
Red Hat Network Satellite 5.5
Note di rilascio
Red Hat Network Satellite
Edizione 1
Daniel Macpherson
Lana Brindley
Athene Chan
Red Hat Network Satellite 5.5 Note di rilascio
Red Hat Network Satellite
Edizione 1
Daniel Macpherso n
Red Hat Engineering Co ntent Services
[email protected] m
Lana Brindley
Red Hat Engineering Co ntent Services
[email protected] m
Athene Chan
Red Hat Engineering Co ntent Services
[email protected] m
Nota Legale
Copyright © 2012 Red Hat, Inc.
T his document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported
License. If you distribute this document, or a modified version of it, you must provide attribution to Red
Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be
removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section
4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo,
and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux ® is the registered trademark of Linus T orvalds in the United States and other countries.
Java ® is a registered trademark of Oracle and/or its affiliates.
XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States
and/or other countries.
MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other
countries.
Node.js ® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or
endorsed by the official Joyent Node.js open source or commercial project.
T he OpenStack ® Word Mark and OpenStack Logo are either registered trademarks/service marks or
trademarks/service marks of the OpenStack Foundation, in the United States and other countries and
are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or
sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Sommario
Benvenuti alle Note di rilascio di RHN Satellite.
Indice
Indice
. . . . . . . . . .1.
Capitolo
. . Contenuti
. . . . . . . . . . .più
. . . .importanti
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . .
. . . . . . . . . .2.
Capitolo
. . Modifiche
. . . . . . . . . . .importanti
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . .
. . . . . . . . . .3.. .Miglioramenti
Capitolo
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5. . . . . . . . . .
. . . . . . . . . .4. .. Correzioni
Capitolo
. . . . . . . . . . . .importanti
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7. . . . . . . . . .
. . . . . . . . . .5.
Capitolo
. . Problematiche
. . . . . . . . . . . . . . . .conosciute
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9. . . . . . . . . .
. . . . . . . . . .6.
Capitolo
. . Informazioni
. . . . . . . . . . . . . relative
. . . . . . . . .agli
. . . .API
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
............
. . . . . . . delle
Diario
. . . . . .Revisioni
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
............
1
Red Hat Network Satellite 5.5 Note di rilascio
2
Capitolo 1. Contenuti più importanti
Capitolo 1. Contenuti più importanti
Di seguito vengono riportate le caratteristiche più importanti presenti con Red Hat Network Satellite 5.5.
abilitazione IPv6
RHN Satellite, RHN Proxy e RHN Client/T ools operano tutti all'interno di un ambiente IPv6.
Limitazioni
Limitazioni: Satellite ha ancora bisogno di IPv4 per le comunicazioni esterne a RHN
Hosted/Classic per permettere a satellite-sync di scaricare il contenuto. Quanto di
seguito riportato non è supportato in IPv6:
PXE Provisioning
Monitoring
Client di Solaris
Gli installer di anaconda più vecchi di Red Hat Enterprise Linux non eseguono alcuna
installazione con IPv6. Consultare le note di rilascio di Red Hat Enterprise Linux per le
istanze idonee ad una installazione di anaconda con IPv6.
Supporto OpenSCAP
RHN Satellite ora fornisce le notifiche sullo stato per il controllo della sicurezza (Security
Content Automation Protocol o SCAP) dei sistemi Red Hat Enterprise Linux in esecuzione
all'interno di ambienti Satellite. Esso include il supporto del client per Red Hat Enterprise Linux
5.8, Red Hat Enterprise Linux 6.2 e per le versioni più recenti.
3
Red Hat Network Satellite 5.5 Note di rilascio
Capitolo 2. Modifiche importanti
Supporto architettura i386
Red Hat Network Satellite e Proxy 5.5 continueranno a supportare le macchine x86 (64-bit) e le
architetture s390x. Satellite e Proxy non supporteranno più l'architettura i386 (32-bit).
Red Hat Network Satellite e Proxy 5.4 supporteranno le macchine i386 (32-bit) fino al 31 di
Marzo del 2017 come riportato dal Ciclo di vita di RHN Satellite e Proxy Server.
4
Capitolo 3. Miglioramenti
Capitolo 3. Miglioramenti
Miglioramenti presenti con il Red Hat Network Satellite 5.5.
Clone-by-date
Permette agli utenti di creare e gestire i canali di Red Hat Enterprise Linux personalizzati-clonati
in base alla data nella quale il contenuto (Errata) è reso disponibile dal canale Red Hat
Enterprise Linux. Con RHN Satellite 5.5, spacewalk-clone-by-date è stato migliorato in
modo da permettere agli utente di clonare solo gli errata sulla sicurezza.
Provisioning per mezzo di interfacce di rete associate
Ora RHN Satellite supporta la possibilità di definire le interfacce di rete associate per le
installazioni Satellite ed il provisioning di sistemi Red Hat Enterprise Linux.
Per le nuove installazioni è possibile utilizzare la WebUI per impostare un networking associato
in un profilo kickstart, anche se non impostato sul sistema prima del processo di installazione di
Satellite.
Limitazioni
Anaconda, l'installer di Red Hat Enterprise Linux, non supporta il networking associato.
Al momento dell'installazione l'installer userà solo una scheda di rete. La rete associata
verrà configurata dopo l'installazione.
Nuovi contenuti dell'API
Di seguito vergono riportate i nuovi contenuti dell'API presenti in questa release:
BZ #760352
Questo nuovo contenuto permette al sistema di accedere al System Currency tramite API.
BZ #782582
Questa funzione permette l'archiviazione degli oggetti programmati senza usare l'interfaccia
web.
BZ #773113
Un miglioramento della funzione dell'API che permette all'utente di conservare il file ks.cfg
attraverso un API.
T ool di gestione del database
BZ #552628
Permette agli amministratori di cambiare la password del database embedded.
Modifiche del file di configurazione
BZ #621531
I file di configurazione in /etc/rhn/default sono stati spostati su
/usr/share/rhn/config-defaults. Per modificare le impostazioni della
configurazione usare /etc/rhn/rhn.conf. Le modifiche eseguite su
/etc/rhn/rhn.conf annulleranno i valori presenti nell'impostazione predefinita in
5
Red Hat Network Satellite 5.5 Note di rilascio
/usr/share/rhn/config-defaults.
6
Capitolo 4. Correzioni importanti
Capitolo 4. Correzioni importanti
Correzioni e soluzioni più importanti presenti con Red Hat Network Satellite 5.5.
BZ #719629
In una installazione per l'aggiornamento di Satellite lo script install.pl non manteneva inalterate le
impostazioni del proxy in /etc/rhn/rhn.conf. Ciò è stato risolto includendo le istruzioni per la
creazione di un file di risposta contenente le impostazioni del proxy corrette e utilizzando il file
stesso nel processo di aggiornamento di Satellite.
BZ #769908
I token per l'autenticazione non venivano gestiti correttamente in una configurazione RHN Proxy
Server a livelli multipli. Il codice usato per la rigenerazione del token di autenticazione dipendeva
dall'intestazione X-RHN-Proxy-Auth-Error nella risposta html per ogni metodo. Ciò è stato
corretto e le informazioni per l'autenticazione vengono ora gestite correttamente tra i RHN Proxy
Server in una configurazione a livelli multipli.
BZ #695257
Solo gli errata conteneti l'ultimissimo pacchetto aggiornabile venivano offerti per l'aggiornamento del
sistema, nel quale in una situazione dove il pacchetto presenta un security erratum più vecchio ed un
erratum non-critico più nuovo, solo l'erratum non-critico veniva offerto per l'aggiornamento. Questa
correzione rende ora disponibile tutti gli errata. Ora sarà possibile visualizzare tutti gli errata di
sicurezza per il sistema.
BZ #807875
In precedenza la directory java heapdump per taskom atic e rhn-search impostava come
predefinito /usr/sbin, usandone tutto il suo spazio molto rapidamente. La directory java heapdump
ora imposta come predefinito /var/crash.
BZ #630953
Le voci duplicate presenti nel database di Satellite, ed in particolare nella tabella rhnCPU, causavano
la presenza di errori nel server interno. Ora è stata implementata una correzione che permette di
avere righe uniche prima di una creazione di un indice unico. Le suddette voci non dovrebbero
apparire ora all'interno del database di Satellite.
BZ #674071
Durante l'esecuzione di numerosi controlli di monitoring con tabelle grandi, questi processi
risultavano in una generazione di messaggi d'errore critici (ORA-00060).
BZ #828795
Dopo la rimozione di un canale figlio le righe presenti nel database non venivano cancellate
automaticamente insieme al canale in questione. Questo processo generava un errore non gestito. A
tal proposito sono state aggiunte alcune regole al database di oracle al momento della creazione
della tabella, ora le righe interessate vengono correttamente rimosse. I dati del database associati
con i canali interessati dovrebbero essere correttamente rimossi.
BZ #705154
Le informazioni su come eseguire una suddivisione presenti negli elenchi a tendina dell'interfaccia
web di Satellite non venivano visualizzate correttamente in "Gestione dell'interfaccia". Sono stati ora
aggiornati e corretti gli elenchi a tendina-selezione-canale di perl, in modo da usare lo stesso ordine
gerarchico delle pagine java. Le informazioni devrebbero essere ora visualizzate in modo più
uniforme.
BZ #695276
Quando un sistema client viene registrato con Satellite Server tramite un server RHN Proxy, koan
cerca di scaricare il file kickstart direttamente dal server di satellite, questo comportamento è causato
da Cobbler. Ciò genera un URLError. Ora cobbler sostituisce l'hostname del server con quello del
primo proxy presente, se koan esegue una richiesta dall'API di cobbler.
7
Red Hat Network Satellite 5.5 Note di rilascio
BZ #742905
Quando una richiesta in un thread viene suddivisa in un compito con thread multipli, satellitesync si blocca durante il download. Il thread che genera il traceback ora è in grado di eseguire lo
sblocco e di scaricare i thread restanti.
8
Capitolo 5. Problematiche conosciute
Capitolo 5. Problematiche conosciute
Problematiche conosciute e soluzioni presenti in RHN Satellite Server 5.5:
Il Monitoring con SELinux in modalità enforcing viene offerto come Anteprima di tecnologia per le
installazioni Red Hat Enterprise Linux 5 e Red Hat Enterprise Linux 6 di RHN Satellite e RHN Proxy.
9
Red Hat Network Satellite 5.5 Note di rilascio
Capitolo 6. Informazioni relative agli API
Nuovi API
canale
listVendorChannels
Elenca tutti i canali software del rivenditore disponibili all'organizzazione dell'utente.
channel.software
rem oveErrata
Rimuove un elenco dato di errata dal canale desiderato.
m ergeErrata
Unisce tutti gli errata di un canale in un altro canale in base alla data di inizio/fine.
rem oveRepo
Rimuove un repositorio
updateRepoURL
Aggiorna l'URL d'origine del repositorio.
updateRepoLabel
Aggiorna l'etichetta del repositorio.
updateRepo
Aggiorna un repositorio ContentSource.
getRepoDetails
Ritorna i dettagli del repositorio dato.
configchannel
getEncodedFileRevision
Ottiene la revisione del file di configurazione specificato.
lookupFileInfo
In base all'elenco di percorsi ed al canale, vengono ritornate le informazioni sulle ultimissime
revisioni dei percorsi.
system.scap
listXccdfScans
Ritorna un elenco di scansioni OpenSCAP terminate per un sistema dato.
getXccdfScanDetails
Ottiene le informazioni di una scansione OpenSCAP XCCDF selezionata.
getXccdfScanRuleResults
Ritorna un elenco completo di RuleResults per una scansione OpenSCAP XCCDF.
scheduleXccdfScan
Programma una scansione OpenSCAP.
system
provisionVirtualGuest
Esegue il provisioning di un guest su un host specifico. Questo metodo API programma il guest
alla creazione, iniziando il processo di provisioning al momento del check-in dell'host. Oppure se
OSAD è stato abilitato, esso verrà eseguito immediatamente. Questo metodo imposta un default
su mac_address=random, memory=512MB, vcpu=1, e storage=3GB.
getSystem CurrencyMultipliers
Ottiene i moltiplicatori del punteggio del System Currency
10
Capitolo 6. Informazioni relative agli API
getSystem CurrencyScores
Ottiene i moltiplicatori del punteggio del System Currency
getUuid
Ottiene l'UUID per un dato ID del sistema.
kickstart.profile
getCfgPreservation
Acquisisce l'opzione ks.cfg per un profilo kickstart.
setCfgPreservation
Imposta l'opzione ks.cfg per un profilo kickstart.
satellite
isMonitoringEnabled
Questo metodo ritornerà un valore "T rue" se monitoring è stato abilitato su satellite.
isMonitoringEnabledBySystem Id
Questo metodo ritornerà un valore "T rue" se monitoring è stato abilitato su satellite.
schedule
archiveActions
Archivia tutte le azioni in un elenco dato.
system.search
uuid
Elenca i sistemi che corrispondono questo UUID.
API modificati (solo modifiche dell'interfaccia)
channel.software.clone
I parametri gpg preferiti sono: gpg_key_url, gpg_key_id, gpg_key_fp. (Il vecchio gpg_url,
gpg_id, e gpg_fingerprint sono stati tenuti per ragioni di compatibilità.)
configchannel.createOrUpdatePath, system .config.createOrUpdatePath
Ora accetta 'binary' per il supporto del caricamento dei binari.
errata.getDetails
Ritorna ora un attributo 'errataFrom '.
errata.setDetails, errata.create
Ora accetta 'errataFrom '. Altresì accetta anche l'attributo 'url' all'interno della struttura del bug.
packages.listChangelog
Ora ritorna una stringa changelog al posto di un numero di mappatture relative.
system .listSubscribedChildChannels, system .getSubscribedBaseChannel,
kickstart.listKickstartableChannels, channel.software.getDetails,
channel.software.listChildren, channel.software.associateRepo,
channel.software.disassociateRepo
Ora ritorna un elenco di contentSources al posto di yum repo_source_url e yum repo_label
configchannel.getFileRevisions, configchannel.getFileRevision,
configchannel.getEncodedFileRevision, configchannel.createOrUpdatePath,
configchannel.lookupFileInfo, system .config.lookupFileInfo,
system .config.createOrUpdatePath
Ora ritorna un attributo 'contents_enc64 '.
channel.software.listErrata, system .getRelevantErrata,
11
Red Hat Network Satellite 5.5 Note di rilascio
system .getRelevantErrataByT ype
Ora ritorna gli attributi 'issue_date' e 'update_date'.
system .getNetworkDevices
Ora ritorna un elenco di strutture dell'indirizzo IPv6.
system .com parePackages, system .com parePackageProfile
Ora ritorna un attributo 'package_arch'.
system .getScriptResults, system .getScriptActionDetails
Ora ritorna un attributo 'output_enc64 '.
system .listPackages
Ora ritorna un attributo 'id'.
system .getNetwork
Ora ritorna un attributo 'ip6'.
API deprecati
channel.listRedHatChannels
Sostituito da channel.listVendorChannels
API rimossi
Raramente vengono rimossi gli API. Se è necessario implementare una nuova funzionalità, allora
verranno introdotte nuove chiamate API.
Nessuno
Bug API
Questo è un elenco di Bugzilla che interessano gli API corretti in Red Hat Network Satellite 5.5.
BZ #698940
La chiamata API activationkey.addChildChannels controllava la presenza del canale
genitore nella chiave di attivazione, prima di aggiungere un canale figlio. Se non rilevato veniva
generata una eccezione. Con l'ultimissima versione, activationkey.addChildChannels
permette la creazione di un canale figlio con una chiave di attivazione senza un canale di base.
BZ #726114
Satellite dovrebbe ignorare i parametri macro-start-delimiter e macro-end-delimiter per la creazione
di una directory. Al contrario tale comportamento genera un errore di traceback. Con questa
correzione configchannel.createOrUpdatePath ora ignora i delimitatori della macro se opera
con una directory.
BZ #735381
In precedenza abilitando auto_errata_update tramite system .setDetails, gli eventi non venivano
programmati correttamente. Questa correzione permetterà una programmazione degli errata update
quando auto_errata_update è stato abilitato tramite system .setDetails.
BZ #736661
All'esecuzione di una chiamata system .config.createOrUpdatePath con lo stesso contenuto
per sistemi multipli veniva generata una eccezione, impedendo così la rimozione dei file di
configurazione non omogenei tramite l'interfaccia grafica di Satellite. Questo aggiornamento
impedisce a system .config.createOrUpdatePath di causare un blocco critico senza
generare eccezioni.
BZ #741477
12
Capitolo 6. Informazioni relative agli API
Il metodo API system.getDmi() non ritornava alcun dato quando il campo "Sistema" nella tabella
RHNSERVERDMI era nullo. La chiamata API dmi.getBios() con valore nullo è stata ora corretta e
system.getDmi() è in grado di ritornare i valori relativi quando RHNSERVERDMI presenta righe vuote.
BZ #743434
Il metodo API system.getDmi() non ritornava alcun dato quando il campo "BIOS_VERSION" nella
tabella RHNSERVERDMI era nullo. La chiamata API dmi.getBios() con valore nullo è stata ora corretta
e system.getDmi() è in grado di ritornare i valori relativi quando RHNSERVERDMI presenta righe
vuote.
BZ #760352
System Currency generava solo una notifica dell'interfaccia web. Una chiamata API è stata aggiunta
al System Currency per la generazione di una notifica API.
BZ #773113
In precedenza il file ks.cfg poteva essere preservato solo tramite l'uso di una casella
nell'interfaccia web. A tale scopo è stato aggiunto un nuovo metodo XMLRPC API il quale permette
alle modifiche in kickstart di preservare ks.cfg ed operare usando un API.
BZ #784288
system .getScriptResults ritornava XML incorretti. Questa correzione impedisce all'API
system .getScriptResults di inviare caratteri XML non validi.
BZ #804706
La documentazione API per deployAllSystems() non mostrava la data quando veniva invocato il
metodo deployAllSystems(). La suddetta documentazione per deployAllSystems() è stata corretta e
include ora il suddetto parametro.
BZ #811875
I canali di configurazione non potevano essere interrogati in quanto il contenuto di channel_label
durante l'interrogazione di system .config.listFiles non corrispondeva all'etichetta ma al
nome del canale. Questa release corregge il suddetto errore. system .config.listFiles ritorna
l'etichetta del canale e non il nome.
BZ #814642
La documentazione API per errata.listPackages era incompleta e non prendeva in considerazione il
valore ritornato. Ora la documentazione è stata aggiornata e presenta sia file che checkstum_type.
BZ #814838
activationkey.listActivationKeys() ritornava, quando invocato, tutte le chiavi di attivazione non solo
quelle pertinenti all'utente. Con questo aggiornamento verranno visualizzate solo le chiavi di
attivazione personalizzate.
BZ #816320
listMyChannels non ritornava i valori corretti del provider_name per i canali creati dall'utente, ed
elencava altresì i canali di Red Hat se in possesso di canali figlio personalizzati. In questa versione
solo i canali posseduti dall'organizzazione dell'utente vengono ritornati dall'API e provider_name
corrisponde ora al nome dell'organizzazione.
BZ #816349
API channel.listSharedChannels elencava non solo i canali dell'organizzazione corrente ma
anche quelli di altre organizzazioni. Questo comportamento è stato corretto. La pagina dei Canali
condivisi e API ritorna solo i canali dall'org corrente.
BZ #816356
In precedenza l'output dell'API channel.listRedHatChannels includeva i canali personalizzati.
Ciò è stato corretto, ora vengono elencati all'interno dell'output di
channel.listRedHatChannels solo i canali di Red Hat.
13
Red Hat Network Satellite 5.5 Note di rilascio
BZ #818447
È ora abilitato il log in verboso delle informazioni caller_ip nel file rhn_web_api.log.
BZ #801463
Alcuni problemi con la gestione del file binario API ne impedivano il suo caircamento, per questo
motivo è stato corretto il modo attraverso il quale configchannel.createOrUpdatePath
gestisce i file binari. È possibile ora usare gli attributi 'binary', altresì
configchannel.lookupFileInfo ritorna ora un contenuto codificato base64 per i file binari. A
causa di questa correzione è possibile eseguire il caricamento dei file binari API.
14
D iario delle Revisioni
Diario delle Revisioni
Revisione 1-16.2.4 00
Rebuild with publican 4.0.0
2013-10-31
Rüdiger Landmann
Revisione 1-16.2
it-IT translation completed
Mon Apr 22 2013
Francesco Valente
Revisione 1-16.1
T ue Apr 16 2013
T erry Chuang
I file della traduzione sono sincronizzati con con le versioni 1-16 dei sorgenti XML
Revisione 1-16
Fri Feb 15 2013
BZ #910713 Piccole modifiche alle date
Athene Chan
Revisione 1-15
T hu Feb 14 2013
BZ #910713 Aggiunto il capitolo "Modifiche importanti"
Athene Chan
Revisione 1-14
Mon Oct 24 2012
BZ #862270 Piccoli errori di battitura
Athene Chan
Revisione 1-13
Mon Oct 22 2012
Athene Chan
BZ #862270 Aggiunto "Modifiche al file di configurazione" nel capitolo Miglioramenti.
Revisione 1-12
Fri Sep 21 2012
Modificato l'anno relativo al Copyright.
Athene Chan
Revisione 1-11
Creazione finale per 5.5
Fri Sep 21 2012
Dan Macpherson
Revisione 1-10
Creazione finale per 5.5
Wed Sept 19 2012
Dan Macpherson
Revisione 1-9
Modifiche QE incorporate.
Wed Sep 19 2012
Athene Chan
Revisione 1-8
Mon Sep 10 2012
T utti gli attributi API standardizzati ad un formato.
Athene Chan
Revisione 1-7
Mon Sep 10 2012
Piccole correzioni grammaticali.
Athene Chan
Revisione 1-6
Mon Sep 10 2012
Athene Chan
BZ #852959 Modificate le nuove API come riportato dalle revisioni tecniche.
Revisione 1-5
T hu Sep 6 2012
Athene Chan
BZ #852959 Aggiunte le API modificate e le API recentemente deprecate.
Revisione 1-4
T ue Sep 4 2012
BZ #852959 Aggiunto BZ #801463 al Bug Fix.
Athene Chan
15
Red Hat Network Satellite 5.5 Note di rilascio
Revisione 1-3
Mon Sep 3 2012
BZ #852959 Modifiche relative alla revisione tecnica.
Athene Chan
Revisione 1-2
Fri Aug 31 2012
BZ #852959 Aggiunto il capitolo 3 Correzioni importanti.
Athene Chan
Revisione 1-1
Fri Aug 24 2012
Aggiunte le funzioni della release
Athene Chan
Revisione 1-0
Fri Aug 24 2012
Preparato per la pubblicazione
Athene Chan
16