Commit 81655e62 authored by Paul Graydon's avatar Paul Graydon

wendelin_telecom_test: Update tests

parent 43bacffb
{"meta": {"event": "service connect failure", "time": 1721729980.636813, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721729983.638926, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721729986.640952, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721729989.6430056, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721729977.634778, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721729992.6450973, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721729995.6471226, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "sync", "time": 1721729998.6490216, "state": "detached", "reason": "periodic", "flags": "", "generator": "xlog --rotate 100MB.9 ws://127.0.1.2:9001 meta.sync[]/600s config_get[]/600s stats[samples,rf]/60s x.drb_stats[]/60s"}}
{"meta": {"event": "service connect failure", "time": 1721729998.6493459, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730001.6512854, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730004.653334, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730007.655417, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730010.6574998, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730013.6595304, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730016.6616268, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730019.6636472, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730022.6656835, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730025.6676886, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730028.6697836, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730031.6718156, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730034.674132, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730037.6759453, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730040.677983, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730043.6800735, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721730046.6821387, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730049.6842096, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730052.686308, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730055.6883888, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730058.690459, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730061.6925738, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730064.6946335, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730067.6966968, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730070.6986601, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730073.7007701, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730076.7028708, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730079.7049143, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730082.7070122, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730085.709076, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730088.7111511, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730091.7132792, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730094.7153559, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730097.717447, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730100.7194812, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730103.7215497, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730106.7235978, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730109.7256887, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721730112.7277548, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730115.729845, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730118.7321427, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730121.7340975, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730124.7361197, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730127.738118, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730130.7401583, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730133.74221, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730136.7442553, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730139.7463305, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730142.7484334, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730145.7504604, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730148.7524822, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730151.7545557, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730154.756655, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730157.7586973, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730160.7607927, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730163.762817, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730166.7648976, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730169.766959, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730172.769027, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721730175.7711098, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730178.7731147, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730181.7752476, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730184.7773147, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730187.7793653, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730190.7814453, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730193.7834878, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730196.7855573, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730199.787603, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730202.7896564, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730205.791981, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730208.7937446, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730211.7958455, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730214.7979207, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730217.7999263, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730220.801988, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730223.8040426, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730226.8060699, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730229.8081324, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730232.810237, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730235.8123147, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730238.8144257, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721730241.8164694, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730244.8185122, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730247.8205519, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730250.822598, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730253.8246274, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730256.8266768, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730259.82875, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730262.8308213, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730265.832893, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730268.8349748, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730271.837043, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730274.8391244, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730277.8411663, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730280.843219, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730283.845311, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730286.8473527, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730289.849699, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730292.8514998, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730295.8535726, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730298.8556626, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730301.8577247, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730304.859744, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721730307.861802, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730310.8638318, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730313.8658836, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730316.8679922, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730319.8700652, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730322.8721406, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730325.8741736, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730328.8762536, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730331.8783734, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730334.8803859, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730337.8824894, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730340.884572, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730343.8866289, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730346.8887186, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730349.8907726, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730352.8928652, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730355.8949091, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730358.896965, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730361.8990114, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730364.901026, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730367.903094, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721730370.905167, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730373.907259, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730376.909313, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730379.9113593, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730382.9134736, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730385.9155376, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730388.9176257, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730391.9196866, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730394.9217274, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730397.9237227, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730400.92577, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730403.927835, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730406.9298882, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730409.9319541, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730412.9340692, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730415.9361272, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730418.9382153, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730421.9403415, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730424.9423842, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730427.944399, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730430.9464984, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730433.9485178, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730436.9506202, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730439.9526706, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721730442.9548042, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730445.9569266, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730448.9589596, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730451.9610744, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730454.9631712, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730457.9652445, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730460.9673574, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730463.9694083, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730466.9714844, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730469.973536, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730472.9756386, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730475.977747, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730478.9797375, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730481.981873, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730484.9823065, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730487.984343, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730490.986379, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730493.988433, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730496.9905188, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730499.9925928, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730502.9946356, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721730505.9966812, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730508.9988124, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730512.0008616, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730515.0029256, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730518.004981, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730521.0070636, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730524.0090978, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730527.0112083, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730530.0132823, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730533.0154328, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730536.0176835, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730539.0195923, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730542.0217342, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730545.023742, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730548.0258436, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730551.0279229, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730554.030023, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730557.0320854, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730560.0341911, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730563.036243, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730566.038349, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730569.0404487, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721730572.042492, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730575.0445957, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730578.0466697, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730581.048777, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730584.05087, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730587.0530362, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730590.0550685, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730593.0571203, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730596.0592382, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "sync", "time": 1721730599.0611165, "state": "detached", "reason": "periodic", "flags": "", "generator": "xlog --rotate 100MB.9 ws://127.0.1.2:9001 meta.sync[]/600s config_get[]/600s stats[samples,rf]/60s x.drb_stats[]/60s"}}
{"meta": {"event": "service connect failure", "time": 1721730599.0614474, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730602.06346, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730605.0654616, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730608.0675123, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730611.0695336, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730614.07161, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730617.0736458, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730620.07577, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730623.0778446, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730626.0799434, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730629.0820477, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730632.0841076, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730635.0862038, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721730638.0882742, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730641.090363, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730644.0924315, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730647.0945117, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730650.0965514, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730653.098687, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730656.1007624, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730659.102869, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730662.1049812, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730665.1071048, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730668.1091578, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730671.1112561, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730674.1133306, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730677.1154027, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730680.1174479, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730683.1195626, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730686.1216283, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730689.1237056, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730692.1258175, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730695.1278684, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730698.1299496, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721730701.1320176, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730704.134099, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730707.1361756, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730710.138214, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730713.1402836, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730716.142392, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730719.1445324, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730722.1466298, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730725.1487062, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730728.1507833, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730731.1528504, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730734.154872, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730737.1568851, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730740.1589534, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730743.1610885, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730746.1630144, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730749.165023, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730752.167145, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730755.1675544, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730758.1696403, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730761.171751, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730764.1737876, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721730767.1758835, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730770.1779504, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730773.180054, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730776.1821408, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730779.1841936, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730782.1862938, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730785.1883428, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730788.1904151, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730791.1924417, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730794.1950781, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730797.196539, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730800.1986306, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730803.2007053, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730806.2027795, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730809.2047858, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730812.2068853, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730815.207306, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730818.209326, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730821.2114427, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730824.2134974, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730827.2155967, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721730830.2176619, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730833.2196887, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730836.2218056, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730839.2222195, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730842.2243233, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730845.226364, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730848.2284005, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730851.2304506, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730854.2324505, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730857.2345312, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730860.23659, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730863.2386594, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730866.2407553, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730869.2428083, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730872.2448862, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730875.2469602, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730878.2490354, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730881.2513998, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730884.253263, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730887.2552993, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730890.2574134, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730893.2594695, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721730896.261559, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730899.2635996, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730902.2656615, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730905.2677228, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730908.2697203, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730911.2718177, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730914.273918, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730917.27596, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730920.2780876, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730923.2801254, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730926.2822533, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730929.2842648, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730932.2863789, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730935.2884448, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730938.2905872, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730941.2926166, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730944.2946837, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730947.296711, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730950.2988305, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730953.3008916, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730956.302952, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730959.3050644, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721730962.3071375, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730965.3092232, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730968.311314, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730971.3134558, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730974.3154602, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730977.317518, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730980.3195088, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730983.321548, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730986.3236084, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730989.3257284, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730992.3277812, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730995.3298576, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721730998.3319216, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731001.3339908, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731004.3360703, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731007.3381684, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731010.340268, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731013.342345, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731016.3444118, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731019.3464947, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731022.3486314, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721731025.3506658, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731028.352672, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731031.3547575, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731034.3568215, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731037.358873, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731040.3609421, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731043.3630276, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731046.365075, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731049.3671348, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731052.3694959, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731055.3712938, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731058.3733428, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731061.3754761, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731064.3775141, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731067.3796275, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731070.3816402, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731073.3837347, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731076.385841, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731079.387937, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731082.3900483, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731085.3920722, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731088.3941803, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721731091.396276, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731094.3983216, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731097.4003747, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731100.4024103, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731103.404504, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731106.406584, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731109.408613, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731112.4107096, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731115.412769, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731118.4148319, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731121.4169383, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731124.418988, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731127.421107, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731130.423176, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731133.4252717, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731136.4275944, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731139.4293993, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731142.431504, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731145.4335358, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731148.435644, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721731151.4376755, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731154.4397216, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731157.4418173, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731160.4438012, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731163.445904, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731166.4479516, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731169.4500763, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731172.4521334, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731175.454197, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731178.456296, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731181.4583595, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731184.460468, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731187.462491, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731190.464594, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731193.4666793, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731196.468741, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "sync", "time": 1721731199.4706562, "state": "detached", "reason": "periodic", "flags": "", "generator": "xlog --rotate 100MB.9 ws://127.0.1.2:9001 meta.sync[]/600s config_get[]/600s stats[samples,rf]/60s x.drb_stats[]/60s"}}
{"meta": {"event": "service connect failure", "time": 1721731199.4709802, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731202.4730632, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731205.4750473, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731208.4771292, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721731211.4791753, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731214.481244, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731217.4833224, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731220.4853961, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731223.487672, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731226.489481, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731229.491563, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731232.4936445, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731235.4956954, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731238.4977665, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731241.4998507, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731244.5019572, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731247.5040395, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731250.5061264, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731253.5081835, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731256.510239, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731259.5122902, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731262.5144272, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731265.5165014, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731268.5186198, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721731271.5207088, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731274.522806, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731277.524859, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731280.526899, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731283.5290065, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731286.5310898, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731289.5331182, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731292.5351906, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731295.5372794, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731298.5393584, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731301.5413985, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731304.543486, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731307.545819, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731310.547661, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731313.5497396, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731316.5518422, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731319.5538611, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731322.5559964, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731325.5564995, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731328.558529, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721731331.5605843, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731334.5626028, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731337.5646765, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731340.5667124, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731343.5688055, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731346.5709147, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731349.5729544, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731352.5753324, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731355.5770996, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731358.5791917, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731361.5813036, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731364.583369, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731367.5854478, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731370.5875416, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731373.5895765, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731376.5916018, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731379.5936122, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731382.5957527, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731385.5961978, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731388.5982966, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721731391.6004207, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731394.6024005, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731397.6044338, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731400.6065617, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731403.6086047, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731406.6107075, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731409.6127489, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731412.6148577, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731415.6153286, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731418.6173441, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731421.619531, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731424.6216123, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731427.6237154, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731430.625895, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731433.6279323, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731436.6300387, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731439.63215, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731442.6341867, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731445.6362655, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731448.6383348, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721731451.6403766, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731454.6424112, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731457.644483, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731460.6465878, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731463.64862, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731466.650714, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731469.652783, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731472.6548667, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731475.65696, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731478.659028, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731481.6611176, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731484.6631896, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731487.6652377, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731490.6673467, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731493.6693966, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731496.6714563, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731499.6735444, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731502.6755776, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731505.6776602, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731508.6798096, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721731511.6818771, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731514.683921, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731517.6859977, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731520.6880562, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731523.6901596, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731526.6922233, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731529.6943178, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731532.6963997, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731535.6984894, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731538.7006207, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731541.7026644, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731544.7047317, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731547.7067513, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731550.7088413, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731553.7109587, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731556.7130105, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731559.7151017, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731562.7172346, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731565.7193146, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731568.7213347, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721731571.7234547, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731574.7255225, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731577.7275777, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731580.72969, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731583.7316592, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731586.7336576, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731589.7357085, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731592.7378185, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731595.7398655, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731598.7419667, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731601.7440464, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731604.74613, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731607.748225, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731610.75028, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731613.7524104, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731616.7544658, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731619.7565386, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731622.7586226, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731625.7606552, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731628.7628033, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721731631.7648177, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731634.7668555, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731637.7689261, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731640.7709816, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731643.7730505, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731646.7751591, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731649.777227, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731652.7793417, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731655.7814054, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731658.7834532, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731661.785551, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731664.7876005, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731667.7897213, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731670.7917938, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731673.7938955, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731676.7959964, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731679.79803, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731682.800141, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731685.8021984, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731688.8042352, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721731691.806344, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731694.8083148, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731697.8104124, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731700.8125036, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731703.8145921, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731706.8166683, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731709.8187304, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731712.8208525, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731715.8212926, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731718.8233454, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731721.8254502, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731724.8274884, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731727.8295996, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731730.83171, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731733.8338006, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731736.8358734, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731739.8379083, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731742.8400195, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731745.8404665, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731748.8425279, "reason": "connect: [Errno 111] Connection refused"}}{"meta": {"event": "service connect failure", "time": 1721731751.8445733, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731754.8466482, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731757.848751, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731760.8508115, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731763.852908, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731766.8550336, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731769.857068, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731772.8591404, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731775.861241, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731778.8632803, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731781.865365, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731784.8674595, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731787.8695157, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731790.871582, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731793.873718, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "service connect failure", "time": 1721731796.8757544, "reason": "connect: [Errno 111] Connection refused"}}
{"meta": {"event": "sync", "time": 1721731799.8776507, "state": "detached", "reason": "periodic", "flags": "", "generator": "xlog --rotate 100MB.9 ws://127.0.1.2:9001 meta.sync[]/600s config_get[]/600s stats[samples,rf]/60s x.drb_stats[]/60s"}}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -71,7 +71,7 @@
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>test_example_ors_enb_log_invalid</string> </value>
<value> <string>test_example_ors_enb_log_invalid_split_1</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......@@ -81,7 +81,7 @@
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test_example_ors_enb_log_invalid</string> </value>
<value> <string>test_example_ors_enb_log_invalid_split_1</string> </value>
</item>
<item>
<key> <string>language</string> </key>
......@@ -97,7 +97,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Test ORS Example Log (Invalid)</string> </value>
<value> <string>Test ORS Example Log (Invalid) Split 1</string> </value>
</item>
<item>
<key> <string>version</string> </key>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>test_example_ors_enb_log_invalid_split_2</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test_example_ors_enb_log_invalid_split_2</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Test ORS Example Log (Invalid) Split 2</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -34,6 +34,8 @@ import string
from Products.ERP5Type.tests.SecurityTestCase import SecurityTestCase
QCI_COUNT = 256
def generateRandomString(length=24, only_digits=False, hexadecimal=False):
character_list = string.digits
if not only_digits:
......@@ -54,16 +56,26 @@ class WendelinTelecomTest(SecurityTestCase):
def afterSetUp(self):
# Set up variables for ORS ingestion testing
self.ors_enb_log_ingestion = self.portal.portal_ingestion_policies.ors_enb_log_ingestion
self.ors_enb_kpi_endpoint_path = self.portal.getPath() + '/Base_getOrsEnbKpi'
self.test_ors_example_log_valid = {
'log': self.portal.web_page_module.test_example_ors_enb_log_valid.getTextContent()
}
self.test_ors_example_log_invalid = {
'log': self.portal.web_page_module.test_example_ors_enb_log_invalid.getTextContent()
self.test_ors_example_log_invalid_split_1 = {
'log': self.portal.web_page_module.test_example_ors_enb_log_invalid_split_1.getTextContent()
}
self.test_ors_example_log_invalid_split_2 = {
'log': self.portal.web_page_module.test_example_ors_enb_log_invalid_split_2.getTextContent()
}
self.test_ors_example_log_empty = {'log': ""}
# Set up ingestor user for performing ingestions
self.ingestor_user = self.createWendelinTelecomUser('test_ingestor_%s' % generateRandomString(), None, 'ingestor')
self.ingestor_user = self.createWendelinTelecomUser(
'test_ingestor_%s' % generateRandomString(),
None,
'ingestor'
)
def beforeTearDown(self):
self.abort()
......@@ -90,21 +102,31 @@ class WendelinTelecomTest(SecurityTestCase):
self.tic()
def createWendelinTelecomUser(self, reference, project, function):
# Create and validate a new Person with an assignment linked to the provided project and function
# Create and validate a new Person with an assignment
# linked to the provided project and function
# Also generate and validate an ERP5 login for the Person
user = self.portal.person_module.newContent(
portal_type='Person',
reference=reference
)
user.newContent(portal_type='Assignment', destination_project=project, function=function).open()
user.newContent(portal_type='ERP5 Login', reference=reference, password=reference).validate()
user.newContent(
portal_type='Assignment',
destination_project=project,
function=function
).open()
user.newContent(
portal_type='ERP5 Login',
reference=reference,
password=reference
).validate()
user.validate()
self.tic()
return user
def registerOrs(self, tag_hostname_seed=None, tag_comp_id_seed=None, tag_enb_id_seed=None):
# Create a Data Acquisition Unit and related Data Supply with a tag constructed from the provided seeds.
# Create a Data Acquisition Unit and related Data Supply
# with a tag constructed from the provided seeds.
# If any seed is NOT defined, it is generated at random.
if tag_hostname_seed is None:
tag_hostname_seed = generateRandomString(length=3, only_digits=True)
......@@ -150,10 +172,12 @@ class WendelinTelecomTest(SecurityTestCase):
reference_seed = generateRandomString()
project_reference = 'test_project_%s' % reference_seed
project_title = 'Test Project %s' % reference_seed
client_email = 'test_user_%s@test.wendelin-tele.com' % (client_user_reference_seed or reference_seed)
client_email = 'test_user_%s@test.wendelin-tele.com' \
% (client_user_reference_seed or reference_seed)
client_user_reference = client_email.split('@')[0]
# Call the script responsible for creating the project and the associated user, and store the JSON response
# Call the script responsible for creating the project and the associated user
# Store the JSON response
response = self.portal.ProjectModule_registerOrsClientProject(
project_reference,
project_title,
......@@ -197,17 +221,30 @@ class WendelinTelecomTest(SecurityTestCase):
)
return self.publish(path, **publish_kw)
def getDataIngestion(self, data_acquisition_unit):
# Retrieve a Data Ingestion linked to the provided Data Acquisition Unit
for line in data_acquisition_unit.getAggregateRelatedValueList(
portal_type='Data Ingestion Line'
):
data_ingestion = line.getParentValue()
if data_ingestion is not None:
return data_ingestion
def getDataStream(self, data_acquisition_unit):
# Retrieve a Data Stream linked to the provided Data Acquisition Unit
for line in data_acquisition_unit.getAggregateRelatedValueList(portal_type='Data Ingestion Line'):
for line in data_acquisition_unit.getAggregateRelatedValueList(
portal_type='Data Ingestion Line'
):
data_stream = line.getAggregateValue(portal_type='Data Stream')
if data_stream:
if data_stream is not None:
return data_stream
def getDataAnalysis(self, data_supply):
# Retrieve a Data Analysis linked to the provided Data Supply
for data_analysis in data_supply.getSpecialiseRelatedValueList(portal_type='Data Analysis'):
if data_analysis:
for data_analysis in data_supply.getSpecialiseRelatedValueList(
portal_type='Data Analysis'
):
if data_analysis is not None:
return data_analysis
def getDataArrays(self, data_analysis):
......@@ -215,10 +252,19 @@ class WendelinTelecomTest(SecurityTestCase):
data_array_list = []
for line in data_analysis.contentValues(portal_type='Data Analysis Line'):
data_array = line.getAggregateValue(portal_type='Data Array')
if data_array:
if data_array is not None:
data_array_list.append(data_array)
return data_array_list
def getProgressIndicator(self, data_analysis):
# Retrieve the Progress Indicator linked to the provided Data Analysis
for line in data_analysis.contentValues(portal_type="Data Analysis Line"):
if line.getResourceValue().getPortalType() == "Data Product" \
and line.getQuantity() == -1:
progress_indicator = line.getAggregateProgressIndicatorValue()
if progress_indicator is not None:
return progress_indicator
def getOrsLogIngestionItems(self, log_data, reference, stop_data_analysis=False):
# Simulate an ingestion of the provided log data
response = self.ingestOrsLogDataFromFluentd(log_data, reference)
......@@ -232,6 +278,8 @@ class WendelinTelecomTest(SecurityTestCase):
data_supply = data_acquisition_unit.DataAcquisitionUnit_createOrsDataSupply(batch=1)
self.tic()
data_ingestion = self.getDataIngestion(data_acquisition_unit)
data_stream = self.getDataStream(data_acquisition_unit)
# Manually call the data analysis alarms to process the data into KPIs ASAP
......@@ -247,17 +295,32 @@ class WendelinTelecomTest(SecurityTestCase):
data_array_list = self.getDataArrays(data_analysis)
progress_indicator = self.getProgressIndicator(data_analysis)
# Return all associated items
return {
'response': response,
'data_acquisition_unit': data_acquisition_unit,
'data_supply': data_supply,
'data_ingestion': data_ingestion,
'data_stream': data_stream,
'data_analysis': data_analysis,
'data_array_list': data_array_list
'data_array_list': data_array_list,
'progress_indicator': progress_indicator
}
def checkDocumentPermissions(self, user, document, user_can_view, user_can_modify, user_can_add):
def getOrsEnbKpiDict(self, data_array_url, kpi_type):
kpi_path = self.ors_enb_kpi_endpoint_path + '?data_array_url=' + \
data_array_url + '&kpi_type=' + kpi_type
publish_kw = dict(
user='ERP5TypeTestCase'
)
response = self.publish(kpi_path, **publish_kw)
return json.loads(response.getBody())
def checkDocumentPermissions(
self, user, document, user_can_view, user_can_modify, user_can_add
):
user_id = user.Person_getUserId()
# Check if the provided user can access and view the document
......@@ -296,7 +359,8 @@ class WendelinTelecomTest(SecurityTestCase):
user_is_admin = 'administrator' in user_function_list
user_is_ingestor = 'ingestor' in user_function_list
# A client can only view a Data Acquisition Unit (ORS) if they are related to the same project
# A client can only view a Data Acquisition Unit (ORS)
# if they are related to the same project
# An administrator can view and edit all of them, as well as add one
# An ingestor can view any of them
self.checkDocumentPermissions(
......@@ -316,18 +380,66 @@ class WendelinTelecomTest(SecurityTestCase):
user_is_admin
)
# An administrator has all rights to a Data Ingestion (for management actions)
# An ingestor also has all rights to a Data Ingestion (for managing ingestions)
self.checkDocumentPermissions(
user,
ingestion_item_dict['data_ingestion'],
user_is_admin or user_is_ingestor,
user_is_admin or user_is_ingestor,
user_is_admin or user_is_ingestor
)
# An administrator can view a Data Stream
# An ingestor has all rights to a Data Stream (in order to append new log data to it)
self.checkDocumentPermissions(user, ingestion_item_dict['data_stream'], user_is_admin or user_is_ingestor, user_is_ingestor, user_is_ingestor)
# An ingestor has all rights to a Data Stream (to append new log data to it)
self.checkDocumentPermissions(
user,
ingestion_item_dict['data_stream'],
user_is_admin or user_is_ingestor,
user_is_ingestor,
user_is_ingestor
)
# A client can only view a Data Analysis if they are related to the same project (required for KPI graphing)
# An administrator can view all of them
self.checkDocumentPermissions(user, ingestion_item_dict['data_analysis'], user_is_admin or same_project, False, False)
# A client can only view a Data Analysis
# if they are related to the same project (for KPI graphing)
# An administrator can view and edit all of them (for management actions)
# Same thing for Data Analysis Lines
self.checkDocumentPermissions(
user,
ingestion_item_dict['data_analysis'],
user_is_admin or same_project,
user_is_admin,
user_is_admin
)
for data_analysis_line in ingestion_item_dict['data_analysis'] \
.contentValues(portal_type='Data Analysis Line'):
self.checkDocumentPermissions(
user,
data_analysis_line,
user_is_admin or same_project,
user_is_admin,
user_is_admin
)
# A client can only view a Data Array if they are related to the same project
# An administrator can view all of them
for data_array in ingestion_item_dict['data_array_list']:
self.checkDocumentPermissions(user, data_array, user_is_admin or same_project, False, False)
self.checkDocumentPermissions(
user,
data_array,
user_is_admin or same_project,
False,
False
)
# Only an administrator can view a Progress Indicator (for management actions)
self.checkDocumentPermissions(
user,
ingestion_item_dict['progress_indicator'],
user_is_admin,
False,
False
)
def checkModulePermissions(self, user):
user_function_list = None
......@@ -339,15 +451,22 @@ class WendelinTelecomTest(SecurityTestCase):
user_is_admin = 'administrator' in user_function_list
user_is_ingestor = 'ingestor' in user_function_list
# Everyone can view the Data Product module (required for KPI graphing)
# Everyone can also view the two data products used in the KPI calculation process (required for KPI graphing)
self.checkDocumentPermissions(user, self.portal.data_product_module, True, False, False)
ors_kpi = self.portal.portal_catalog.getResultValue(
# Everyone can view the Data Product module (for KPI graphing)
# Everyone can also view the two data products
# used in the KPI calculation process (for KPI graphing)
self.checkDocumentPermissions(
user,
self.portal.data_product_module,
True,
False,
False
)
ors_enb_kpi = self.portal.portal_catalog.getResultValue(
portal_type='Data Product',
reference='ors_kpi',
reference='ors_enb_kpi',
validation_state='validated'
)
self.checkDocumentPermissions(user, ors_kpi, True, False, False)
self.checkDocumentPermissions(user, ors_enb_kpi, True, False, False)
ors_enb_log_data = self.portal.portal_catalog.getResultValue(
portal_type='Data Product',
reference='ors_enb_log_data',
......@@ -355,29 +474,61 @@ class WendelinTelecomTest(SecurityTestCase):
)
self.checkDocumentPermissions(user, ors_enb_log_data, True, False, False)
# Only ingestors can view the Data Operation Module, as well as the two Data Operations required
# for ORS eNB log ingestion
self.checkDocumentPermissions(user, self.portal.data_operation_module, user_is_ingestor, False, False)
# Only ingestors can view the Data Operation Module,
# as well as the two Data Operations required for ORS eNB log ingestion
self.checkDocumentPermissions(
user,
self.portal.data_operation_module,
user_is_ingestor,
False,
False
)
ingest_ors_enb_log_data = self.portal.portal_catalog.getResultValue(
portal_type='Data Operation',
reference='ingest_ors_enb_log_data',
validation_state='validated'
)
self.checkDocumentPermissions(user, ingest_ors_enb_log_data, user_is_ingestor, False, False)
self.checkDocumentPermissions(
user,
ingest_ors_enb_log_data,
user_is_ingestor,
False,
False
)
calculate_ors_kpi = self.portal.portal_catalog.getResultValue(
portal_type='Data Operation',
reference='calculate_ors_kpi',
reference='calculate_ors_enb_kpi',
validation_state='validated'
)
self.checkDocumentPermissions(user, calculate_ors_kpi, user_is_ingestor, False, False)
self.checkDocumentPermissions(
user,
calculate_ors_kpi,
user_is_ingestor,
False,
False
)
# Everyone can view the Data Acquisition Unit and Data Supply modules
# Only administrators can add items to them
self.checkDocumentPermissions(user, self.portal.data_acquisition_unit_module, True, False, user_is_admin)
self.checkDocumentPermissions(user, self.portal.data_supply_module, True, False, user_is_admin)
self.checkDocumentPermissions(
user,
self.portal.data_acquisition_unit_module,
True,
False,
user_is_admin
)
self.checkDocumentPermissions(
user,
self.portal.data_supply_module,
True,
False,
user_is_admin
)
# Only clients and administrator can view the Data Transformation module (required for KPI graphing)
# Only they can also view the data transformation used to produce the KPIs (required for KPI graphing)
# Only clients and administrator can view the Data Transformation module
# (for KPI graphing)
# Only they can also view the data transformation used to produce the KPIs
# (for KPI graphing)
self.checkDocumentPermissions(
user,
self.portal.data_transformation_module,
......@@ -390,9 +541,16 @@ class WendelinTelecomTest(SecurityTestCase):
reference='ors_enb_log_data_transformation',
validation_state='validated'
)
self.checkDocumentPermissions(user, data_transformation, user_is_client or user_is_admin, False, False)
self.checkDocumentPermissions(
user,
data_transformation,
user_is_client or user_is_admin,
False,
False
)
# Only ingestors and administrators can view the Data Ingestion and Data Stream modules
# Only ingestors and administrators can view
# the Data Ingestion and Data Stream modules
# Only ingestors can add new Data Ingestions and Data Streams
self.checkDocumentPermissions(
user,
......@@ -409,15 +567,50 @@ class WendelinTelecomTest(SecurityTestCase):
user_is_ingestor
)
# Only administrators can view the Progress Indicator Module
self.checkDocumentPermissions(
user,
self.portal.progress_indicator_module,
user_is_admin,
False,
False
)
# Only administrators can view the Data Analysis module
self.checkDocumentPermissions(user, self.portal.data_analysis_module, user_is_admin, False, False)
self.checkDocumentPermissions(
user,
self.portal.data_analysis_module,
user_is_admin,
False,
False
)
# Only clients and administrators can view the Data Array module (required for KPI graphing)
self.checkDocumentPermissions(user, self.portal.data_array_module, user_is_client or user_is_admin, False, False)
# Only clients and administrators can view the Data Array module
# (for KPI graphing)
self.checkDocumentPermissions(
user,
self.portal.data_array_module,
user_is_client or user_is_admin,
False,
False
)
# Only administrators have access to the Person and Project modules and can add items to them for client management purposes
self.checkDocumentPermissions(user, self.portal.project_module, user_is_admin, False, user_is_admin)
self.checkDocumentPermissions(user, self.portal.person_module, user_is_admin, False, user_is_admin)
# Only administrators have access to the Person and Project modules
# and can add items to them for client management purposes
self.checkDocumentPermissions(
user,
self.portal.project_module,
user_is_admin,
False,
user_is_admin
)
self.checkDocumentPermissions(
user,
self.portal.person_module,
user_is_admin,
False,
user_is_admin
)
def test_01_createOrsDataSupply(self):
'''
......@@ -450,7 +643,8 @@ class WendelinTelecomTest(SecurityTestCase):
def test_02_registerOrsClientProject(self):
'''
Test the action performed by Administrator users in the Project module to register a new client project.
Test the action performed by Administrator users in the Project module
to register a new client project.
Check the successful case as well as all error cases.
'''
......@@ -468,24 +662,33 @@ class WendelinTelecomTest(SecurityTestCase):
repeated_project_item_dict = self.registerOrsClientProject(reference_seed=reference_seed)
# Check that both the project and the client user are identical to the previous ones
self.assertTrue(repeated_project_item_dict['project'] == project_item_dict['project'])
self.assertTrue(repeated_project_item_dict['client_user'] == repeated_project_item_dict['client_user'])
self.assertTrue(repeated_project_item_dict['project'] \
== project_item_dict['project'])
self.assertTrue(repeated_project_item_dict['client_user'] \
== repeated_project_item_dict['client_user'])
# Create a new reference seed for the project, but reuse the previous reference for the client user account
# Create a new reference seed for the project
# but reuse the previous reference for the client user account
new_project_reference_seed = generateRandomString()
while new_project_reference_seed == reference_seed:
new_project_reference_seed = generateRandomString()
# Call the script a third time, keeping the same reference seed as before ONLY for the client user account
# This should also error out as the client user account already exists
new_project_item_dict = self.registerOrsClientProject(reference_seed=new_project_reference_seed, client_user_reference_seed=reference_seed)
new_project_item_dict = self.registerOrsClientProject(
reference_seed=new_project_reference_seed,
client_user_reference_seed=reference_seed
)
# Check that the new project is NOT created and that the client user is the same as previously
# Check that the new project is NOT created
# and that the client user is the same as previously
self.assertTrue(new_project_item_dict['project'] is None)
self.assertTrue(new_project_item_dict['client_user'] == project_item_dict['client_user'])
self.assertTrue(new_project_item_dict['client_user'] \
== project_item_dict['client_user'])
def test_03_1_registerValidOrs(self):
'''
Test the script called during slave instantiation in SlapOS by an ORS to automatically register itself.
Test the script called during slave instantiation in SlapOS
by an ORS to automatically register itself.
Check all valid cases.
'''
......@@ -549,13 +752,15 @@ class WendelinTelecomTest(SecurityTestCase):
# Now, link the above Data Supply to a second project
project_b_item_dict = self.registerOrsClientProject()
new_enb_id_ors_item_dict['data_supply'].setDestinationProject(project_b_item_dict['project'].getRelativeUrl())
new_enb_id_ors_item_dict['data_supply'] \
.setDestinationProject(project_b_item_dict['project'].getRelativeUrl())
# Generate another valid enb_id seed
another_tag_enb_id_seed = generateRandomString(length=5, hexadecimal=True)
while another_tag_enb_id_seed == new_tag_enb_id_seed:
another_tag_enb_id_seed = generateRandomString(length=5, hexadecimal=True)
# Call the script to simulate the same ORS registering a third time with another eNB identifier
# Call the script to simulate the same ORS
# registering a third time with another eNB identifier
another_enb_id_ors_item_dict = self.registerOrs(
tag_hostname_seed=tag_hostname_seed,
tag_comp_id_seed=tag_comp_id_seed,
......@@ -593,7 +798,8 @@ class WendelinTelecomTest(SecurityTestCase):
def test_03_2_registerInvalidOrs(self):
'''
Test the script called during slave instantiation in SlapOS by an ORS to automatically register itself.
Test the script called during slave instantiation in SlapOS
by an ORS to automatically register itself.
Check all invalid cases.
'''
......@@ -644,67 +850,134 @@ class WendelinTelecomTest(SecurityTestCase):
'''
Test a simple valid ORS log ingestion: simulate a fluentd gateway forwarding valid ORS logs to the platform,
and check that all items related to the ingestion are valid.
Also check the fetching of KPI values through the dedicated API endpoint.
The logs are correct here, even though some are expectedly out of chronological order.
'''
# Register the ORS
ors_item_dict = self.registerOrs()
ors_tag = ors_item_dict['data_acquisition_unit'].getReference()
# Get the correct data logs according to what is being tested
test_ors_example_log = None
test_ors_example_logs = []
if data_key == "valid":
test_ors_example_log = self.test_ors_example_log_valid
test_ors_example_logs = [self.test_ors_example_log_valid]
elif data_key == "invalid":
test_ors_example_log = self.test_ors_example_log_invalid
test_ors_example_logs = [
self.test_ors_example_log_invalid_split_1,
self.test_ors_example_log_invalid_split_2
]
elif data_key == "empty":
test_ors_example_log = self.test_ors_example_log_empty
test_ors_example_logs = [self.test_ors_example_log_empty]
# Perform ingestion
ingestion_item_dict = self.getOrsLogIngestionItems(test_ors_example_log, ors_tag)
# Perform ingestions, and keep only the last item dictionary
# as they are all identical
ingestion_item_dicts = [
self.getOrsLogIngestionItems(ors_log, ors_tag) \
for ors_log in test_ors_example_logs
]
ingestion_item_dict = ingestion_item_dicts[-1]
# In all cases, check that all items related to the ingestion exist
# In all cases, check that all items related to the ingestions exist
self.assertEqual(NO_CONTENT, ingestion_item_dict['response'].getStatus())
self.assertTrue(ingestion_item_dict['data_acquisition_unit'] is not None)
self.assertTrue(ingestion_item_dict['data_supply'] is not None)
self.assertTrue(ingestion_item_dict['data_ingestion'] is not None)
self.assertTrue(ingestion_item_dict['data_stream'].getData() is not None)
self.assertTrue(ingestion_item_dict['data_analysis'] is not None)
self.assertTrue(all(data_array is not None for data_array in ingestion_item_dict['data_array_list']))
self.assertTrue(ingestion_item_dict['progress_indicator'] is not None)
# Check that the data arrays containing the KPI data have correctly been initialized
self.assertTrue(ingestion_item_dict['data_acquisition_unit'].DataAcquisitionUnit_getERabDataArrayKey() is not None)
self.assertTrue(ingestion_item_dict['data_acquisition_unit'].DataAcquisitionUnit_getEUtranDataArrayKey() is not None)
# Check that the value of the progress indicator is equal to the size of the Data Stream:
# i.e. that all of the ingested data has been processed into KPIs
self.assertTrue(
ingestion_item_dict['progress_indicator'].getIntOffsetIndex() \
== ingestion_item_dict['data_stream'].getSize()
)
e_rab_shape = (0,)
e_rab_dtype = [
# Check that the Data Arrays containing the KPI data have correctly been initialized
self.assertTrue(
ingestion_item_dict['data_acquisition_unit'].DataAcquisitionUnit_getERabDataArrayUrl() \
is not None
)
self.assertTrue(
ingestion_item_dict['data_acquisition_unit'].DataAcquisitionUnit_getEUtranDataArrayUrl() \
is not None
)
e_rab_array_shape = None
e_rab_array_dtype = [
('vt', '<f8'),
('vInitialEPSBEstabSR_lo', '<f8'),
('vInitialEPSBEstabSR_hi', '<f8'),
('vAddedEPSBEstabSR_lo', '<f8'),
('vAddedEPSBEstabSR_hi', '<f8')
]
e_utran_shape = (0,)
e_utran_dtype = [('evt', '<f8'), ('qci', '<f8'), ('dl_lo', '<f8'), ('dl_hi', '<f8'), ('ul_lo', '<f8'), ('ul_hi', '<f8')]
e_utran_array_shape = None
e_utran_array_dtype = [
('evt', '<f8'),
('dl_lo', '<f8'),
('dl_hi', '<f8'),
('ul_lo', '<f8'),
('ul_hi', '<f8')
]
if data_key == "valid":
e_rab_shape = (24,)
e_rab_array_shape = (82,)
e_utran_array_shape = (20992,)
elif data_key == "invalid":
e_rab_shape = (30,)
e_rab_array_shape = (73,)
e_utran_array_shape = (18688,)
elif data_key == "empty":
e_rab_shape = None
e_rab_dtype = None
e_utran_shape = None
e_utran_dtype = None
e_rab_array_dtype = None
e_utran_array_dtype = None
# Check the data types and shape of the Data Arrays
# Also fetch and check the KPI data from the dedicated API endpoint
for data_array in ingestion_item_dict['data_array_list']:
if 'e_rab' in data_array.getReference():
self.assertTrue(data_array.getArrayDtype() == e_rab_dtype)
self.assertTrue(data_array.getArrayShape() == e_rab_shape)
self.assertTrue(data_array.getArrayShape() == e_rab_array_shape)
self.assertTrue(data_array.getArrayDtype() == e_rab_array_dtype)
e_rab_kpi_dict = self.getOrsEnbKpiDict(
data_array.getRelativeUrl(),
'e_rab_accessibility'
)
if e_rab_array_shape is None:
self.assertTrue(e_rab_kpi_dict == {})
else:
for key in e_rab_kpi_dict:
self.assertTrue(len(e_rab_kpi_dict[key]) == e_rab_array_shape[0])
elif 'e_utran' in data_array.getReference():
self.assertTrue(data_array.getArrayDtype() == e_utran_dtype)
self.assertTrue(data_array.getArrayShape() == e_utran_shape)
self.assertTrue(data_array.getArrayShape() == e_utran_array_shape)
self.assertTrue(data_array.getArrayDtype() == e_utran_array_dtype)
e_utran_kpi_dict = self.getOrsEnbKpiDict(
data_array.getRelativeUrl(),
'e_utran_ip_throughput'
)
if e_utran_array_shape is None:
self.assertTrue(e_utran_kpi_dict == {})
else:
for key in e_utran_kpi_dict:
if key == 'evt':
self.assertTrue(
len(e_utran_kpi_dict[key]) == e_utran_array_shape[0] // QCI_COUNT
)
else:
self.assertTrue(len(e_utran_kpi_dict[key]) == 1)
if key != 'active_qci':
self.assertTrue(
len(e_utran_kpi_dict[key][0]) == e_utran_array_shape[0] // QCI_COUNT
)
def test_04_2_ingestInvalidOrsLogDataFromFluentd(self):
'''
Test an invalid ORS log ingestion: simulate a fluentd gateway forwarding invalid ORS logs to the platform.
Check that all items are still valid, as only the invalid measurements are ignored.
Check that all items are still valid, as log chunks containing invalid measurements are skipped and
KPIs can continue to be calculated once they are no longer in the calculation window.
Also check the fetching of KPI values through the dedicated API endpoint.
'''
# Call the above test, but test with invalid data
......@@ -714,15 +987,16 @@ class WendelinTelecomTest(SecurityTestCase):
'''
Test an empty ORS log ingestion: simulate a fluentd gateway forwarding empty ORS logs to the platform.
Check that all items are valid, but the data arrays remain uninitialized.
Also check the fetching of KPI values through the dedicated API endpoint.
'''
# Call the above test, but test with empty data
self.test_04_1_ingestValidOrsLogDataFromFluentd(data_key="empty")
def test_04_4_ingestOrsLogDataWithoutPrefix(self):
def test_04_4_ingestOrsLogDataWithoutTagPrefix(self):
'''
Simulate an entity trying to send data to the platform for ingestion
without using the 'ors.' prefix added by fluentd.
without using the 'ors.' tag prefix added by fluentd.
Check that the ingestion is refused.
'''
......@@ -737,7 +1011,664 @@ class WendelinTelecomTest(SecurityTestCase):
entity_tag
)
def test_05_wendelinTelecomSecurityModel(self):
def test_05_updateOrsConfigurationsFastInput(self):
'''
Test the scripts called by the Update ORS Configurations Fast Input action which updates the title
of Data Acquisition Units, as well as the client project to which they are indirectly linked.
Check all possible configurations.
'''
def checkItemDictState(
item_dict,
data_acquisition_unit_validation_state,
data_supply_validation_state,
item_simulation_state,
expected_title=None,
expected_project=None
):
expected_title = expected_title \
or item_dict['data_acquisition_unit'].getReference()
self.assertTrue(
item_dict['data_acquisition_unit'].getTitle() == expected_title
)
self.assertTrue(
item_dict['data_acquisition_unit'].getValidationState() \
== data_acquisition_unit_validation_state
)
self.assertTrue(
item_dict['data_supply'].getValidationState() \
== data_supply_validation_state
)
if expected_project:
self.assertTrue(
item_dict['data_supply'].getDestinationProject() == expected_project
)
else:
self.assertTrue(
item_dict['data_supply'].getDestinationProject() is None
)
for item_key in ['data_ingestion', 'data_analysis']:
if item_key not in item_dict:
continue
self.assertTrue(
item_dict['data_ingestion'].getSimulationState() \
== item_simulation_state
)
if expected_project and item_simulation_state == 'started':
self.assertTrue(
item_dict[item_key].getDestinationProject() == expected_project
)
else:
self.assertTrue(
item_dict[item_key].getDestinationProject() is None
)
# Register ORS
ors_count = 8
ors_item_dict_list = [self.registerOrs() for _ in range(ors_count)]
# Register client projects
project_count = 2
project_item_dict_list = [self.registerOrsClientProject() for _ in range(project_count)]
# Perform a data ingestion for each ORS
# except for the last three
ingestion_item_dict_list = [
self.getOrsLogIngestionItems(
self.test_ors_example_log_valid,
ors_item_dict['data_acquisition_unit'].getReference()
)
for ors_item_dict in ors_item_dict_list[:5]
]
# Invalidate the third ORS
ingestion_item_dict_list[2]['data_acquisition_unit'].invalidate()
# Invalidate the Data Supply for the fourth ORS
ingestion_item_dict_list[3]['data_supply'].invalidate()
# Deliver the Data Ingestion and Data Analysis for the fifth ORS
ingestion_item_dict_list[4]['data_ingestion'].deliver()
ingestion_item_dict_list[4]['data_analysis'].deliver()
# Check the initial state of the ingestion items
checkItemDictState(
ingestion_item_dict_list[0],
'validated',
'validated',
'started',
)
checkItemDictState(
ingestion_item_dict_list[1],
'validated',
'validated',
'started',
)
checkItemDictState(
ingestion_item_dict_list[2],
'invalidated',
'validated',
'started',
)
checkItemDictState(
ingestion_item_dict_list[3],
'validated',
'invalidated',
'started',
)
checkItemDictState(
ingestion_item_dict_list[4],
'validated',
'validated',
'delivered',
)
checkItemDictState(
ors_item_dict_list[5],
'validated',
'validated',
'started',
)
checkItemDictState(
ors_item_dict_list[6],
'validated',
'validated',
'started',
)
checkItemDictState(
ors_item_dict_list[7],
'validated',
'validated',
'started',
)
# Retrieve the item list that will be used by the Fast Input listbox
# Check that all registered items are there by their relative URLs
# except for the third one (invalidated Data Acquisition Unit)
initial_listbox_item_list = \
self.portal.DataAcquisitionUnitModule_getOrsConfigurationFastInputList()
initial_listbox_item_url_list = [
item.getRelativeUrl() for item in initial_listbox_item_list
]
self.assertTrue(
ors_item_dict_list[0]['data_acquisition_unit'].getRelativeUrl() \
in initial_listbox_item_url_list
)
self.assertTrue(
ors_item_dict_list[1]['data_acquisition_unit'].getRelativeUrl() \
in initial_listbox_item_url_list
)
self.assertTrue(
ors_item_dict_list[2]['data_acquisition_unit'].getRelativeUrl() \
not in initial_listbox_item_url_list
)
self.assertTrue(
ors_item_dict_list[3]['data_acquisition_unit'].getRelativeUrl() \
in initial_listbox_item_url_list
)
self.assertTrue(
ors_item_dict_list[4]['data_acquisition_unit'].getRelativeUrl() \
in initial_listbox_item_url_list
)
self.assertTrue(
ors_item_dict_list[5]['data_acquisition_unit'].getRelativeUrl() \
in initial_listbox_item_url_list
)
self.assertTrue(
ors_item_dict_list[6]['data_acquisition_unit'].getRelativeUrl() \
in initial_listbox_item_url_list
)
self.assertTrue(
ors_item_dict_list[7]['data_acquisition_unit'].getRelativeUrl() \
in initial_listbox_item_url_list
)
# Build a listbox item list for updating:
# The first ORS will be linked to the first project
# The second will be linked to the second project
# The fourth will be linked to the first project
# The fifth will be linked to the second project
# The sixth will be left as is
# The seventh will be linked to the first project
# The eighth will also be left as is
listbox = (
{
'listbox_key': ors_item_dict_list[0]['data_acquisition_unit'].getRelativeUrl(),
'destination_project': project_item_dict_list[0]['project'].getRelativeUrl(),
'title': 'First Test ORS'
},
{
'listbox_key': ors_item_dict_list[1]['data_acquisition_unit'].getRelativeUrl(),
'destination_project': project_item_dict_list[1]['project'].getRelativeUrl(),
'title': 'Second Test ORS'
},
{
'listbox_key': ors_item_dict_list[3]['data_acquisition_unit'].getRelativeUrl(),
'destination_project': project_item_dict_list[0]['project'].getRelativeUrl(),
'title': 'Fourth Test ORS'
},
{
'listbox_key': ors_item_dict_list[4]['data_acquisition_unit'].getRelativeUrl(),
'destination_project': project_item_dict_list[1]['project'].getRelativeUrl(),
'title': 'Fifth Test ORS'
},
{
'listbox_key': ors_item_dict_list[5]['data_acquisition_unit'].getRelativeUrl(),
'destination_project': '',
'title': ''
},
{
'listbox_key': ors_item_dict_list[6]['data_acquisition_unit'].getRelativeUrl(),
'destination_project': project_item_dict_list[0]['project'].getRelativeUrl(),
'title': 'Seventh Test ORS'
},
{
'listbox_key': ors_item_dict_list[7]['data_acquisition_unit'].getRelativeUrl(),
'destination_project': '',
'title': ''
}
)
# Call the script to update the items
self.portal.DataAcquisitionUnitModule_updateOrsConfigurationFastInputList(listbox=listbox)
self.tic()
# Check that the properties have been correctly updated
checkItemDictState(
ingestion_item_dict_list[0],
'validated',
'validated',
'started',
expected_title='First Test ORS',
expected_project=project_item_dict_list[0]['project'].getRelativeUrl(),
)
checkItemDictState(
ingestion_item_dict_list[1],
'validated',
'validated',
'started',
expected_title='Second Test ORS',
expected_project=project_item_dict_list[1]['project'].getRelativeUrl(),
)
checkItemDictState(
ingestion_item_dict_list[2],
'invalidated',
'validated',
'started',
)
checkItemDictState(
ingestion_item_dict_list[3],
'validated',
'invalidated',
'started',
expected_title='Fourth Test ORS',
expected_project=project_item_dict_list[0]['project'].getRelativeUrl(),
)
checkItemDictState(
ingestion_item_dict_list[4],
'validated',
'validated',
'delivered',
expected_title='Fifth Test ORS',
expected_project=project_item_dict_list[1]['project'].getRelativeUrl(),
)
checkItemDictState(
ors_item_dict_list[5],
'validated',
'validated',
'started',
)
checkItemDictState(
ors_item_dict_list[6],
'validated',
'validated',
'started',
expected_title='Seventh Test ORS',
expected_project=project_item_dict_list[0]['project'].getRelativeUrl(),
)
checkItemDictState(
ors_item_dict_list[7],
'validated',
'validated',
'started',
)
def test_06_archiveOrsDataIngestionFastInput(self):
'''
Test the scripts called by the Archive ORS Data Ingestion Fast Input action which archives
the selected Data Acquisition Unit as well as all related items, in order to restart
the ingestion anew.
'''
archived_reference_marker = 'ARCHIVED'
def checkIngestionItemDictState(
ingestion_item_dict,
data_acquisition_unit_validation_state,
item_validation_state,
item_simulation_state,
archived=False
):
self.assertTrue(
ingestion_item_dict['data_acquisition_unit'].getValidationState() \
== data_acquisition_unit_validation_state
)
for item_key in ['data_supply', 'data_stream', 'progress_indicator']:
self.assertTrue(
ingestion_item_dict[item_key].getValidationState() \
== item_validation_state
)
for data_array in ingestion_item_dict['data_array_list']:
self.assertTrue(
data_array.getValidationState() == item_validation_state
)
for data_simulation_key in ['data_ingestion', 'data_analysis']:
self.assertTrue(
ingestion_item_dict[data_simulation_key].getSimulationState() \
== item_simulation_state
)
if archived:
self.assertTrue(
ingestion_item_dict['data_acquisition_unit'].getTitle().count(archived_reference_marker) == 1
)
for item_key in ['data_acquisition_unit', 'data_supply', 'data_stream']:
self.assertTrue(
archived_reference_marker in ingestion_item_dict[item_key].getReference()
)
for data_array in ingestion_item_dict['data_array_list']:
self.assertTrue(
archived_reference_marker in data_array.getReference()
)
for data_simulation_key in ['data_ingestion', 'data_analysis']:
self.assertTrue(
archived_reference_marker in ingestion_item_dict[data_simulation_key].getReference()
)
else:
self.assertTrue(
archived_reference_marker not in ingestion_item_dict['data_acquisition_unit'].getTitle()
)
for item_key in ['data_acquisition_unit', 'data_supply', 'data_stream']:
self.assertTrue(
archived_reference_marker not in ingestion_item_dict[item_key].getReference()
)
for data_array in ingestion_item_dict['data_array_list']:
self.assertTrue(
archived_reference_marker not in data_array.getReference()
)
for data_simulation_key in ['data_ingestion', 'data_analysis']:
self.assertTrue(
archived_reference_marker not in ingestion_item_dict[data_simulation_key].getReference()
)
# Register ORS
ors_count = 5
ors_item_dict_list = [self.registerOrs() for _ in range(ors_count)]
# Perform a data ingestion for each ORS
# except for the last one
ingestion_item_dict_list = [
self.getOrsLogIngestionItems(
self.test_ors_example_log_valid,
ors_item_dict['data_acquisition_unit'].getReference()
)
for ors_item_dict in ors_item_dict_list[:-1]
]
# Leave the first and second set of ingestion items as is
# For the third: invalidate the Data Acquisition Unit
ingestion_item_dict_list[2]['data_acquisition_unit'].invalidate()
# For the fourth: invalidate/deliver everything else
ingestion_item_dict_list[3]['data_supply'].invalidate()
ingestion_item_dict_list[3]['data_ingestion'].deliver()
ingestion_item_dict_list[3]['data_stream'].invalidate()
ingestion_item_dict_list[3]['data_analysis'].deliver()
for data_array in ingestion_item_dict_list[3]['data_array_list']:
data_array.invalidate()
ingestion_item_dict_list[3]['progress_indicator'].invalidate()
# Check the initial state of the ingestion items
checkIngestionItemDictState(
ingestion_item_dict_list[0],
'validated',
'validated',
'started',
)
checkIngestionItemDictState(
ingestion_item_dict_list[1],
'validated',
'validated',
'started',
)
checkIngestionItemDictState(
ingestion_item_dict_list[2],
'invalidated',
'validated',
'started',
)
checkIngestionItemDictState(
ingestion_item_dict_list[3],
'validated',
'invalidated',
'delivered',
)
self.assertTrue(
ors_item_dict_list[-1]['data_acquisition_unit'].getValidationState() \
== 'validated'
)
self.assertTrue(
ors_item_dict_list[-1]['data_supply'].getValidationState() \
== 'validated'
)
# Retrieve the item list that will be used by the Fast Input listbox
# Check that all registered items are there by their relative URLs
# except for the third one (invalidated Data Acquisition Unit)
initial_listbox_item_list = \
self.portal.DataAcquisitionUnitModule_getOrsIngestionFastInputList()
initial_listbox_item_url_list = [
item.getRelativeUrl() for item in initial_listbox_item_list
]
self.assertTrue(
ors_item_dict_list[0]['data_acquisition_unit'].getRelativeUrl() \
in initial_listbox_item_url_list
)
self.assertTrue(
ors_item_dict_list[1]['data_acquisition_unit'].getRelativeUrl() \
in initial_listbox_item_url_list
)
self.assertTrue(
ors_item_dict_list[2]['data_acquisition_unit'].getRelativeUrl() \
not in initial_listbox_item_url_list
)
self.assertTrue(
ors_item_dict_list[3]['data_acquisition_unit'].getRelativeUrl() \
in initial_listbox_item_url_list
)
self.assertTrue(
ors_item_dict_list[4]['data_acquisition_unit'].getRelativeUrl() \
in initial_listbox_item_url_list
)
# Build a listbox item list for updating:
# All ORS will be selected for archiving
# except for the second one
listbox = (
{
'listbox_key': ors_item_dict_list[0]['data_acquisition_unit'].getRelativeUrl(),
'listbox_selected': True
},
{
'listbox_key': ors_item_dict_list[1]['data_acquisition_unit'].getRelativeUrl(),
'listbox_selected': False
},
{
'listbox_key': ors_item_dict_list[3]['data_acquisition_unit'].getRelativeUrl(),
'listbox_selected': True
},
{
'listbox_key': ors_item_dict_list[4]['data_acquisition_unit'].getRelativeUrl(),
'listbox_selected': True
}
)
# Call the script to update the items
self.portal.DataAcquisitionUnitModule_archiveOrsIngestionFastInputList(listbox=listbox)
self.tic()
# Check that only the selected items have been correctly updated
checkIngestionItemDictState(
ingestion_item_dict_list[0],
'invalidated',
'invalidated',
'delivered',
archived=True
)
checkIngestionItemDictState(
ingestion_item_dict_list[1],
'validated',
'validated',
'started',
archived=False
)
checkIngestionItemDictState(
ingestion_item_dict_list[2],
'invalidated',
'validated',
'started',
archived=False
)
checkIngestionItemDictState(
ingestion_item_dict_list[3],
'invalidated',
'invalidated',
'delivered',
archived=True
)
self.assertTrue(
ors_item_dict_list[4]['data_acquisition_unit'].getValidationState() \
== 'invalidated'
)
self.assertTrue(
ors_item_dict_list[4]['data_acquisition_unit'].getTitle().count(archived_reference_marker) == 1
)
self.assertTrue(
archived_reference_marker in ors_item_dict_list[4]['data_acquisition_unit'].getReference()
)
self.assertTrue(
ors_item_dict_list[4]['data_supply'].getValidationState() \
== 'invalidated'
)
self.assertTrue(
archived_reference_marker in ors_item_dict_list[4]['data_supply'].getReference()
)
# Retrieve the item list that will be used by the Fast Input listbox again
# Check that only the second Data Acquisition Unit is there now
redo_listbox_item_list = \
self.portal.DataAcquisitionUnitModule_getOrsIngestionFastInputList()
redo_listbox_item_url_list = [
item.getRelativeUrl() for item in redo_listbox_item_list
]
self.assertTrue(
ors_item_dict_list[0]['data_acquisition_unit'].getRelativeUrl() \
not in redo_listbox_item_url_list
)
self.assertTrue(
ors_item_dict_list[1]['data_acquisition_unit'].getRelativeUrl() \
in redo_listbox_item_url_list
)
self.assertTrue(
ors_item_dict_list[2]['data_acquisition_unit'].getRelativeUrl() \
not in redo_listbox_item_url_list
)
self.assertTrue(
ors_item_dict_list[3]['data_acquisition_unit'].getRelativeUrl() \
not in redo_listbox_item_url_list
)
self.assertTrue(
ors_item_dict_list[4]['data_acquisition_unit'].getRelativeUrl() \
not in redo_listbox_item_url_list
)
def test_07_refreshOrsKpiDataAnalysisFastInput(self):
'''
Test the scripts called by the Refresh ORS KPI Data Analyses Fast Input action which plans
a full refresh for the selected ongoing Data Analyses.
'''
# Register ORS
ors_count = 5
ors_item_dict_list = [self.registerOrs() for _ in range(ors_count)]
# Perform a data ingestion for each ORS
ingestion_item_dict_list = [
self.getOrsLogIngestionItems(
self.test_ors_example_log_valid,
ors_item_dict['data_acquisition_unit'].getReference()
)
for ors_item_dict in ors_item_dict_list
]
# Leave the first and second Data Analyses started
# Deliver the third
ingestion_item_dict_list[2]['data_analysis'].deliver()
# Stop the fourth
ingestion_item_dict_list[3]['data_analysis'].stop()
# Plan a refresh for the fifth
ingestion_item_dict_list[4]['data_analysis'].planRefresh()
self.tic()
# Check the initial state of the Data Analyses
self.assertTrue(
ingestion_item_dict_list[0]['data_analysis'].getSimulationState() == 'started' \
and ingestion_item_dict_list[0]['data_analysis'].getRefreshState() == 'current'
)
self.assertTrue(
ingestion_item_dict_list[1]['data_analysis'].getSimulationState() == 'started' \
and ingestion_item_dict_list[1]['data_analysis'].getRefreshState() == 'current'
)
self.assertTrue(
ingestion_item_dict_list[2]['data_analysis'].getSimulationState() == 'delivered' \
and ingestion_item_dict_list[2]['data_analysis'].getRefreshState() == 'current'
)
self.assertTrue(
ingestion_item_dict_list[3]['data_analysis'].getSimulationState() == 'stopped' \
and ingestion_item_dict_list[3]['data_analysis'].getRefreshState() == 'current'
)
self.assertTrue(
ingestion_item_dict_list[4]['data_analysis'].getSimulationState() == 'started' \
and ingestion_item_dict_list[4]['data_analysis'].getRefreshState() == 'refresh_planned'
)
# Retrieve the item list that will be used by the Fast Input listbox
# Check that only the first Data Analysis is there by its relative URL
initial_listbox_item_list = \
self.portal.DataAnalysisModule_getOrsKpiDataAnalysisFastInputList()
initial_listbox_item_url_list = [
item.getRelativeUrl() for item in initial_listbox_item_list
]
self.assertTrue(
ingestion_item_dict_list[0]['data_analysis'].getRelativeUrl() \
in initial_listbox_item_url_list
)
self.assertTrue(
ingestion_item_dict_list[1]['data_analysis'].getRelativeUrl() \
in initial_listbox_item_url_list
)
self.assertTrue(
ingestion_item_dict_list[2]['data_analysis'].getRelativeUrl() \
not in initial_listbox_item_url_list
)
self.assertFalse(
ingestion_item_dict_list[3]['data_analysis'].getRelativeUrl() \
in initial_listbox_item_url_list
)
self.assertFalse(
ingestion_item_dict_list[4]['data_analysis'].getRelativeUrl() \
in initial_listbox_item_url_list
)
# Build a listbox item list for planning the refresh:
# Only the first Data Analysis will be refreshed
# The second one will be left as is
listbox = (
{
'listbox_key': ingestion_item_dict_list[0]['data_analysis'].getRelativeUrl(),
'listbox_selected': True
},
{
'listbox_key': ingestion_item_dict_list[1]['data_analysis'].getRelativeUrl(),
'listbox_selected': False
}
)
# Call the script to perform the refresh
self.portal.DataAnalysisModule_refreshOrsKpiDataAnalysisFastInputList(listbox=listbox)
self.tic()
# Check that only the first Data Analysis have been planned to refresh
self.assertTrue(
ingestion_item_dict_list[0]['data_analysis'].getSimulationState() == 'started' \
and ingestion_item_dict_list[0]['data_analysis'].getRefreshState() == 'refresh_planned'
)
self.assertTrue(
ingestion_item_dict_list[1]['data_analysis'].getSimulationState() == 'started' \
and ingestion_item_dict_list[1]['data_analysis'].getRefreshState() == 'current'
)
self.assertTrue(
ingestion_item_dict_list[2]['data_analysis'].getSimulationState() == 'delivered' \
and ingestion_item_dict_list[2]['data_analysis'].getRefreshState() == 'current'
)
self.assertTrue(
ingestion_item_dict_list[3]['data_analysis'].getSimulationState() == 'stopped' \
and ingestion_item_dict_list[3]['data_analysis'].getRefreshState() == 'current'
)
self.assertTrue(
ingestion_item_dict_list[4]['data_analysis'].getSimulationState() == 'started' \
and ingestion_item_dict_list[4]['data_analysis'].getRefreshState() == 'refresh_planned'
)
def test_08_wendelinTelecomSecurityModel(self):
'''
Test Wendelin Telecom's custom security model:
check that different users have the correct permissions according to their function and project.
......@@ -759,18 +1690,15 @@ class WendelinTelecomTest(SecurityTestCase):
# Perform ingestions for all three ORSs
ingestion_a_item_dict = self.getOrsLogIngestionItems(
self.test_ors_example_log_valid,
ors_a_tag,
stop_data_analysis=True
ors_a_tag
)
ingestion_b_item_dict = self.getOrsLogIngestionItems(
self.test_ors_example_log_valid,
ors_b_tag,
stop_data_analysis=True
ors_b_tag
)
ingestion_n_item_dict = self.getOrsLogIngestionItems(
self.test_ors_example_log_valid,
ors_n_tag,
stop_data_analysis=True
ors_n_tag
)
# Link the first two ORSs to their project AFTER the ingestion
......@@ -779,15 +1707,24 @@ class WendelinTelecomTest(SecurityTestCase):
ors_b_item_dict['data_supply'].setDestinationProject(project_b_item_dict['project'].getRelativeUrl())
# Create a client user not associated to a project
client_user_n = self.createWendelinTelecomUser('test_user_%s' % generateRandomString(), None, 'user')
client_user_n = self.createWendelinTelecomUser(
'test_user_%s' % generateRandomString(),
None,
'user'
)
# Create two administrator users: one associated to Project A and the second not associated to a project
# Create two administrator users: one associated to Project A
# and the second not associated to a project
admin_user_a = self.createWendelinTelecomUser(
'test_user_%s' % generateRandomString(),
project_a_item_dict['project'].getRelativeUrl(),
'administrator'
)
admin_user_n = self.createWendelinTelecomUser('test_administrator_%s' % generateRandomString(), None, 'administrator')
admin_user_n = self.createWendelinTelecomUser(
'test_administrator_%s' % generateRandomString(),
None,
'administrator'
)
# Check that the client of Project A only has access to Project A documents
client_user_a = project_a_item_dict['client_user']
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment