1@startuml 2participant d as "Director" 3participant r as "Read SD" 4participant w as "Write SD" 5group Initiate dir to read sd connection 6 d -> r : Hello 7 r -> d : CRAM-MD5 Challenge 8 d -> r : CRAM-MD5 Response 9 alt success 10 r -> d : 1000 OK auth 11 else failure 12 r -> d : 1999 Authorization failed. 13 end 14 d -> r : CRAM-MD5 Challenge 15 r -> d : CRAM-MD5 Response 16 alt success 17 d -> r : 1000 OK auth 18 else failure 19 d -> r : 1999 Authorization failed. 20 end 21end 22group Initiate dir to write sd connection 23 d -> w : Hello 24 w -> d : CRAM-MD5 Challenge 25 d -> w : CRAM-MD5 Response 26 alt success 27 w -> d : 1000 OK auth 28 else failure 29 w -> d : 1999 Authorization failed. 30 end 31 d -> w : CRAM-MD5 Challenge 32 w -> d : CRAM-MD5 Response 33 alt success 34 d -> w : 1000 OK auth 35 else failure 36 d -> w : 1999 Authorization failed. 37 end 38end 39 40loop each option 41 d -> r : pluginoptions %s 42 r -> d : 2000 OK plugin options 43end 44alt if reschedulung 45 d -> r : cancel Job=%s 46 r -> d : 3000 JobId=%ld Job="%s" marked to be %s. 47end 48d -> r : JobId=%s [...] 49r -> d : 3000 OK Job SDid=%d SDtime=%d Authorization=%100s 50d -> r : bootstrap 51d -> r : <bootstrap content> 52d -> r : BNET_EOD 53r -> d : 2000 OK bootstrap 54d -> r : getSecureEraseCmd 55r -> d : 2000 OK SDSecureEraseCmd %s 56loop each read_storage 57 d -> r : use storage=%s media_type=%s pool_name=%s pool_type=%s append=0 copy=%d stripe=%d 58 loop each device 59 d -> r : use device=%s 60 end 61 d -> r : BNET_EOD 62end 63d -> r : BNET_EOD 64r -> d : 3000 OK use device device=%s 65 66 67loop each option 68 d -> w : pluginoptions %s 69 w -> d : 2000 OK plugin options 70end 71alt if reschedulung 72 d -> w : cancel Job=%s 73 w -> d : 3000 JobId=%ld Job="%s" marked to be %s. 74end 75d -> w : JobId=%s [...] 76w -> d : 3000 OK Job SDid=%d SDtime=%d Authorization=%100s 77d -> w : getSecureEraseCmd 78w -> d : 2000 OK SDSecureEraseCmd %s 79loop each write_storage 80 d -> w : use storage=%s media_type=%s pool_name=%s pool_type=%s append=1 copy=%d stripe=%d 81 loop each device 82 d -> w : use device=%s 83 end 84 d -> w : BNET_EOD 85end 86d -> w : BNET_EOD 87w -> d : 3000 OK use device device=%s 88 89d -> r : setbandwidth=%d Job=%s 90r -> d : 2000 OK Bandwidth 91d -> w : listen 92== Message thread for Write SD communication spawned == 93w -> d : Status Job=%s JobStatus=83 94note right 95 83 is numeric for 'S' which 96 means waiting for storage daemon 97end note 98d -> r : replicate JobId=%d Job=%s address=<write sd> port=%d ssl=%d Authorization=%s 99 100group Initiate read sd to write sd connection 101 r -> w : Hello Start Storage Job %s 102 w -> r : CRAM-MD5 Challenge 103 r -> w : CRAM-MD5 Response 104 alt success 105 w -> r : 1000 OK auth 106 else failure 107 w -> r : 1999 Authorization failed. 108 end 109 r -> w : CRAM-MD5 Challenge 110 w -> r : CRAM-MD5 Response 111 alt success 112 r -> w : 1000 OK auth 113 else failure 114 r -> w : 1999 Authorization failed. 115 end 116end 117r -> d : 3000 OK replicate 118 119w -> d : 3010 Job %s start 120w -> d : Status Job=%s JobStatus=82 121note right 122 82 is numeric for 'R' which 123 means running 124end note 125 126d -> r : run 127== Message thread for Read SD communication spawned == 128r -> d : Status Job=%s JobStatus=82 129note right 130 82 is numeric for 'R' which 131 means running 132end note 133 134r -> w : start replicate 135w -> r : 3000 OK start replicate 136r -> w : replicate data %d 137w -> d : Status Job=%s JobStatus=82 138note right 139 82 is numeric for 'R' which 140 means running 141end note 142w -> r : 3000 OK data 143 144r -> w : DataRecords 145 146r -> w : BNET_EOD 147r -> w : BNET_EOD 148r -> w : end replicate 149w -> r : 3000 OK end replicate 150 151 152 153r -> d : Status Job=%s JobStatus=%d 154note right 155 send current job status 156end note 157loop each queued message 158 r -> d : Jmsg Job=%s type=%d level=%lld %s 159end 160r -> d : Status Job=%s JobStatus=84 161note right 162 84 is numeric for 'T' which 163 means terminated 164end note 165r -> d : 3099 Job %s end JobStatus=%d JobFiles=%d JobBytes=%s JobErrors=%u 166== Message thread for Read SD communication exits == 167r -> d : BNET_EOD 168 169 170loop each queued message 171 w -> d : Jmsg Job=%s type=%d level=%lld %s 172end 173w -> d : Status Job=%s JobStatus=84 174note right 175 84 is numeric for 'T' which 176 means terminated 177end note 178w -> d : 3099 Job %s end JobStatus=%d JobFiles=%d JobBytes=%s JobErrors=%u 179== Message thread for Write SD communication exits == 180w -> d : BNET_EOD 181@enduml 182