€cdocutils.nodes document q)q}q(U nametypesq}q(XgoalqNX%use case 44 - deprecate a member nodeqNXtriggersqNXsummaryq NXuc44q ˆX preconditionsq NXpost conditionsq NXactorsq NuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUgoalqhU#use-case-44-deprecate-a-member-nodeqhUtriggersqh Usummaryqh Uuc44qh U preconditionsqh Upost-conditionsqh UactorsquUchildrenq]q (cdocutils.nodes target q!)q"}q#(U rawsourceq$X .. _UC44:Uparentq%hUsourceq&Xj/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/UseCases/44_uc.txtq'Utagnameq(Utargetq)U attributesq*}q+(Uidsq,]Ubackrefsq-]Udupnamesq.]Uclassesq/]Unamesq0]Urefidq1huUlineq2KUdocumentq3hh]ubcdocutils.nodes section q4)q5}q6(h$Uh%hh&h'Uexpect_referenced_by_nameq7}q8h h"sh(Usectionq9h*}q:(h.]h/]h-]h,]q;(hheh0]q<(hh euh2Kh3hUexpect_referenced_by_idq=}q>hh"sh]q?(cdocutils.nodes title q@)qA}qB(h$X%Use Case 44 - Deprecate a Member NodeqCh%h5h&h'h(UtitleqDh*}qE(h.]h/]h-]h,]h0]uh2Kh3hh]qFcdocutils.nodes Text qGX%Use Case 44 - Deprecate a Member NodeqH…qI}qJ(h$hCh%hAubaubcsphinx.addnodes index qK)qL}qM(h$Uh%h5h&h'h(UindexqNh*}qO(h,]h-]h.]h/]h0]UentriesqP]qQ((UsingleqRX Use Case 44Uindex-0qSUNtqT(hRXdeprecate Member NodehSUNtqU(hRXUC44hSUNtqVeUinlineqW‰uh2Kh3hh]ubh!)qX}qY(h$Uh%h5h&h'h(h)h*}qZ(h,]h-]h.]h/]h0]h1hSuh2Kh3hh]ubh4)q[}q\(h$Uh%h5h&h'h7}h(h9h*}q](h.]h/]h-]h,]q^(hhSeh0]q_hauh2K h3hh=}q`hShXsh]qa(h@)qb}qc(h$XGoalqdh%h[h&h'h(hDh*}qe(h.]h/]h-]h,]h0]uh2K h3hh]qfhGXGoalqg…qh}qi(h$hdh%hbubaubcdocutils.nodes paragraph qj)qk}ql(h$XURemove a Member Node from production, retain access to content (optionally archived).qmh%h[h&h'h(U paragraphqnh*}qo(h.]h/]h-]h,]h0]uh2K h3hh]qphGXURemove a Member Node from production, retain access to content (optionally archived).qq…qr}qs(h$hmh%hkubaubeubh4)qt}qu(h$Uh%h5h&h'h(h9h*}qv(h.]h/]h-]h,]qwhah0]qxh auh2Kh3hh]qy(h@)qz}q{(h$XSummaryq|h%hth&h'h(hDh*}q}(h.]h/]h-]h,]h0]uh2Kh3hh]q~hGXSummaryq…q€}q(h$h|h%hzubaubhj)q‚}qƒ(h$X,This use case describes a situation where a Member Node is being taken off line and removed from production. A goal of DataONE is to ensure the content remains accessible, so it is necessary to ensure that the content is replicated before the Member Node is decomissioned and so no longer responsive.q„h%hth&h'h(hnh*}q…(h.]h/]h-]h,]h0]uh2Kh3hh]q†hGX,This use case describes a situation where a Member Node is being taken off line and removed from production. A goal of DataONE is to ensure the content remains accessible, so it is necessary to ensure that the content is replicated before the Member Node is decomissioned and so no longer responsive.q‡…qˆ}q‰(h$h„h%h‚ubaubhj)qŠ}q‹(h$XIn an ideal situation, the Membe Node is fully functioning and so responsive to the commands necessary to manipulate the content. The alternative, of deprecating a Member Node that is no longer functional is possible, though it depends on whether the content is still accessible.qŒh%hth&h'h(hnh*}q(h.]h/]h-]h,]h0]uh2Kh3hh]qŽhGXIn an ideal situation, the Membe Node is fully functioning and so responsive to the commands necessary to manipulate the content. The alternative, of deprecating a Member Node that is no longer functional is possible, though it depends on whether the content is still accessible.q…q}q‘(h$hŒh%hŠubaubeubh4)q’}q“(h$Uh%h5h&h'h(h9h*}q”(h.]h/]h-]h,]q•hah0]q–h auh2Kh3hh]q—(h@)q˜}q™(h$XActorsqšh%h’h&h'h(hDh*}q›(h.]h/]h-]h,]h0]uh2Kh3hh]qœhGXActorsq…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-]h.]h/]h0]uh2Kh3hh]q¦(cdocutils.nodes list_item q§)q¨}q©(h$X Content Ownerqªh%h¡h&h'h(U list_itemq«h*}q¬(h.]h/]h-]h,]h0]uh2Nh3hh]q­hj)q®}q¯(h$hªh%h¨h&h'h(hnh*}q°(h.]h/]h-]h,]h0]uh2Kh]q±hGX Content Ownerq²…q³}q´(h$hªh%h®ubaubaubh§)qµ}q¶(h$X Member Nodeq·h%h¡h&h'h(h«h*}q¸(h.]h/]h-]h,]h0]uh2Nh3hh]q¹hj)qº}q»(h$h·h%hµh&h'h(hnh*}q¼(h.]h/]h-]h,]h0]uh2K h]q½hGX Member Nodeq¾…q¿}qÀ(h$h·h%hºubaubaubh§)qÁ}qÂ(h$XReplica Member NodeqÃh%h¡h&h'h(h«h*}qÄ(h.]h/]h-]h,]h0]uh2Nh3hh]qÅhj)qÆ}qÇ(h$hÃh%hÁh&h'h(hnh*}qÈ(h.]h/]h-]h,]h0]uh2K!h]qÉhGXReplica Member NodeqÊ…qË}qÌ(h$hÃh%hÆubaubaubh§)qÍ}qÎ(h$XCoordinating NodeqÏh%h¡h&h'h(h«h*}qÐ(h.]h/]h-]h,]h0]uh2Nh3hh]qÑhj)qÒ}qÓ(h$hÏh%hÍh&h'h(hnh*}qÔ(h.]h/]h-]h,]h0]uh2K"h]qÕhGXCoordinating NodeqÖ…q×}qØ(h$hÏh%hÒubaubaubh§)qÙ}qÚ(h$X!Coordinating Node administrator h%h¡h&h'h(h«h*}qÛ(h.]h/]h-]h,]h0]uh2Nh3hh]qÜhj)qÝ}qÞ(h$XCoordinating Node administratorqßh%hÙh&h'h(hnh*}qà(h.]h/]h-]h,]h0]uh2K#h]qáhGXCoordinating Node administratorqâ…qã}qä(h$hßh%hÝubaubaubeubeubh4)qå}qæ(h$Uh%h5h&h'h(h9h*}qç(h.]h/]h-]h,]qèhah0]qéh auh2K'h3hh]qê(h@)që}qì(h$X Preconditionsqíh%håh&h'h(hDh*}qî(h.]h/]h-]h,]h0]uh2K'h3hh]qïhGX Preconditionsqð…qñ}qò(h$híh%hëubaubh )qó}qô(h$Uh%håh&h'h(h£h*}qõ(h¥X-h,]h-]h.]h/]h0]uh2K)h3hh]qö(h§)q÷}qø(h$X0Member Node to be decommissioned is synchronizedqùh%hóh&h'h(h«h*}qú(h.]h/]h-]h,]h0]uh2Nh3hh]qûhj)qü}qý(h$hùh%h÷h&h'h(hnh*}qþ(h.]h/]h-]h,]h0]uh2K)h]qÿhGX0Member Node to be decommissioned is synchronizedr…r}r(h$hùh%hüubaubaubh§)r}r(h$X4Content originating on the Member Node is accessiblerh%hóh&h'h(h«h*}r(h.]h/]h-]h,]h0]uh2Nh3hh]rhj)r}r (h$jh%jh&h'h(hnh*}r (h.]h/]h-]h,]h0]uh2K*h]r hGX4Content originating on the Member Node is accessibler …r }r(h$jh%jubaubaubh§)r}r(h$X"Replacement Member Node is known h%hóh&h'h(h«h*}r(h.]h/]h-]h,]h0]uh2Nh3hh]rhj)r}r(h$X Replacement Member Node is knownrh%jh&h'h(hnh*}r(h.]h/]h-]h,]h0]uh2K+h]rhGX Replacement Member Node is knownr…r}r(h$jh%jubaubaubeubeubh4)r}r(h$Uh%h5h&h'h(h9h*}r(h.]h/]h-]h,]rhah0]rhauh2K/h3hh]r (h@)r!}r"(h$XTriggersr#h%jh&h'h(hDh*}r$(h.]h/]h-]h,]h0]uh2K/h3hh]r%hGXTriggersr&…r'}r((h$j#h%j!ubaubh )r)}r*(h$Uh%jh&h'h(h£h*}r+(h¥X-h,]h-]h.]h/]h0]uh2K1h3hh]r,h§)r-}r.(h$XBAn administrative decision is made to decommission a Member Node h%j)h&h'h(h«h*}r/(h.]h/]h-]h,]h0]uh2Nh3hh]r0hj)r1}r2(h$X@An administrative decision is made to decommission a Member Noder3h%j-h&h'h(hnh*}r4(h.]h/]h-]h,]h0]uh2K1h]r5hGX@An administrative decision is made to decommission a Member Noder6…r7}r8(h$j3h%j1ubaubaubaubeubh4)r9}r:(h$Uh%h5h&h'h(h9h*}r;(h.]h/]h-]h,]r<hah0]r=h auh2K5h3hh]r>(h@)r?}r@(h$XPost ConditionsrAh%j9h&h'h(hDh*}rB(h.]h/]h-]h,]h0]uh2K5h3hh]rChGXPost ConditionsrD…rE}rF(h$jAh%j?ubaubh )rG}rH(h$Uh%j9h&h'h(h£h*}rI(h¥X-h,]h-]h.]h/]h0]uh2K7h3hh]rJ(h§)rK}rL(h$XBContent synchronized from the deprecated Member Node is accessiblerMh%jGh&h'h(h«h*}rN(h.]h/]h-]h,]h0]uh2Nh3hh]rOhj)rP}rQ(h$jMh%jKh&h'h(hnh*}rR(h.]h/]h-]h,]h0]uh2K7h]rShGXBContent synchronized from the deprecated Member Node is accessiblerT…rU}rV(h$jMh%jPubaubaubh§)rW}rX(h$X$Authoritative Member Node is changedrYh%jGh&h'h(h«h*}rZ(h.]h/]h-]h,]h0]uh2Nh3hh]r[hj)r\}r](h$jYh%jWh&h'h(hnh*}r^(h.]h/]h-]h,]h0]uh2K8h]r_hGX$Authoritative Member Node is changedr`…ra}rb(h$jYh%j\ubaubaubh§)rc}rd(h$XOptional: content is archivedreh%jGh&h'h(h«h*}rf(h.]h/]h-]h,]h0]uh2Nh3hh]rghj)rh}ri(h$jeh%jch&h'h(hnh*}rj(h.]h/]h-]h,]h0]uh2K9h]rkhGXOptional: content is archivedrl…rm}rn(h$jeh%jhubaubaubh§)ro}rp(h$X(Optional: content ownership is changed h%jGh&h'h(h«h*}rq(h.]h/]h-]h,]h0]uh2Nh3hh]rrhj)rs}rt(h$X&Optional: content ownership is changedruh%joh&h'h(hnh*}rv(h.]h/]h-]h,]h0]uh2K:h]rwhGX&Optional: content ownership is changedrx…ry}rz(h$juh%jsubaubaubeubcsphinxcontrib.plantuml plantuml r{)r|}r}(h$X‡.. uml:: @startuml autonumber "[0] " actor Owner participant "Member Node" as MN participant "Coordinating Node" as CN participant "Replication Node" as RMN actor "CN Administrator" as admin Owner -> MN: listObjects loop for each PID Owner -> CN: getSystemMetadata(PID) activate CN CN -> Owner: systemMetadata deactivate CN Owner -> Owner: edit\nreplication policy Owner -> CN: Use Case 42\nupdate System Metadata CN -> RMN: Use Case 09\nReplicate end admin -> CN: listObjects loop for each PID from MN admin -> CN: verify replication admin -> CN: getSystemMetadata(PID) activate CN CN -> admin: systemMetadata deactivate CN admin -> admin: edit:\nreplica location\nauthoritative MN\n[archive]\n[owner] admin -> CN: Use Case 42\nupdate System Metadata end admin -> CN: unregister MN Owner -> MN: shutdown @enduml h%j9h&h'h(Uplantumlr~h*}r(h,]h-]h.]h/]h0]Uumlr€X@@startuml autonumber "[0] " actor Owner participant "Member Node" as MN participant "Coordinating Node" as CN participant "Replication Node" as RMN actor "CN Administrator" as admin Owner -> MN: listObjects loop for each PID Owner -> CN: getSystemMetadata(PID) activate CN CN -> Owner: systemMetadata deactivate CN Owner -> Owner: edit\nreplication policy Owner -> CN: Use Case 42\nupdate System Metadata CN -> RMN: Use Case 09\nReplicate end admin -> CN: listObjects loop for each PID from MN admin -> CN: verify replication admin -> CN: getSystemMetadata(PID) activate CN CN -> admin: systemMetadata deactivate CN admin -> admin: edit:\nreplica location\nauthoritative MN\n[archive]\n[owner] admin -> CN: Use Case 42\nupdate System Metadata end admin -> CN: unregister MN Owner -> MN: shutdown @endumluh2K^h3hh]ubhj)r}r‚(h$Xá**Figue 1.** Process for decomissioning a Member Node that is still functional. First, a content owner updates the replication policy for each object on the MN and ensures that the CN has the updated information (steps 1-5). Next, a CN administrator retrieves a list of objects that need to be managed. For each object, the administrator then ensures that the object has been replicated (8), retrieve the system metadata and edits it (9-11), ensuring that the system metadata properties reflect the new state of the system, then posts the updated system metadata to the CN (12). Once all the content has been updated, the old MN is un-regitered from the Coordinating Nodes. At this point, the Member Node operator can shut down the node.rƒh%j9h&h'h(hnh*}r„(h.]h/]h-]h,]h0]uh2K_h3hh]r…(cdocutils.nodes strong r†)r‡}rˆ(h$X **Figue 1.**h*}r‰(h.]h/]h-]h,]h0]uh%jh]rŠhGXFigue 1.r‹…rŒ}r(h$Uh%j‡ubah(UstrongrŽubhGXÕ Process for decomissioning a Member Node that is still functional. First, a content owner updates the replication policy for each object on the MN and ensures that the CN has the updated information (steps 1-5). Next, a CN administrator retrieves a list of objects that need to be managed. For each object, the administrator then ensures that the object has been replicated (8), retrieve the system metadata and edits it (9-11), ensuring that the system metadata properties reflect the new state of the system, then posts the updated system metadata to the CN (12). Once all the content has been updated, the old MN is un-regitered from the Coordinating Nodes. At this point, the Member Node operator can shut down the node.r…r}r‘(h$XÕ Process for decomissioning a Member Node that is still functional. First, a content owner updates the replication policy for each object on the MN and ensures that the CN has the updated information (steps 1-5). Next, a CN administrator retrieves a list of objects that need to be managed. For each object, the administrator then ensures that the object has been replicated (8), retrieve the system metadata and edits it (9-11), ensuring that the system metadata properties reflect the new state of the system, then posts the updated system metadata to the CN (12). Once all the content has been updated, the old MN is un-regitered from the Coordinating Nodes. At this point, the Member Node operator can shut down the node.h%jubeubeubeubeh$UU transformerr’NU footnote_refsr“}r”Urefnamesr•}r–Usymbol_footnotesr—]r˜Uautofootnote_refsr™]ršUsymbol_footnote_refsr›]rœU citationsr]ržh3hU current_linerŸNUtransform_messagesr ]r¡(cdocutils.nodes system_message r¢)r£}r¤(h$Uh*}r¥(h.]UlevelKh,]h-]Usourceh'h/]h0]UlineKUtypeUINFOr¦uh]r§hj)r¨}r©(h$Uh*}rª(h.]h/]h-]h,]h0]uh%j£h]r«hGX*Hyperlink target "uc44" is not referenced.r¬…r­}r®(h$Uh%j¨ubah(hnubah(Usystem_messager¯ubj¢)r°}r±(h$Uh*}r²(h.]UlevelKh,]h-]Usourceh'h/]h0]UlineKUtypej¦uh]r³hj)r´}rµ(h$Uh*}r¶(h.]h/]h-]h,]h0]uh%j°h]r·hGX-Hyperlink target "index-0" is not referenced.r¸…r¹}rº(h$Uh%j´ubah(hnubah(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ÖNhDNUerror_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 (hj9hh[hjhh5hhthh5hh’hSh[hhåuUsubstitution_namesr }rh(h3h*}r(h.]h,]h-]Usourceh'h/]h0]uU footnotesr]rUrefidsr}r(h]rh"ahS]rhXauub.