€cdocutils.nodes document q)q}q(U nametypesq}q(X/use case 42 - update system metadata propertiesqNXgoalqNXtriggersqNXprocessq NXsummaryq NX preconditionsq NXuc42q ˆXpost conditionsq NXactorsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hU-use-case-42-update-system-metadata-propertiesqhUgoalqhUtriggersqh Uprocessqh Usummaryqh U preconditionsqh Uuc42qh Upost-conditionsqhUactorsq uUchildrenq!]q"(cdocutils.nodes target q#)q$}q%(U rawsourceq&X .. _UC42:Uparentq'hUsourceq(Xj/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/UseCases/42_uc.txtq)Utagnameq*Utargetq+U attributesq,}q-(Uidsq.]Ubackrefsq/]Udupnamesq0]Uclassesq1]Unamesq2]Urefidq3huUlineq4KUdocumentq5hh!]ubcdocutils.nodes section q6)q7}q8(h&Uh'hh(h)Uexpect_referenced_by_nameq9}q:h h$sh*Usectionq;h,}q<(h0]h1]h/]h.]q=(hheh2]q>(hh euh4Kh5hUexpect_referenced_by_idq?}q@hh$sh!]qA(cdocutils.nodes title qB)qC}qD(h&X/Use Case 42 - Update System Metadata PropertiesqEh'h7h(h)h*UtitleqFh,}qG(h0]h1]h/]h.]h2]uh4Kh5hh!]qHcdocutils.nodes Text qIX/Use Case 42 - Update System Metadata PropertiesqJ…qK}qL(h&hEh'hCubaubcsphinx.addnodes index qM)qN}qO(h&Uh'h7h(h)h*UindexqPh,}qQ(h.]h/]h0]h1]h2]UentriesqR]qS((UsingleqTX Use Case 42Uindex-0qUUNtqV(hTXupdate system metadatahUUNtqW(hTXUC42hUUNtqXeUinlineqY‰uh4Kh5hh!]ubh#)qZ}q[(h&Uh'h7h(h)h*h+h,}q\(h.]h/]h0]h1]h2]h3hUuh4Kh5hh!]ubh6)q]}q^(h&Uh'h7h(h)h9}h*h;h,}q_(h0]h1]h/]h.]q`(hhUeh2]qahauh4K h5hh?}qbhUhZsh!]qc(hB)qd}qe(h&XGoalqfh'h]h(h)h*hFh,}qg(h0]h1]h/]h.]h2]uh4K h5hh!]qhhIXGoalqi…qj}qk(h&hfh'hdubaubcdocutils.nodes paragraph ql)qm}qn(h&X,Alter mutable properties of System Metadata.qoh'h]h(h)h*U paragraphqph,}qq(h0]h1]h/]h.]h2]uh4K h5hh!]qrhIX,Alter mutable properties of System Metadata.qs…qt}qu(h&hoh'hmubaubeubh6)qv}qw(h&Uh'h7h(h)h*h;h,}qx(h0]h1]h/]h.]qyhah2]qzh auh4Kh5hh!]q{(hB)q|}q}(h&XSummaryq~h'hvh(h)h*hFh,}q(h0]h1]h/]h.]h2]uh4Kh5hh!]q€hIXSummaryq…q‚}qƒ(h&h~h'h|ubaubhl)q„}q…(h&XªSystem Metadata provides low level information about each object in DataONE and inlcudes properties that are immutable and others that may be mutated by different agents.q†h'hvh(h)h*hph,}q‡(h0]h1]h/]h.]h2]uh4Kh5hh!]qˆhIXªSystem Metadata provides low level information about each object in DataONE and inlcudes properties that are immutable and others that may be mutated by different agents.q‰…qŠ}q‹(h&h†h'h„ubaubhl)qŒ}q(h&XtThis use case desribes the general pattern of updating System Metadata properties by agents with authority to do so.qŽh'hvh(h)h*hph,}q(h0]h1]h/]h.]h2]uh4Kh5hh!]qhIXtThis use case desribes the general pattern of updating System Metadata properties by agents with authority to do so.q‘…q’}q“(h&hŽh'hŒubaubhl)q”}q•(h&X’In version 1.x of the DataONE infrastructure, System Metadata may only be altered through Coordinating Nodes (after creation and synchronization).q–h'hvh(h)h*hph,}q—(h0]h1]h/]h.]h2]uh4Kh5hh!]q˜hIX’In version 1.x of the DataONE infrastructure, System Metadata may only be altered through Coordinating Nodes (after creation and synchronization).q™…qš}q›(h&h–h'h”ubaubhl)qœ}q(h&X–In version 2.x of the DataONE infrastructure, properties of System Metadata are managed by the Authoritative Member Node with the exception of Replica information, which is managed by the Coordinating Nodes. In version 2.x, the System Metadata serialVersion property is only updated by Coordinating Nodes during replication processing. Only the Authoritative Member Node can update dataSysMetadataModified.qžh'hvh(h)h*hph,}qŸ(h0]h1]h/]h.]h2]uh4Kh5hh!]q hIX–In version 2.x of the DataONE infrastructure, properties of System Metadata are managed by the Authoritative Member Node with the exception of Replica information, which is managed by the Coordinating Nodes. In version 2.x, the System Metadata serialVersion property is only updated by Coordinating Nodes during replication processing. Only the Authoritative Member Node can update dataSysMetadataModified.q¡…q¢}q£(h&hžh'hœubaubeubh6)q¤}q¥(h&Uh'h7h(h)h*h;h,}q¦(h0]h1]h/]h.]q§h ah2]q¨hauh4K#h5hh!]q©(hB)qª}q«(h&XActorsq¬h'h¤h(h)h*hFh,}q­(h0]h1]h/]h.]h2]uh4K#h5hh!]q®hIXActorsq¯…q°}q±(h&h¬h'hªubaubcdocutils.nodes bullet_list q²)q³}q´(h&Uh'h¤h(h)h*U bullet_listqµh,}q¶(Ubulletq·X-h.]h/]h0]h1]h2]uh4K%h5hh!]q¸(cdocutils.nodes list_item q¹)qº}q»(h&XA content ownerq¼h'h³h(h)h*U list_itemq½h,}q¾(h0]h1]h/]h.]h2]uh4Nh5hh!]q¿hl)qÀ}qÁ(h&h¼h'hºh(h)h*hph,}qÂ(h0]h1]h/]h.]h2]uh4K%h!]qÃhIXA content ownerqÄ…qÅ}qÆ(h&h¼h'hÀubaubaubh¹)qÇ}qÈ(h&XCoordinating NodeqÉh'h³h(h)h*h½h,}qÊ(h0]h1]h/]h.]h2]uh4Nh5hh!]qËhl)qÌ}qÍ(h&hÉh'hÇh(h)h*hph,}qÎ(h0]h1]h/]h.]h2]uh4K&h!]qÏhIXCoordinating NodeqÐ…qÑ}qÒ(h&hÉh'hÌubaubaubh¹)qÓ}qÔ(h&X Member NodeqÕh'h³h(h)h*h½h,}qÖ(h0]h1]h/]h.]h2]uh4Nh5hh!]q×hl)qØ}qÙ(h&hÕh'hÓh(h)h*hph,}qÚ(h0]h1]h/]h.]h2]uh4K'h!]qÛhIX Member NodeqÜ…qÝ}qÞ(h&hÕh'hØubaubaubh¹)qß}qà(h&X Replication target Member Node h'h³h(h)h*h½h,}qá(h0]h1]h/]h.]h2]uh4Nh5hh!]qâhl)qã}qä(h&XReplication target Member Nodeqåh'hßh(h)h*hph,}qæ(h0]h1]h/]h.]h2]uh4K(h!]qçhIXReplication target Member Nodeqè…qé}qê(h&håh'hãubaubaubeubeubh6)që}qì(h&Uh'h7h(h)h*h;h,}qí(h0]h1]h/]h.]qîhah2]qïh auh4K,h5hh!]qð(hB)qñ}qò(h&X Preconditionsqóh'hëh(h)h*hFh,}qô(h0]h1]h/]h.]h2]uh4K,h5hh!]qõhIX Preconditionsqö…q÷}qø(h&hóh'hñubaubh²)qù}qú(h&Uh'hëh(h)h*hµh,}qû(h·X-h.]h/]h0]h1]h2]uh4K.h5hh!]qüh¹)qý}qþ(h&X)Object exists within the DataONE system h'hùh(h)h*h½h,}qÿ(h0]h1]h/]h.]h2]uh4Nh5hh!]rhl)r}r(h&X'Object exists within the DataONE systemrh'hýh(h)h*hph,}r(h0]h1]h/]h.]h2]uh4K.h!]rhIX'Object exists within the DataONE systemr…r}r(h&jh'jubaubaubaubeubh6)r }r (h&Uh'h7h(h)h*h;h,}r (h0]h1]h/]h.]r hah2]r hauh4K2h5hh!]r(hB)r}r(h&XTriggersrh'j h(h)h*hFh,}r(h0]h1]h/]h.]h2]uh4K2h5hh!]rhIXTriggersr…r}r(h&jh'jubaubh²)r}r(h&Uh'j h(h)h*hµh,}r(h·X-h.]h/]h0]h1]h2]uh4K4h5hh!]rh¹)r}r(h&XVA user or agent wishes to alter mutable properties of System Metadata for an object. h'jh(h)h*h½h,}r(h0]h1]h/]h.]h2]uh4Nh5hh!]rhl)r}r (h&XTA user or agent wishes to alter mutable properties of System Metadata for an object.r!h'jh(h)h*hph,}r"(h0]h1]h/]h.]h2]uh4K4h!]r#hIXTA user or agent wishes to alter mutable properties of System Metadata for an object.r$…r%}r&(h&j!h'jubaubaubaubeubh6)r'}r((h&Uh'h7h(h)h*h;h,}r)(h0]h1]h/]h.]r*hah2]r+h auh4K9h5hh!]r,(hB)r-}r.(h&XPost Conditionsr/h'j'h(h)h*hFh,}r0(h0]h1]h/]h.]h2]uh4K9h5hh!]r1hIXPost Conditionsr2…r3}r4(h&j/h'j-ubaubh²)r5}r6(h&Uh'j'h(h)h*hµh,}r7(h·X-h.]h/]h0]h1]h2]uh4K;h5hh!]r8(h¹)r9}r:(h&X-The properties of System Metadata are alteredr;h'j5h(h)h*h½h,}r<(h0]h1]h/]h.]h2]uh4Nh5hh!]r=hl)r>}r?(h&j;h'j9h(h)h*hph,}r@(h0]h1]h/]h.]h2]uh4K;h!]rAhIX-The properties of System Metadata are alteredrB…rC}rD(h&j;h'j>ubaubaubh¹)rE}rF(h&X+All replicas of System Metadata are in syncrGh'j5h(h)h*h½h,}rH(h0]h1]h/]h.]h2]uh4Nh5hh!]rIhl)rJ}rK(h&jGh'jEh(h)h*hph,}rL(h0]h1]h/]h.]h2]uh4K> participant "Coordinating Node" as CN <> participant "Replica" as MN_repl <> note right of CN System Metadata Serial Version = 1 dateSysMetadataModified = t1 end note note right of MN System Metadata Serial Version = 1 dateSysMetadataModified = t1 end note note right of MN_repl System Metadata Serial Version = 1 dateSysMetadataModified = t1 end note Bob -> CN : Alter Property activate CN CN -> CN : update property\nserialVersion++\ndateSysMetadataModified = now() note right of CN System Metadata Serial Version = 2 dateSysMetadataModified = t2 end note CN ->] : <> Notify System Metadata Changed note right of CN Indexing and other CN services are notified of the change end note CN -> Bob: ack deactivate CN group Update All Member Nodes CN -> MN: systemMetadataChanged activate MN CN->MN_repl: systemMetadataChanged activate MN_repl MN -> CN: getSystemMetadata activate CN CN -> MN: SystemMetadata deactivate CN MN -> MN : update property note right of MN System Metadata Serial Version = 2 dateSysMetadataModified = t2 end note deactivate MN MN_repl -> CN: getSystemMetadata activate CN CN -> MN_repl: SystemMetadata deactivate CN MN_repl -> MN_repl : update property note right of MN_repl System Metadata Serial Version = 2 dateSysMetadataModified = t2 end note deactivate MN_repl end @enduml h'j]h(h)h*Uplantumlrnh,}ro(h.]h/]h0]h1]h2]UumlrpXÍ@startuml images/42_seq_a.png autonumber actor Bob participant "Authoritative" as MN <> participant "Coordinating Node" as CN <> participant "Replica" as MN_repl <> note right of CN System Metadata Serial Version = 1 dateSysMetadataModified = t1 end note note right of MN System Metadata Serial Version = 1 dateSysMetadataModified = t1 end note note right of MN_repl System Metadata Serial Version = 1 dateSysMetadataModified = t1 end note Bob -> CN : Alter Property activate CN CN -> CN : update property\nserialVersion++\ndateSysMetadataModified = now() note right of CN System Metadata Serial Version = 2 dateSysMetadataModified = t2 end note CN ->] : <> Notify System Metadata Changed note right of CN Indexing and other CN services are notified of the change end note CN -> Bob: ack deactivate CN group Update All Member Nodes CN -> MN: systemMetadataChanged activate MN CN->MN_repl: systemMetadataChanged activate MN_repl MN -> CN: getSystemMetadata activate CN CN -> MN: SystemMetadata deactivate CN MN -> MN : update property note right of MN System Metadata Serial Version = 2 dateSysMetadataModified = t2 end note deactivate MN MN_repl -> CN: getSystemMetadata activate CN CN -> MN_repl: SystemMetadata deactivate CN MN_repl -> MN_repl : update property note right of MN_repl System Metadata Serial Version = 2 dateSysMetadataModified = t2 end note deactivate MN_repl end @endumluh4Kˆh5hh!]ubhl)rq}rr(h&Xª**Figure 2a.** Sequence diagram for Use Case 42 illustrating the high level sequence of operations associated with altering system metadata of an object for version 1.x infrastructure where Coordinating Nodes are the authoritative source for System Metadata. In this scenario, user Bob updates properties of System Metadata (e.g. Access Policy) for an object, and that change is propogated to copies throughout the federation.h'j]h(h)h*hph,}rs(h0]h1]h/]h.]h2]uh4K‰h5hh!]rt(cdocutils.nodes strong ru)rv}rw(h&X**Figure 2a.**h,}rx(h0]h1]h/]h.]h2]uh'jqh!]ryhIX Figure 2a.rz…r{}r|(h&Uh'jvubah*Ustrongr}ubhIXœ Sequence diagram for Use Case 42 illustrating the high level sequence of operations associated with altering system metadata of an object for version 1.x infrastructure where Coordinating Nodes are the authoritative source for System Metadata. In this scenario, user Bob updates properties of System Metadata (e.g. Access Policy) for an object, and that change is propogated to copies throughout the federation.r~…r}r€(h&Xœ Sequence diagram for Use Case 42 illustrating the high level sequence of operations associated with altering system metadata of an object for version 1.x infrastructure where Coordinating Nodes are the authoritative source for System Metadata. In this scenario, user Bob updates properties of System Metadata (e.g. Access Policy) for an object, and that change is propogated to copies throughout the federation.h'jqubeubjk)r}r‚(h&X,.. uml:: @startuml images/42_seq_b.png autonumber actor Bob participant "Authoritative" as MN <> participant "Coordinating Node" as CN <> participant "Replica" as MN_repl <> Bob -> MN: getSystemMetadata note right of MN System Metadata serialVersion = 10 dateSysMetadataModified = t1 end note note right of CN System Metadata serialVersion = 10 dateSysMetadataModified = t1 end note note right of MN_repl System Metadata serialVersion = 10 dateSysMetadataModified = t1 end note activate MN MN -> Bob: dateSysMetadataModified = t1 deactivate MN Bob -> MN : updateSystemMetadata\ndateSysMetadataModified=t1 activate MN MN -> MN: check dateSysMetadataModified == t1 MN -> MN: update properties\ndateSysMetadataModified = now() note right of MN System Metadata serialVersion = 10 dateSysMetadataModified = t2 Mutable properties other than Replica entries may be updated by a user with appropriate permission. end note MN -> CN: synchronize activate CN CN -> CN: schedule update CN -> MN: ack deactivate CN MN -> Bob: ack deactivate MN ... __Potentially long delay__ ... CN -> MN : getSystemMetadata activate CN activate MN MN -> CN: systemMetadata deactivate MN CN -> CN: update properties note right of CN System Metadata serialVersion = 10 dateSysMetadataModified = t2 end note CN ->] : <> Notify System Metadata Changed note right of CN Indexing and other CN services are notified of the change end note group Update only replica nodes CN -> MN_repl: systemMetadataChanged activate MN_repl deactivate CN MN_repl -> CN: getSystemMetadata activate CN CN -> MN_repl: SystemMetadata deactivate CN note right of MN_repl System Metadata serialVersion = 10 dateSysMetadataModified = t2 On replica MNs, all mutable System Metadata properties may be updated by a CN end note MN_repl -> MN_repl: update properties deactivate MN_repl end @enduml h'j]h(h)h*jnh,}rƒ(h.]h/]h0]h1]h2]jpX@startuml images/42_seq_b.png autonumber actor Bob participant "Authoritative" as MN <> participant "Coordinating Node" as CN <> participant "Replica" as MN_repl <> Bob -> MN: getSystemMetadata note right of MN System Metadata serialVersion = 10 dateSysMetadataModified = t1 end note note right of CN System Metadata serialVersion = 10 dateSysMetadataModified = t1 end note note right of MN_repl System Metadata serialVersion = 10 dateSysMetadataModified = t1 end note activate MN MN -> Bob: dateSysMetadataModified = t1 deactivate MN Bob -> MN : updateSystemMetadata\ndateSysMetadataModified=t1 activate MN MN -> MN: check dateSysMetadataModified == t1 MN -> MN: update properties\ndateSysMetadataModified = now() note right of MN System Metadata serialVersion = 10 dateSysMetadataModified = t2 Mutable properties other than Replica entries may be updated by a user with appropriate permission. end note MN -> CN: synchronize activate CN CN -> CN: schedule update CN -> MN: ack deactivate CN MN -> Bob: ack deactivate MN ... __Potentially long delay__ ... CN -> MN : getSystemMetadata activate CN activate MN MN -> CN: systemMetadata deactivate MN CN -> CN: update properties note right of CN System Metadata serialVersion = 10 dateSysMetadataModified = t2 end note CN ->] : <> Notify System Metadata Changed note right of CN Indexing and other CN services are notified of the change end note group Update only replica nodes CN -> MN_repl: systemMetadataChanged activate MN_repl deactivate CN MN_repl -> CN: getSystemMetadata activate CN CN -> MN_repl: SystemMetadata deactivate CN note right of MN_repl System Metadata serialVersion = 10 dateSysMetadataModified = t2 On replica MNs, all mutable System Metadata properties may be updated by a CN end note MN_repl -> MN_repl: update properties deactivate MN_repl end @endumluh4Kêh5hh!]ubhl)r„}r…(h&Xø**Figure 2b.** Sequence diagram for Use Case 42 illustrating the high level sequence of operations associated with altering system metadata of an object for version 2.x infrastructure where Member Nodes are the authoritative source for System Metadata except for replication information (for which Coordinating Nodes are authoritative). In this scenario, user Bob updates properties of System Metadata (e.g. Access Policy) for an object, and that change is propogated to copies throughout the federation.h'j]h(h)h*hph,}r†(h0]h1]h/]h.]h2]uh4Këh5hh!]r‡(ju)rˆ}r‰(h&X**Figure 2b.**h,}rŠ(h0]h1]h/]h.]h2]uh'j„h!]r‹hIX Figure 2b.rŒ…r}rŽ(h&Uh'jˆubah*j}ubhIXê Sequence diagram for Use Case 42 illustrating the high level sequence of operations associated with altering system metadata of an object for version 2.x infrastructure where Member Nodes are the authoritative source for System Metadata except for replication information (for which Coordinating Nodes are authoritative). In this scenario, user Bob updates properties of System Metadata (e.g. Access Policy) for an object, and that change is propogated to copies throughout the federation.r…r}r‘(h&Xê Sequence diagram for Use Case 42 illustrating the high level sequence of operations associated with altering system metadata of an object for version 2.x infrastructure where Member Nodes are the authoritative source for System Metadata except for replication information (for which Coordinating Nodes are authoritative). In this scenario, user Bob updates properties of System Metadata (e.g. Access Policy) for an object, and that change is propogated to copies throughout the federation.h'j„ubeubeubeubeh&UU transformerr’NU footnote_refsr“}r”Urefnamesr•}r–Usymbol_footnotesr—]r˜Uautofootnote_refsr™]ršUsymbol_footnote_refsr›]rœU citationsr]ržh5hU current_linerŸNUtransform_messagesr ]r¡(cdocutils.nodes system_message r¢)r£}r¤(h&Uh,}r¥(h0]UlevelKh.]h/]Usourceh)h1]h2]UlineKUtypeUINFOr¦uh!]r§hl)r¨}r©(h&Uh,}rª(h0]h1]h/]h.]h2]uh'j£h!]r«hIX*Hyperlink target "uc42" is not referenced.r¬…r­}r®(h&Uh'j¨ubah*hpubah*Usystem_messager¯ubj¢)r°}r±(h&Uh,}r²(h0]UlevelKh.]h/]Usourceh)h1]h2]UlineKUtypej¦uh!]r³hl)r´}rµ(h&Uh,}r¶(h0]h1]h/]h.]h2]uh'j°h!]r·hIX-Hyperlink target "index-0" is not referenced.r¸…r¹}rº(h&Uh'j´ubah*hpubah*j¯ubeUreporterr»NUid_startr¼KU autofootnotesr½]r¾U citation_refsr¿}rÀUindirect_targetsrÁ]rÂUsettingsrÃ(cdocutils.frontend Values rÄorÅ}rÆ(Ufootnote_backlinksrÇKUrecord_dependenciesrÈNU rfc_base_urlrÉUhttps://tools.ietf.org/html/rÊU tracebackrˈUpep_referencesrÌNUstrip_commentsrÍNU toc_backlinksrÎUentryrÏU language_coderÐUenrÑU datestamprÒNU report_levelrÓKU _destinationrÔNU halt_levelrÕKU strip_classesrÖNhFNUerror_encoding_error_handlerr×UbackslashreplacerØUdebugrÙNUembed_stylesheetrÚ‰Uoutput_encoding_error_handlerrÛUstrictrÜU sectnum_xformrÝKUdump_transformsrÞNU docinfo_xformrßKUwarning_streamràNUpep_file_url_templateráUpep-%04drâUexit_status_levelrãKUconfigräNUstrict_visitorråNUcloak_email_addressesræˆUtrim_footnote_reference_spacerç‰UenvrèNUdump_pseudo_xmlréNUexpose_internalsrêNUsectsubtitle_xformrë‰U source_linkrìNUrfc_referencesríNUoutput_encodingrîUutf-8rïU source_urlrðNUinput_encodingrñU utf-8-sigròU_disable_configróNU id_prefixrôUU tab_widthrõKUerror_encodingröUUTF-8r÷U_sourcerøh)Ugettext_compactrùˆU generatorrúNUdump_internalsrûNU smart_quotesrü‰U pep_base_urlrýU https://www.python.org/dev/peps/rþUsyntax_highlightrÿUlongrUinput_encoding_error_handlerrjÜUauto_id_prefixrUidrUdoctitle_xformr‰Ustrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrˆU raw_enabledrKU dump_settingsr NubUsymbol_footnote_startr KUidsr }r (hj'hh]hj hj]hhvhh7h h¤hh7hUh]hhëuUsubstitution_namesr }rh*h5h,}r(h0]h.]h/]Usourceh)h1]h2]uU footnotesr]rUrefidsr}r(hU]rhZah]rh$auub.