Äcdocutils.nodes document q)Åq}q(U nametypesq}q(X���use case 10 - mn status reportsqNX���uc10qàX���historyqàuUsubstitution_defsq }q Uparse_messagesq]qUcurrent_sourceq NU decorationqNUautofootnote_startqKUnameidsq}q(hUuse-case-10-mn-status-reportsqhUuc10qhUhistoryquUchildrenq]q(cdocutils.nodes target q)Åq}q(U rawsourceqX ���.. _UC10:UparentqhUsourceqXj���/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/UseCases/10_uc.txtqUtagnameqUtargetqU attributesq }q!(Uidsq"]Ubackrefsq#]Udupnamesq$]Uclassesq%]Unamesq&]Urefidq'huUlineq(KUdocumentq)hh]ubcdocutils.nodes section q*)Åq+}q,(hU�hhhhUexpect_referenced_by_nameq-}q.hhshUsectionq/h }q0(h$]h%]h#]h"]q1(hheh&]q2(hheuh(Kh)hUexpect_referenced_by_idq3}q4hhsh]q5(cdocutils.nodes title q6)Åq7}q8(hX���Use Case 10 - MN Status Reportsq9hh+hhhUtitleq:h }q;(h$]h%]h#]h"]h&]uh(Kh)hh]q<cdocutils.nodes Text q=X���Use Case 10 - MN Status Reportsq>ÖÅq?}q@(hh9hh7ubaubcsphinx.addnodes index qA)ÅqB}qC(hU�hh+hhhUindexqDh }qE(h"]h#]h$]h%]h&]UentriesqF]qG((UsingleqHX���Use Case 10Uindex-0qIU�NtqJ(hHX���UC10hIU�NtqK(hHX ���MN StatushIU�NtqL(hHX���statushIU�NtqM(hHX���healthhIU�NtqNeUinlineqOâuh(Kh)hh]ubh)ÅqP}qQ(hU�hh+hhhhh }qR(h"]h#]h$]h%]h&]h'hIuh(Kh)hh]ubcdocutils.nodes definition_list qS)ÅqT}qU(hU�hh+hhh-}hUdefinition_listqVh }qW(h$]h%]h#]h"]qXhIah&]uh(Nh)hh3}qYhIhPsh]qZ(cdocutils.nodes definition_list_item q[)Åq\}q](hX+���Revisions View document revision history_. hhThhhUdefinition_list_itemq^h }q_(h$]h%]h#]h"]h&]uh(K h]q`(cdocutils.nodes term qa)Åqb}qc(hX ���Revisionsqdhh\hhhUtermqeh }qf(h$]h%]h#]h"]h&]uh(K h]qgh=X ���RevisionsqhÖÅqi}qj(hhdhhbubaubcdocutils.nodes definition qk)Åql}qm(hU�h }qn(h$]h%]h#]h"]h&]uhh\h]qocdocutils.nodes paragraph qp)Åqq}qr(hX ���View document revision history_.hhlhhhU paragraphqsh }qt(h$]h%]h#]h"]h&]uh(K h]qu(h=X���View document revision qvÖÅqw}qx(hX���View document revision hhqubcdocutils.nodes reference qy)Åqz}q{(hX���history_Uresolvedq|KhhqhU referenceq}h }q~(UnameX���historyqUrefuriqÄXî���https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/10_uc.txtqÅh"]h#]h$]h%]h&]uh]qÇh=X���historyqÉÖÅqÑ}qÖ(hU�hhzubaubh=X���.ÖÅqÜ}qá(hX���.hhqubeubahU definitionqàubeubh[)Åqâ}qä(hXÖ���Goal Coordinating Node checks "liveness" of all Member Nodes - checks ping, service x, load, space, bandwidth, transaction rate, ... hhThhhh^h }qã(h$]h%]h#]h"]h&]uh(K h)hh]qå(ha)Åqç}qé(hX���Goalqèhhâhhhheh }qê(h$]h%]h#]h"]h&]uh(K h]qëh=X���GoalqíÖÅqì}qî(hhèhhçubaubhk)Åqï}qñ(hU�h }qó(h$]h%]h#]h"]h&]uhhâh]qòhp)Åqô}qö(hX���Coordinating Node checks "liveness" of all Member Nodes - checks ping, service x, load, space, bandwidth, transaction rate, ...qõhhïhhhhsh }qú(h$]h%]h#]h"]h&]uh(Kh]qùh=X���Coordinating Node checks "liveness" of all Member Nodes - checks ping, service x, load, space, bandwidth, transaction rate, ...qûÖÅqü}q†(hhõhhôubaubahhàubeubh[)Åq°}q¢(hXm��Summary As part of the infrastructure monitoring process, a CN checks on the "liveness" of all Member Nodes. This operation will be performed with moderate frequency (perhaps in the order of once every few minutes). The "lite" version of this use case, implemented for V0.3, is a simple ping to each Member Node. Later, more in-depth status information will be retrieved from Member Nodes using the ``MN_health.getStatus()`` method. The responses from the MNs should report sufficient metrics to gauge their performance in absolute terms and also relative to other MNs. See ``MN_health.getStatus()`` for those metrics. hhThhhh^h }q£(h$]h%]h#]h"]h&]uh(Kh)hh]q§(ha)Åq•}q¶(hX���Summaryqßhh°hhhheh }q®(h$]h%]h#]h"]h&]uh(Kh]q©h=X���Summaryq™ÖÅq´}q¨(hhßhh•ubaubhk)Åq≠}qÆ(hU�h }qØ(h$]h%]h#]h"]h&]uhh°h]q∞(hp)Åq±}q≤(hX®��As part of the infrastructure monitoring process, a CN checks on the "liveness" of all Member Nodes. This operation will be performed with moderate frequency (perhaps in the order of once every few minutes). The "lite" version of this use case, implemented for V0.3, is a simple ping to each Member Node. Later, more in-depth status information will be retrieved from Member Nodes using the ``MN_health.getStatus()`` method.hh≠hhhhsh }q≥(h$]h%]h#]h"]h&]uh(Kh]q¥(h=Xá��As part of the infrastructure monitoring process, a CN checks on the "liveness" of all Member Nodes. This operation will be performed with moderate frequency (perhaps in the order of once every few minutes). The "lite" version of this use case, implemented for V0.3, is a simple ping to each Member Node. Later, more in-depth status information will be retrieved from Member Nodes using the qµÖÅq∂}q∑(hXá��As part of the infrastructure monitoring process, a CN checks on the "liveness" of all Member Nodes. This operation will be performed with moderate frequency (perhaps in the order of once every few minutes). The "lite" version of this use case, implemented for V0.3, is a simple ping to each Member Node. Later, more in-depth status information will be retrieved from Member Nodes using the hh±ubcdocutils.nodes literal q∏)Åqπ}q∫(hX���``MN_health.getStatus()``h }qª(h$]h%]h#]h"]h&]uhh±h]qºh=X���MN_health.getStatus()qΩÖÅqæ}qø(hU�hhπubahUliteralq¿ubh=X��� method.q¡ÖÅq¬}q√(hX��� method.hh±ubeubhp)Åqƒ}q≈(hXπ���The responses from the MNs should report sufficient metrics to gauge their performance in absolute terms and also relative to other MNs. See ``MN_health.getStatus()`` for those metrics.hh≠hhhhsh }q∆(h$]h%]h#]h"]h&]uh(Kh]q«(h=Xç���The responses from the MNs should report sufficient metrics to gauge their performance in absolute terms and also relative to other MNs. See q»ÖÅq…}q (hXç���The responses from the MNs should report sufficient metrics to gauge their performance in absolute terms and also relative to other MNs. See hhƒubh∏)ÅqÀ}qÃ(hX���``MN_health.getStatus()``h }qÕ(h$]h%]h#]h"]h&]uhhƒh]qŒh=X���MN_health.getStatus()qœÖÅq–}q—(hU�hhÀubahh¿ubh=X��� for those metrics.q“ÖÅq”}q‘(hX��� for those metrics.hhƒubeubehhàubeubh[)Åq’}q÷(hX���Actors CN, MN hhThhhh^h }q◊(h$]h%]h#]h"]h&]uh(Kh)hh]qÿ(ha)ÅqŸ}q⁄(hX���Actorsq€hh’hhhheh }q‹(h$]h%]h#]h"]h&]uh(Kh]q›h=X���ActorsqfiÖÅqfl}q‡(hh€hhŸubaubhk)Åq·}q‚(hU�h }q„(h$]h%]h#]h"]h&]uhh’h]q‰hp)ÅqÂ}qÊ(hX���CN, MNqÁhh·hhhhsh }qË(h$]h%]h#]h"]h&]uh(Kh]qÈh=X���CN, MNqÍÖÅqÎ}qÏ(hhÁhhÂubaubahhàubeubh[)ÅqÌ}qÓ(hX8���Preconditions - CNs are operational - MN is registered hhThhhh^h }qÔ(h$]h%]h#]h"]h&]uh(K"h)hh]q(ha)ÅqÒ}qÚ(hX ���PreconditionsqÛhhÌhhhheh }qÙ(h$]h%]h#]h"]h&]uh(K"h]qıh=X ���PreconditionsqˆÖÅq˜}q¯(hhÛhhÒubaubhk)Åq˘}q˙(hU�h }q˚(h$]h%]h#]h"]h&]uhhÌh]q¸cdocutils.nodes bullet_list q˝)Åq˛}qˇ(hU�h }r���(Ubulletr��X���-h"]h#]h$]h%]h&]uhh˘h]r��(cdocutils.nodes list_item r��)År��}r��(hX���CNs are operational h }r��(h$]h%]h#]h"]h&]uhh˛h]r��hp)År��}r ��(hX���CNs are operationalr ��hj��hhhhsh }r��(h$]h%]h#]h"]h&]uh(K h]r��h=X���CNs are operationalr ��ÖÅr��}r��(hj ��hj��ubaubahU list_itemr��ubj��)År��}r��(hX���MN is registered h }r��(h$]h%]h#]h"]h&]uhh˛h]r��hp)År��}r��(hX���MN is registeredr��hj��hhhhsh }r��(h$]h%]h#]h"]h&]uh(K"h]r��h=X���MN is registeredr��ÖÅr��}r��(hj��hj��ubaubahj��ubehUbullet_listr��ubahhàubeubh[)År��}r��(hX@���Triggers - Timed interval - Registration change (not for V0.3) hhThhhh^h }r ��(h$]h%]h#]h"]h&]uh(K'h)hh]r!��(ha)År"��}r#��(hX���Triggersr$��hj��hhhheh }r%��(h$]h%]h#]h"]h&]uh(K'h]r&��h=X���Triggersr'��ÖÅr(��}r)��(hj$��hj"��ubaubhk)År*��}r+��(hU�h }r,��(h$]h%]h#]h"]h&]uhj��h]r-��h˝)År.��}r/��(hU�h }r0��(j��X���-h"]h#]h$]h%]h&]uhj*��h]r1��(j��)År2��}r3��(hX���Timed interval h }r4��(h$]h%]h#]h"]h&]uhj.��h]r5��hp)År6��}r7��(hX���Timed intervalr8��hj2��hhhhsh }r9��(h$]h%]h#]h"]h&]uh(K%h]r:��h=X���Timed intervalr;��ÖÅr<��}r=��(hj8��hj6��ubaubahj��ubj��)År>��}r?��(hX#���Registration change (not for V0.3) h }r@��(h$]h%]h#]h"]h&]uhj.��h]rA��hp)ÅrB��}rC��(hX"���Registration change (not for V0.3)rD��hj>��hhhhsh }rE��(h$]h%]h#]h"]h&]uh(K'h]rF��h=X"���Registration change (not for V0.3)rG��ÖÅrH��}rI��(hjD��hjB��ubaubahj��ubehj��ubahhàubeubh[)ÅrJ��}rK��(hX5���Post Conditions - Status metadata is updated at CNs hhThhhh^h }rL��(h$]h%]h#]h"]h&]uh(K+h)hh]rM��(ha)ÅrN��}rO��(hX���Post ConditionsrP��hjJ��hhhheh }rQ��(h$]h%]h#]h"]h&]uh(K+h]rR��h=X���Post ConditionsrS��ÖÅrT��}rU��(hjP��hjN��ubaubhk)ÅrV��}rW��(hU�h }rX��(h$]h%]h#]h"]h&]uhjJ��h]rY��h˝)ÅrZ��}r[��(hU�h }r\��(j��X���-h"]h#]h$]h%]h&]uhjV��h]r]��j��)År^��}r_��(hX#���Status metadata is updated at CNs h }r`��(h$]h%]h#]h"]h&]uhjZ��h]ra��hp)Årb��}rc��(hX!���Status metadata is updated at CNsrd��hj^��hhhhsh }re��(h$]h%]h#]h"]h&]uh(K*h]rf��h=X!���Status metadata is updated at CNsrg��ÖÅrh��}ri��(hjd��hjb��ubaubahj��ubahj��ubahhàubeubeubcdocutils.nodes comment rj��)Årk��}rl��(hX°��@startuml images/10_seq.png actor Admin participant "Admin" as app_admin << Application >> Admin -> app_admin: login() participant "State of Health API" as c_health << Coordinating Node >> participant "State of Health API" as m_health << Member Node >> app_admin -> c_health: generateReport(token) loop for each MN alt V0.3 c_health -> m_health: ping() m_health --> c_health: PingResponse else after V0.3 c_health -> m_health: getStatus(token) m_health --> c_health: StatusResponse end end note right of c_health internal process, not in the CN API end note c_health -> c_health: processStatusReports() c_health --> app_admin: statusReport @endumlhh+hhhUcommentrm��h }rn��(U xml:spacero��Upreserverp��h"]h#]h$]h%]h&]uh(KEh)hh]rq��h=X°��@startuml images/10_seq.png actor Admin participant "Admin" as app_admin << Application >> Admin -> app_admin: login() participant "State of Health API" as c_health << Coordinating Node >> participant "State of Health API" as m_health << Member Node >> app_admin -> c_health: generateReport(token) loop for each MN alt V0.3 c_health -> m_health: ping() m_health --> c_health: PingResponse else after V0.3 c_health -> m_health: getStatus(token) m_health --> c_health: StatusResponse end end note right of c_health internal process, not in the CN API end note c_health -> c_health: processStatusReports() c_health --> app_admin: statusReport @endumlrr��ÖÅrs��}rt��(hU�hjk��ubaubcdocutils.nodes image ru��)Årv��}rw��(hX���.. image:: images/10_seq.png hh+hhhUimagerx��h }ry��(UuriX!���design/UseCases/images/10_seq.pngrz��h"]h#]h$]h%]U candidatesr{��}r|��U*jz��sh&]uh(KGh)hh]ubhp)År}��}r~��(hX^��*Figure 1.* Interactions for use case 10. These interactions describe a synchronous process for generating a report. Most likely, a better mechanism would be for a background process to be accumulating the necessary statistics from Member Nodes, then the generateReport function would operate on the accumulated data rather than forcing a fresh copy.hh+hhhhsh }r��(h$]h%]h#]h"]h&]uh(KHh)hh]rÄ��(cdocutils.nodes emphasis rÅ��)ÅrÇ��}rÉ��(hX���*Figure 1.*h }rÑ��(h$]h%]h#]h"]h&]uhj}��h]rÖ��h=X ���Figure 1.rÜ��ÖÅrá��}rà��(hU�hjÇ��ubahUemphasisrâ��ubh=XS�� Interactions for use case 10. These interactions describe a synchronous process for generating a report. Most likely, a better mechanism would be for a background process to be accumulating the necessary statistics from Member Nodes, then the generateReport function would operate on the accumulated data rather than forcing a fresh copy.rä��ÖÅrã��}rå��(hXS�� Interactions for use case 10. These interactions describe a synchronous process for generating a report. Most likely, a better mechanism would be for a background process to be accumulating the necessary statistics from Member Nodes, then the generateReport function would operate on the accumulated data rather than forcing a fresh copy.hj}��ubeubh)Årç��}ré��(hX°���.. _history: https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/10_uc.txtU referencedrè��Khh+hhhhh }rê��(hÄhÅh"]rë��hah#]h$]h%]h&]rí��hauh(KOh)hh]ubeubehU�Utransformerrì��NU footnote_refsrî��}rï��Urefnamesrñ��}ró��h]rò��hzasUsymbol_footnotesrô��]rö��Uautofootnote_refsrõ��]rú��Usymbol_footnote_refsrù��]rû��U citationsrü��]r†��h)hUcurrent_liner°��NUtransform_messagesr¢��]r£��(cdocutils.nodes system_message r§��)År•��}r¶��(hU�h }rß��(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypeUINFOr®��uh]r©��hp)År™��}r´��(hU�h }r¨��(h$]h%]h#]h"]h&]uhj•��h]r≠��h=X*���Hyperlink target "uc10" is not referenced.rÆ��ÖÅrØ��}r∞��(hU�hj™��ubahhsubahUsystem_messager±��ubj§��)År≤��}r≥��(hU�h }r¥��(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypej®��uh]rµ��hp)År∂��}r∑��(hU�h }r∏��(h$]h%]h#]h"]h&]uhj≤��h]rπ��h=X-���Hyperlink target "index-0" is not referenced.r∫��ÖÅrª��}rº��(hU�hj∂��ubahhsubahj±��ubeUreporterrΩ��NUid_startræ��KU autofootnotesrø��]r¿��U citation_refsr¡��}r¬��Uindirect_targetsr√��]rƒ��Usettingsr≈��(cdocutils.frontend Values r∆��or«��}r»��(Ufootnote_backlinksr…��KUrecord_dependenciesr ��NUrfc_base_urlrÀ��Uhttps://tools.ietf.org/html/rÃ��U tracebackrÕ��àUpep_referencesrŒ��NUstrip_commentsrœ��NU toc_backlinksr–��Uentryr—��U language_coder“��Uenr”��U datestampr‘��NUreport_levelr’��KU_destinationr÷��NU halt_levelr◊��KU strip_classesrÿ��Nh:NUerror_encoding_error_handlerrŸ��Ubackslashreplacer⁄��Udebugr€��NUembed_stylesheetr‹��âUoutput_encoding_error_handlerr›��Ustrictrfi��U sectnum_xformrfl��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Ì��âUsource_linkrÓ��NUrfc_referencesrÔ��NUoutput_encodingr��Uutf-8rÒ��U source_urlrÚ��NUinput_encodingrÛ��U utf-8-sigrÙ��U_disable_configrı��NU id_prefixrˆ��U�U tab_widthr˜��KUerror_encodingr¯��UUTF-8r˘��U_sourcer˙��hUgettext_compactr˚��àU generatorr¸��NUdump_internalsr˝��NUsmart_quotesr˛��âUpep_base_urlrˇ��U https://www.python.org/dev/peps/r���Usyntax_highlightr��Ulongr��Uinput_encoding_error_handlerr��jfi��Uauto_id_prefixr��Uidr��Udoctitle_xformr��âUstrip_elements_with_classesr��NU _config_filesr��]Ufile_insertion_enabledr ��àUraw_enabledr ��KU dump_settingsr��NubUsymbol_footnote_startr��K�Uidsr ��}r��(hh+hh+hIhThjç��uUsubstitution_namesr��}r��hh)h }r��(h$]h"]h#]Usourcehh%]h&]uU footnotesr��]r��Urefidsr��}r��(h]r��hahI]r��hPauub.