meerschaum 2.4.0.dev1__py3-none-any.whl → 2.4.0rc2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- meerschaum/_internal/arguments/_parse_arguments.py +2 -5
- meerschaum/_internal/docs/index.py +3 -2
- meerschaum/_internal/entry.py +13 -7
- meerschaum/_internal/shell/Shell.py +38 -44
- meerschaum/_internal/term/TermPageHandler.py +2 -3
- meerschaum/_internal/term/__init__.py +13 -11
- meerschaum/actions/api.py +10 -7
- meerschaum/actions/bootstrap.py +2 -1
- meerschaum/actions/delete.py +4 -1
- meerschaum/actions/register.py +1 -3
- meerschaum/actions/stack.py +24 -19
- meerschaum/actions/start.py +25 -26
- meerschaum/actions/sync.py +53 -52
- meerschaum/api/__init__.py +48 -14
- meerschaum/api/_events.py +15 -10
- meerschaum/api/_oauth2.py +2 -2
- meerschaum/api/_websockets.py +5 -4
- meerschaum/api/dash/__init__.py +1 -11
- meerschaum/api/dash/callbacks/dashboard.py +47 -55
- meerschaum/api/dash/callbacks/jobs.py +15 -16
- meerschaum/api/dash/callbacks/login.py +16 -10
- meerschaum/api/dash/callbacks/pipes.py +3 -4
- meerschaum/api/dash/callbacks/plugins.py +1 -1
- meerschaum/api/dash/callbacks/register.py +15 -11
- meerschaum/api/dash/components.py +54 -59
- meerschaum/api/dash/jobs.py +5 -9
- meerschaum/api/dash/pages/pipes.py +4 -1
- meerschaum/api/dash/pipes.py +13 -17
- meerschaum/api/dash/plugins.py +6 -4
- meerschaum/api/dash/sessions.py +176 -0
- meerschaum/api/dash/users.py +2 -53
- meerschaum/api/dash/webterm.py +12 -17
- meerschaum/api/resources/static/js/terminado.js +1 -1
- meerschaum/api/routes/_actions.py +4 -20
- meerschaum/api/routes/_jobs.py +8 -7
- meerschaum/api/routes/_webterm.py +5 -6
- meerschaum/config/_default.py +6 -1
- meerschaum/config/_version.py +1 -1
- meerschaum/config/stack/__init__.py +9 -7
- meerschaum/config/static/__init__.py +4 -0
- meerschaum/connectors/__init__.py +15 -9
- meerschaum/connectors/api/{APIConnector.py → _APIConnector.py} +3 -1
- meerschaum/connectors/api/__init__.py +2 -1
- meerschaum/connectors/parse.py +18 -16
- meerschaum/connectors/sql/__init__.py +3 -1
- meerschaum/connectors/sql/_pipes.py +39 -39
- meerschaum/connectors/valkey/{ValkeyConnector.py → _ValkeyConnector.py} +5 -5
- meerschaum/connectors/valkey/__init__.py +3 -1
- meerschaum/connectors/valkey/_pipes.py +13 -8
- meerschaum/core/Pipe/_data.py +155 -100
- meerschaum/jobs/_Job.py +1 -6
- meerschaum/jobs/__init__.py +7 -2
- meerschaum/utils/dataframe.py +4 -1
- meerschaum/utils/formatting/_shell.py +5 -6
- meerschaum/utils/packages/__init__.py +14 -9
- {meerschaum-2.4.0.dev1.dist-info → meerschaum-2.4.0rc2.dist-info}/METADATA +1 -1
- {meerschaum-2.4.0.dev1.dist-info → meerschaum-2.4.0rc2.dist-info}/RECORD +65 -65
- {meerschaum-2.4.0.dev1.dist-info → meerschaum-2.4.0rc2.dist-info}/WHEEL +1 -1
- meerschaum/api/dash/actions.py +0 -255
- /meerschaum/connectors/{Connector.py → _Connector.py} +0 -0
- /meerschaum/connectors/sql/{SQLConnector.py → _SQLConnector.py} +0 -0
- {meerschaum-2.4.0.dev1.dist-info → meerschaum-2.4.0rc2.dist-info}/LICENSE +0 -0
- {meerschaum-2.4.0.dev1.dist-info → meerschaum-2.4.0rc2.dist-info}/NOTICE +0 -0
- {meerschaum-2.4.0.dev1.dist-info → meerschaum-2.4.0rc2.dist-info}/entry_points.txt +0 -0
- {meerschaum-2.4.0.dev1.dist-info → meerschaum-2.4.0rc2.dist-info}/top_level.txt +0 -0
- {meerschaum-2.4.0.dev1.dist-info → meerschaum-2.4.0rc2.dist-info}/zip-safe +0 -0
@@ -1,34 +1,34 @@
|
|
1
1
|
meerschaum/__init__.py,sha256=6bn5zz7VInDP4fE_FGBMzJYrM6rQhBMJNQqsf1pU7eI,1701
|
2
2
|
meerschaum/__main__.py,sha256=r5UjYxH1WA6dGG9YGBPul5xOdgF3Iwl0X4dWDtXU-30,2646
|
3
3
|
meerschaum/_internal/__init__.py,sha256=ilC7utfKtin7GAvuN34fKyUQYfPyqH0Mm3MJF5iyEf4,169
|
4
|
-
meerschaum/_internal/entry.py,sha256=
|
4
|
+
meerschaum/_internal/entry.py,sha256=5vBZxQbtN0l9lia9HcvvLVWDCpSeThg-505dGhKiOBo,12234
|
5
5
|
meerschaum/_internal/arguments/__init__.py,sha256=_nSKKVLXNsJeSv-buxEZsx8_c0BAbkhRyE4nT6Bv6q0,541
|
6
|
-
meerschaum/_internal/arguments/_parse_arguments.py,sha256=
|
6
|
+
meerschaum/_internal/arguments/_parse_arguments.py,sha256=602U0rQrKKGfJQYY_c13GcCD0avjOa44c5GoqIAD_iE,15805
|
7
7
|
meerschaum/_internal/arguments/_parser.py,sha256=LfiVDTr1akj5D31qpJAAXKxMcnLQiD3jRpZtvvHWrAo,14917
|
8
8
|
meerschaum/_internal/docs/__init__.py,sha256=ZQYHWo6n0kfLLkyG36YXqTYvv2Pc7it5HZHMylT6cBA,126
|
9
|
-
meerschaum/_internal/docs/index.py,sha256=
|
9
|
+
meerschaum/_internal/docs/index.py,sha256=tI4ub_EjzUwhmNLKNm2l9BEqcAR__-sn9pFfTlNetiE,24449
|
10
10
|
meerschaum/_internal/gui/__init__.py,sha256=KF6Opae0aBOjIndMZ2txoPs7ozCXRlR-lcTsicLO7fc,1313
|
11
11
|
meerschaum/_internal/gui/app/__init__.py,sha256=rKUa8hHk6Fai-PDF61tQcpT1myxKcfmvEMDHxThNp7o,1565
|
12
12
|
meerschaum/_internal/gui/app/_windows.py,sha256=-VHdjTzA3V596fVqnbmTxemONSp_80-sTNJ0CTB8FwU,2632
|
13
13
|
meerschaum/_internal/gui/app/actions.py,sha256=rx37qXf3uoa7Ou0n1cISqNFZNL0nr4wO7vSUmWO8f2E,935
|
14
14
|
meerschaum/_internal/gui/app/pipes.py,sha256=4nAQ0rrHb_2bNgDF0Ru2YlbPaCDDzAl5beOGU4Af-4A,1596
|
15
|
-
meerschaum/_internal/shell/Shell.py,sha256=
|
15
|
+
meerschaum/_internal/shell/Shell.py,sha256=KfJBubM9ajjPgTF8p-QBbv-UvcpG9m5BD4lNEdngQuk,39883
|
16
16
|
meerschaum/_internal/shell/ShellCompleter.py,sha256=bbG-mExNXO4pltWBOXdbMp8P2wLgy8_BgipIr5aGp5s,3114
|
17
17
|
meerschaum/_internal/shell/ValidAutoSuggest.py,sha256=bARjOWMidz0dvMelLUe6yRPto5l3gcEHYHqFDjoh22I,1280
|
18
18
|
meerschaum/_internal/shell/__init__.py,sha256=vXQoQPEVlYiUYai1b5AwQAlTnja6A2cSABnqXhzlS7I,281
|
19
19
|
meerschaum/_internal/shell/updates.py,sha256=FmKu1NsIE7AI1zq8zNeKneZzORv6BeURQeX0lRR81Ag,5040
|
20
20
|
meerschaum/_internal/shell/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
21
|
-
meerschaum/_internal/term/TermPageHandler.py,sha256=
|
22
|
-
meerschaum/_internal/term/__init__.py,sha256=
|
21
|
+
meerschaum/_internal/term/TermPageHandler.py,sha256=57peuFD4geabiP7aomVNH_bRfNFPyCaJf56sQ8XMhV0,472
|
22
|
+
meerschaum/_internal/term/__init__.py,sha256=AT-dUw6cPISDDvHUplrSMsmPR5mo2JgVTtIzmOGcW7E,1733
|
23
23
|
meerschaum/_internal/term/tools.py,sha256=dXVAimKD-Yv2fg2WOTr0YGBY7XDKjQqw-RizcS65YVI,727
|
24
24
|
meerschaum/actions/__init__.py,sha256=MHPs8aRBhbZQXnqd_6tVtisTrNCgPAPgnNcXYbn0zP8,11640
|
25
|
-
meerschaum/actions/api.py,sha256=
|
25
|
+
meerschaum/actions/api.py,sha256=xeqkf4S-DEzFR8roIF1mzy-i_mAnUPkF7y3nIu8twCo,12593
|
26
26
|
meerschaum/actions/attach.py,sha256=UV19d9W_2WYcrf7BRz7k3mriDoX1V4rA4AKvbLdor0o,3106
|
27
|
-
meerschaum/actions/bootstrap.py,sha256=
|
27
|
+
meerschaum/actions/bootstrap.py,sha256=X2YpYcxDR1vijj4YlJcdmErnt2FpF2s_tgyHVjpvISc,14916
|
28
28
|
meerschaum/actions/clear.py,sha256=OoFZE0bK5m8s3GLNZcixuVT0DMj1izXVxGCATcmUGbI,4851
|
29
29
|
meerschaum/actions/copy.py,sha256=NwTwj3IMdK1TFRuJXCxsbIEFNVeoNGoMkvE6H1ZQZzo,6838
|
30
30
|
meerschaum/actions/deduplicate.py,sha256=puYyxeFYEUy1Sd2IOcZB2e6MrNxAZl2bTLmNzFDkCiw,1167
|
31
|
-
meerschaum/actions/delete.py,sha256=
|
31
|
+
meerschaum/actions/delete.py,sha256=DnEdkt_H4OYoee2DG-1mSDpTBp_Ay2aI1euRa4twPJU,19029
|
32
32
|
meerschaum/actions/drop.py,sha256=Hd5h4rrWd7qL2rTqglsTonUsEoH7qQlsfqNFSHGeqr0,2453
|
33
33
|
meerschaum/actions/edit.py,sha256=6d1Y8Ejd4zQWVARvx04cvbGyRA2r4ihJXWqMFiFX0aM,11740
|
34
34
|
meerschaum/actions/install.py,sha256=jdhOrR_KlvinTKr0YJNkUHsnh5EY6OzA7cRq0Vnp1oU,7494
|
@@ -36,39 +36,39 @@ meerschaum/actions/login.py,sha256=fNgsgkrFCn9wBQJY50SQhz2PwsN_TvEYYHnXK3JG4ig,4
|
|
36
36
|
meerschaum/actions/os.py,sha256=dtoppoBhLzW3rLNF0SFovEfNxA4WJWt_9WrOGlS5KbA,2251
|
37
37
|
meerschaum/actions/pause.py,sha256=WI4dQFfjQ6ObWKUzwQ5FrtYPDyEcnxWwval8cSIzzJw,4221
|
38
38
|
meerschaum/actions/python.py,sha256=k3Oo64RhyPd49W8bSjYvm6DOXuqY17NpR6BmfZb3-os,4737
|
39
|
-
meerschaum/actions/register.py,sha256=
|
39
|
+
meerschaum/actions/register.py,sha256=By4eCJn-nvrWKs8dPG5GqMClUMm9y_yvIwU_FwRqJXw,14441
|
40
40
|
meerschaum/actions/reload.py,sha256=gMXeFBGVfyQ7uhKhYf6bLaDMD0fLPcA9BrLBSiuvWIc,508
|
41
41
|
meerschaum/actions/restart.py,sha256=6ffp3-X9eTEgunVSdD41HnOwqp71yjuSAmXJ5j39ONI,3038
|
42
42
|
meerschaum/actions/setup.py,sha256=KkAGWcgwzl_L6A19fTmTX1KtBjW2FwD8QenLjPy0mQQ,3205
|
43
43
|
meerschaum/actions/sh.py,sha256=fLfTJaacKu4sjLTRqEzzYlT2WbbdZBEczsKb6F-qAek,2026
|
44
44
|
meerschaum/actions/show.py,sha256=Ij6v5so9GHUrYVi7AhPfhHGjABBofXTPAljLFa2xuWA,28141
|
45
45
|
meerschaum/actions/sql.py,sha256=wYofwk1vGO96U2ncigGEfMtYMZeprz2FR1PRRZhkAPI,4311
|
46
|
-
meerschaum/actions/stack.py,sha256=
|
47
|
-
meerschaum/actions/start.py,sha256=
|
46
|
+
meerschaum/actions/stack.py,sha256=ZwrCTGJ0x3jjZkRieWcvqasQHYCqNtB1HYvTX-r3Z3g,5996
|
47
|
+
meerschaum/actions/start.py,sha256=7B6zLHh-DNWnJta1h_RV9ccGJ4EnbEDu3k-GdwAsU8M,19208
|
48
48
|
meerschaum/actions/stop.py,sha256=5fdUw70YN-yuUWrC-NhA88cxr9FZ5NbssbQ8xXO8nFU,4632
|
49
|
-
meerschaum/actions/sync.py,sha256=
|
49
|
+
meerschaum/actions/sync.py,sha256=tZbOMUcTw_d96sIbzO-GsBeaInzvWtLbkBTcDz55HzI,17216
|
50
50
|
meerschaum/actions/tag.py,sha256=SJf5qFW0ccLXjqlTdkK_0MCcrCMdg6xhYrhKdco0hdA,3053
|
51
51
|
meerschaum/actions/uninstall.py,sha256=tBXhdXggSieGEQe4EPGxpgMK0MZTJCweNvAJ9-59El0,5776
|
52
52
|
meerschaum/actions/upgrade.py,sha256=uhFhAPmguGDgxLa1UkVZnPQ-JRcbmOdExE38v-HrLvo,6471
|
53
53
|
meerschaum/actions/verify.py,sha256=tY5slGpHiWiE0v9TDnjbmxSKn86zBnu9WBpixUgKNQU,4885
|
54
|
-
meerschaum/api/__init__.py,sha256=
|
54
|
+
meerschaum/api/__init__.py,sha256=5q2XelZvqZSyfCyGIf1mlrWVxrsDaG2_I4L5ACeqMso,8456
|
55
55
|
meerschaum/api/_chain.py,sha256=h8-WXUGXX6AqzdALfsBC5uv0FkAcLdHJXCGzqzuq89k,875
|
56
|
-
meerschaum/api/_events.py,sha256=
|
57
|
-
meerschaum/api/_oauth2.py,sha256=
|
58
|
-
meerschaum/api/_websockets.py,sha256=
|
59
|
-
meerschaum/api/dash/__init__.py,sha256=
|
60
|
-
meerschaum/api/dash/
|
61
|
-
meerschaum/api/dash/components.py,sha256=oGX7HFzNCi37iMww747iL3bbB52ZTt9tFa2iLohffg4,6399
|
56
|
+
meerschaum/api/_events.py,sha256=f-98AXHU10IL9zRGX1FrZFANxxiMz5ryeJnfFWaU8R8,2232
|
57
|
+
meerschaum/api/_oauth2.py,sha256=dJTIVlPpX3sAVW-PcN6pXRNy2RR5QAalu2RHp3l14YU,1683
|
58
|
+
meerschaum/api/_websockets.py,sha256=EMT9wB3yELu_WyCMqn9ZpgMDh23spUUchouRLCCLVuw,1509
|
59
|
+
meerschaum/api/dash/__init__.py,sha256=Qs7Q1wMI3TWl1gRECgHyJpPb7Zh70F_6TLIF8_qDv2s,2023
|
60
|
+
meerschaum/api/dash/components.py,sha256=t2goHW7oioao5Ew6Dro9U4LZDnHF-YWb4flLPx46GP8,6293
|
62
61
|
meerschaum/api/dash/connectors.py,sha256=nJxBOFldtCMJLYjUSVYZwX5BO-LNjTNHgoEaXe-0XMo,843
|
63
62
|
meerschaum/api/dash/graphs.py,sha256=wJUDWzcLN8-C3xko6rj0F2v7Rt8YDkSXoVkkXJjYGIk,2046
|
64
|
-
meerschaum/api/dash/jobs.py,sha256=
|
63
|
+
meerschaum/api/dash/jobs.py,sha256=kcWBdOk3tNQTTuN91nd5qbS4u8MmAl3SX0gkAfdKnpk,7279
|
65
64
|
meerschaum/api/dash/keys.py,sha256=hzEVeN60SAfVTVSO5lajGaykxRIKGhj9Ph00HRJnNoE,12598
|
66
|
-
meerschaum/api/dash/pipes.py,sha256=
|
67
|
-
meerschaum/api/dash/plugins.py,sha256=
|
65
|
+
meerschaum/api/dash/pipes.py,sha256=w-VEE4_fvSucsOwPLSUJRtRXtlpOgi3EBAgs78Sj0m0,21221
|
66
|
+
meerschaum/api/dash/plugins.py,sha256=KdfG04f6SsUpBg-nm7MUJegFGuElOj-GAkxDX98hi60,3768
|
67
|
+
meerschaum/api/dash/sessions.py,sha256=-y5p4MYKh1eFzppkBfMsd6T7-rJs1nYS2-4fbVRAeRA,5029
|
68
68
|
meerschaum/api/dash/sync.py,sha256=9lt7IRdG-fe9gf_ZO_viPiGlerX7ic6r_VFocv3I51A,504
|
69
|
-
meerschaum/api/dash/users.py,sha256=
|
69
|
+
meerschaum/api/dash/users.py,sha256=3wq3ZG51DxOjNeF-X5HdlXD1MYQ1nQ9oowYSvFEY7hs,1050
|
70
70
|
meerschaum/api/dash/websockets.py,sha256=0iwRaI9k2okU1baYstOkehfZ6-qMi_S6qm4lPBjVlH8,924
|
71
|
-
meerschaum/api/dash/webterm.py,sha256=
|
71
|
+
meerschaum/api/dash/webterm.py,sha256=khO0tnFgYh9dLOKYlX2rG93aTa2__5RMDDQOU1Ga9Es,3060
|
72
72
|
meerschaum/api/dash/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
73
73
|
meerschaum/api/dash/assets/ansi_up.js,sha256=in4bWSCayjzXbOgROw7eLRrFwCTIiLxh8nbFSJXtDl4,21923
|
74
74
|
meerschaum/api/dash/assets/banner_1920x320.png,sha256=n2cNTSVEsGxO9XZg2keb85J3UOkux70nyIMNII5m4SA,338636
|
@@ -77,17 +77,17 @@ meerschaum/api/dash/assets/logo_48x48.png,sha256=hTR5BHUHEN4yP2xiqAcDciuigoII9T3
|
|
77
77
|
meerschaum/api/dash/assets/logo_500x500.png,sha256=9EUtf6wQcEZTXHKfQ2kjNXod6Rn_4DTB_BkTgxggq00,67702
|
78
78
|
meerschaum/api/dash/callbacks/__init__.py,sha256=5nLDkziaWWWt5ivmuMNG3kVBMOfqB6KQNIAS8f16bmA,493
|
79
79
|
meerschaum/api/dash/callbacks/custom.py,sha256=N9pVolAF8sIuJD3V6xBSgS7k8THJo_f8d1qAoh1Kg60,1161
|
80
|
-
meerschaum/api/dash/callbacks/dashboard.py,sha256=
|
81
|
-
meerschaum/api/dash/callbacks/jobs.py,sha256=
|
82
|
-
meerschaum/api/dash/callbacks/login.py,sha256=
|
83
|
-
meerschaum/api/dash/callbacks/pipes.py,sha256=
|
84
|
-
meerschaum/api/dash/callbacks/plugins.py,sha256=
|
85
|
-
meerschaum/api/dash/callbacks/register.py,sha256=
|
80
|
+
meerschaum/api/dash/callbacks/dashboard.py,sha256=AI7jxthNQWPVFi9wOeKkjx5dCvy9J7fTBNanHfA5i8g,32500
|
81
|
+
meerschaum/api/dash/callbacks/jobs.py,sha256=F0H8dDUMOr_1C6Pr8yNQCAHhqgJQklHBiOzstOjiQQo,7282
|
82
|
+
meerschaum/api/dash/callbacks/login.py,sha256=mEvMgV-f85H6DvqNdTvJPoiwHqTnhWY2nf_zLB26ipE,2876
|
83
|
+
meerschaum/api/dash/callbacks/pipes.py,sha256=OzSefhVkKBEmGserZVo2NV3yrh0XDP1IeWn3PO2YwD0,1098
|
84
|
+
meerschaum/api/dash/callbacks/plugins.py,sha256=znPgw_Uf3__QEjKxoIHADfjVNubTehCDaTJ02b16pQo,2760
|
85
|
+
meerschaum/api/dash/callbacks/register.py,sha256=KfMFgXWiFkemz0YriSPaLQBVnFDG8q6_t9gHuempOS0,3666
|
86
86
|
meerschaum/api/dash/pages/__init__.py,sha256=ZZAWLCgFjl8Gh5MzqeWM7HkXP3uSUuUn-73vQisnAKc,312
|
87
87
|
meerschaum/api/dash/pages/dashboard.py,sha256=WKwy40kgm2Qy0k1ZTIueFnnVu0YBzFAd_8AT6CHHvfM,3835
|
88
88
|
meerschaum/api/dash/pages/error.py,sha256=-uCrASuIBrceHcc-leLeEoLos2ibSBWG0XMFQzFwtbw,595
|
89
89
|
meerschaum/api/dash/pages/login.py,sha256=w8Cy1l4HSiMMgUndE4X_8pB0odU_iG7x1dwe9JrwR88,4633
|
90
|
-
meerschaum/api/dash/pages/pipes.py,sha256=
|
90
|
+
meerschaum/api/dash/pages/pipes.py,sha256=Cd5XY_m4nBIsEk6TQadpcajuBRzxw1cyDaTtojwykcI,506
|
91
91
|
meerschaum/api/dash/pages/plugins.py,sha256=9VpRqWW-3OhgZDUoo4J8PYswd231HaxlcSntxOOKsQA,1549
|
92
92
|
meerschaum/api/dash/pages/register.py,sha256=dqhsiu2OhrXhs4RL41_CpqipdrWo1-_roASvZIDBAq8,2364
|
93
93
|
meerschaum/api/models/__init__.py,sha256=WrSLChqDkw5y9uU_ma2xJFFLqqVAQvHoIjuYrZDxOcM,276
|
@@ -108,7 +108,7 @@ meerschaum/api/resources/static/ico/logo.ico,sha256=nDEekVxwS60wEDno1nbw5GF3TJOc
|
|
108
108
|
meerschaum/api/resources/static/js/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
109
109
|
meerschaum/api/resources/static/js/action_button.js,sha256=A0tH6W5lXR1dcGKtNk_pTNSKFVH-HGX2eMR-IOgGLeM,540
|
110
110
|
meerschaum/api/resources/static/js/main.js,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
111
|
-
meerschaum/api/resources/static/js/terminado.js,sha256=
|
111
|
+
meerschaum/api/resources/static/js/terminado.js,sha256=oYRYUaw1S9gE8Cp6AevQaW_zGvXMYMi3UH3-IMbQSTw,1727
|
112
112
|
meerschaum/api/resources/static/js/xterm.js,sha256=H5kaw7Syg-v5bmCuI6AKUnZd06Lkb6b92p8aqwMvdJU,289441
|
113
113
|
meerschaum/api/resources/static/png/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
114
114
|
meerschaum/api/resources/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -117,21 +117,21 @@ meerschaum/api/resources/templates/old_index.html,sha256=BDeOlcXhSsBH3-NaRtuX4Z1
|
|
117
117
|
meerschaum/api/resources/templates/secret.html,sha256=0QWkm4ZoN81Aw1pd2-62rGCvx3nXPHfFUoegj3Iy8Ls,141
|
118
118
|
meerschaum/api/resources/templates/termpage.html,sha256=qspXRuOkzqOn2mXw9mmUldzsvOHq_LyaywQ29CUevp0,4527
|
119
119
|
meerschaum/api/routes/__init__.py,sha256=jbkeFNl51Tg8aT5gWe560ZLZLojFJsLMe5IENRjRkb0,606
|
120
|
-
meerschaum/api/routes/_actions.py,sha256=
|
120
|
+
meerschaum/api/routes/_actions.py,sha256=KGUlPyWiO0e7t7Fj8-nIowWokDVP22Gr9z1XxLx5tpw,3063
|
121
121
|
meerschaum/api/routes/_connectors.py,sha256=NNbcn5xWhKqw2PqueSEaqRaZ95hFGDKazG5lE7gsssc,1849
|
122
122
|
meerschaum/api/routes/_index.py,sha256=QI6CBo6pI2Zi0a6fJHDjZfiLa9f4okb0BGe3A_JD0kM,578
|
123
|
-
meerschaum/api/routes/_jobs.py,sha256=
|
123
|
+
meerschaum/api/routes/_jobs.py,sha256=vO6CJYUme7bHIOy9gAv6VyEM1M8EKdJmtfw2nSnZ24Q,11639
|
124
124
|
meerschaum/api/routes/_login.py,sha256=ti2onNOemOGLHLoPubAQOYtD7eq7FA1jOlbOSVSjXVo,2466
|
125
125
|
meerschaum/api/routes/_misc.py,sha256=05--9ZVFeaCgZrHER2kA3SYdK4TyfkEXOCjLvPbum-w,2469
|
126
126
|
meerschaum/api/routes/_pipes.py,sha256=j0Ymvr331RHw2_5xaL3A-1rv6gScNOglsVA1eep5RH4,21586
|
127
127
|
meerschaum/api/routes/_plugins.py,sha256=vR6-uTJraY1YEJMuRvds1-xFLB2mexxnp2dJwN_0rVo,6216
|
128
128
|
meerschaum/api/routes/_users.py,sha256=SfAkZFKrKnGjpzj8SFIKzPemzQJOH3oB72h19EaUvcQ,7204
|
129
129
|
meerschaum/api/routes/_version.py,sha256=2t-nw_9IxCVZCNEar0LOwmut2zsClRVHjiOOUx16cu0,825
|
130
|
-
meerschaum/api/routes/_webterm.py,sha256=
|
130
|
+
meerschaum/api/routes/_webterm.py,sha256=twjQyVReYwXypvxLPICYWjB5hR-XHzUWEuYRbSq27nc,3834
|
131
131
|
meerschaum/api/tables/__init__.py,sha256=e2aNC0CdlWICTUMx1i9RauF8Pm426J0RZJbsJWv4SWo,482
|
132
132
|
meerschaum/config/__init__.py,sha256=jZgQSjvbOWyvGouqRgIeYBg9Pp343_9CDsCWWpwYDGY,11577
|
133
133
|
meerschaum/config/_dash.py,sha256=BJHl4xMrQB-YHUEU7ldEW8q_nOPoIRSOqLrfGElc6Dw,187
|
134
|
-
meerschaum/config/_default.py,sha256=
|
134
|
+
meerschaum/config/_default.py,sha256=gGkF9dGiwiKtMSXAE85LNhZ8ZXQ5EbeBPTSG0A9MBNQ,5675
|
135
135
|
meerschaum/config/_edit.py,sha256=_kabgFbJdI5kcLs-JIsoaTo0JdyxnPnBdrlTyTAgPm8,8236
|
136
136
|
meerschaum/config/_environment.py,sha256=Vv4DLDfc2vKLbCLsMvkQDj77K4kEvHKEBmUBo-wCrgo,4419
|
137
137
|
meerschaum/config/_formatting.py,sha256=OMuqS1EWOsj_34wSs2tOqGIWci3bTMIZ5l-uelZgsIM,6672
|
@@ -142,21 +142,21 @@ meerschaum/config/_preprocess.py,sha256=-AEA8m_--KivZwTQ1sWN6LTn5sio_fUr2XZ51BO6
|
|
142
142
|
meerschaum/config/_read_config.py,sha256=WFZKIXZMDe_ca0ES7ivgM_mnwShvFxLdoeisT_X5-h0,14720
|
143
143
|
meerschaum/config/_shell.py,sha256=46_m49Txc5q1rGfCgO49ca48BODx45DQJi8D0zz1R18,4245
|
144
144
|
meerschaum/config/_sync.py,sha256=oK2ZujO2T1he08BXCFyiniBUevNGWSQKXLcS_jRv_7Y,4155
|
145
|
-
meerschaum/config/_version.py,sha256=
|
145
|
+
meerschaum/config/_version.py,sha256=B5P7a5MTnW8iGJpqOWvRl0nEgpeslAo7vj61JOD9jx0,74
|
146
146
|
meerschaum/config/paths.py,sha256=JjibeGN3YAdSNceRwsd42aNmeUrIgM6ndzC8qZAmNI0,621
|
147
147
|
meerschaum/config/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
148
|
-
meerschaum/config/stack/__init__.py,sha256=
|
148
|
+
meerschaum/config/stack/__init__.py,sha256=jHnk1HE7riEVOFbt0SHgTM7kmrdRVic1raQSs220wn0,10550
|
149
149
|
meerschaum/config/stack/grafana/__init__.py,sha256=LNXQw2FvHKrD68RDhqDmi2wJjAHaKw9IWx8rNuyWEPo,2010
|
150
150
|
meerschaum/config/stack/mosquitto/__init__.py,sha256=-OwOjq8KiBoSH_pmgCAAF3Dp3CRD4KgAEdimZSadROs,186
|
151
151
|
meerschaum/config/stack/mosquitto/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
152
152
|
meerschaum/config/stack/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
153
|
-
meerschaum/config/static/__init__.py,sha256=
|
154
|
-
meerschaum/connectors/
|
155
|
-
meerschaum/connectors/__init__.py,sha256=
|
156
|
-
meerschaum/connectors/parse.py,sha256=
|
153
|
+
meerschaum/config/static/__init__.py,sha256=Si2asThyFLVZLGiCKSgmFWwMUnZyUTL3h13L1a7wkOc,5320
|
154
|
+
meerschaum/connectors/_Connector.py,sha256=VaVNg0SlQCTXk4shl3c68QdkbymA2Y9ScUlUjckk8PY,6795
|
155
|
+
meerschaum/connectors/__init__.py,sha256=bpWsnU0uvoowWyUkFTwfEkadK84pssZUJ4M7yReudOU,12703
|
156
|
+
meerschaum/connectors/parse.py,sha256=tnqzkzt_suOXYzktn_XVUrprtfym9ThijUf8HXZZlhY,4194
|
157
157
|
meerschaum/connectors/poll.py,sha256=23yRUeIqqyNVt8VoJErhirW543YZ6X0ocfBauMJnC_g,7465
|
158
|
-
meerschaum/connectors/api/
|
159
|
-
meerschaum/connectors/api/__init__.py,sha256=
|
158
|
+
meerschaum/connectors/api/_APIConnector.py,sha256=lUsyAf0b-k6X25501FAJQiWX395Vf86MYSaRM4np2h0,5070
|
159
|
+
meerschaum/connectors/api/__init__.py,sha256=rYHDMK7n-5X5HoxiRITt-sVLgePnPQbgwntkhzvJvOk,234
|
160
160
|
meerschaum/connectors/api/_actions.py,sha256=gd3F8i5BvN8XRvMcPvPVR8sc1DeLzgoBHdDhc8PtACE,3966
|
161
161
|
meerschaum/connectors/api/_fetch.py,sha256=Khq9AFr1nk8Dsmcedb77aWhAuHw0JGgVeahDG95Q5MQ,2072
|
162
162
|
meerschaum/connectors/api/_jobs.py,sha256=N5lpHFGG10jlVgaJeWAOTuLBQw3AdgjXsEPpp1YwZQE,11270
|
@@ -169,13 +169,13 @@ meerschaum/connectors/api/_uri.py,sha256=HWxqGx4R1cHZ3ywy9Ro9ePbFxxusw4RLaC3hpGt
|
|
169
169
|
meerschaum/connectors/api/_users.py,sha256=kzb7ENgXwQ19OJYKOuuWzx2rwVuUZCly9dTnyvVuT2Q,5275
|
170
170
|
meerschaum/connectors/plugin/PluginConnector.py,sha256=aQ1QaB7MordCFimZqoGLb0R12PfDUN_nWks2J5mzeAs,2084
|
171
171
|
meerschaum/connectors/plugin/__init__.py,sha256=pwF7TGY4WNz2_HaVdmK4rPQ9ZwTOEuPHgzOqsGcoXJw,198
|
172
|
-
meerschaum/connectors/sql/
|
173
|
-
meerschaum/connectors/sql/__init__.py,sha256=
|
172
|
+
meerschaum/connectors/sql/_SQLConnector.py,sha256=QvsFgAv2NAUdsJrcNYZIkQ9x_ow5JRe4Ie_UgSrDz3M,11709
|
173
|
+
meerschaum/connectors/sql/__init__.py,sha256=3cqYiDkVasn7zWdtOTAZbT4bo95AuvGOmDD2TkaAxtw,205
|
174
174
|
meerschaum/connectors/sql/_cli.py,sha256=1SgnWeMIAihoxp4FzbNrcq1npXf0dSOQnCntpU9hUXA,4405
|
175
175
|
meerschaum/connectors/sql/_create_engine.py,sha256=vPVwR3cpfcQm0aW9xo_DUWA3gMdlkuB0wJ8JoTpRYD0,10396
|
176
176
|
meerschaum/connectors/sql/_fetch.py,sha256=NYYWDoEd-aGIS337KwH-D9_3KVWVCZOHAspGLfdEuUE,13086
|
177
177
|
meerschaum/connectors/sql/_instance.py,sha256=r_S96vzSuKnBVGROSKQAPl-DnFnOOEPUkz1KFDFPHFQ,6509
|
178
|
-
meerschaum/connectors/sql/_pipes.py,sha256=
|
178
|
+
meerschaum/connectors/sql/_pipes.py,sha256=p1oicTEu-fjnFt7Hk1LKsv2FIm5HczgzaJxHZFFQnNk,99518
|
179
179
|
meerschaum/connectors/sql/_plugins.py,sha256=wbxcNxqTtjfDsxPvdVGTllasYf6NHHzODaQ72hEUSBQ,8135
|
180
180
|
meerschaum/connectors/sql/_sql.py,sha256=553BTPtvnnLMERYK8IcxR4CS3R4Sq7id-5hbApOEsIU,34199
|
181
181
|
meerschaum/connectors/sql/_uri.py,sha256=0BrhQtqQdzg9mR04gWBZINs_BbPFtSlTECXT_TCUwik,3460
|
@@ -183,10 +183,10 @@ meerschaum/connectors/sql/_users.py,sha256=FJjYeJGhr-TDHziNc6p_5mupGRtGjezKPIYgH
|
|
183
183
|
meerschaum/connectors/sql/tools.py,sha256=jz8huOaRCwGlYdtGfAqAh7SoK8uydYBrasKQba9FT38,187
|
184
184
|
meerschaum/connectors/sql/tables/__init__.py,sha256=e2dALTtThqbrq0soMNQ9QwgccyfTAjOrFkEClstLp3A,9001
|
185
185
|
meerschaum/connectors/sql/tables/types.py,sha256=Jc_MTHIBM-KHpQt__Lckp39CeOo7tGOiAk5faDx-znY,1573
|
186
|
-
meerschaum/connectors/valkey/
|
187
|
-
meerschaum/connectors/valkey/__init__.py,sha256=
|
186
|
+
meerschaum/connectors/valkey/_ValkeyConnector.py,sha256=c30X2NjF32ZGtdfYMnmMh7z8qopqUwidVgKNk0pELFM,15799
|
187
|
+
meerschaum/connectors/valkey/__init__.py,sha256=jkVutsygQCvGPLN17cP6wHAjHajxVycnQJbm2eVMuY0,187
|
188
188
|
meerschaum/connectors/valkey/_fetch.py,sha256=MjeE0h3YI4M3LCzy7axQAc_fX_l82vUqX4WXcYoppxE,1920
|
189
|
-
meerschaum/connectors/valkey/_pipes.py,sha256
|
189
|
+
meerschaum/connectors/valkey/_pipes.py,sha256=7GNDGoVDIULyGUjUisckErvRlrcnN4WkML95n0yb1N8,22475
|
190
190
|
meerschaum/connectors/valkey/_plugins.py,sha256=ZqiEW4XZCOpw4G8DUK2IKY6Qrph4mYfTjgXWimgakYY,6267
|
191
191
|
meerschaum/connectors/valkey/_users.py,sha256=AS1vLarrkDA9yPK644GWwRiQiTZVa9x3nlLpyntq40g,7730
|
192
192
|
meerschaum/core/__init__.py,sha256=tjASW10n9uLV6bYhcwP4rggh-ESXSJzgxpSBbVsuISs,251
|
@@ -195,7 +195,7 @@ meerschaum/core/Pipe/_attributes.py,sha256=8nHMCZnQexAcG1ONXNqTldEowD7gstd34lDUc
|
|
195
195
|
meerschaum/core/Pipe/_bootstrap.py,sha256=evyi07kkzAVMj66HfZkbYdcWk_oHUDsl6f13EnSPMYs,7723
|
196
196
|
meerschaum/core/Pipe/_clear.py,sha256=yFAYQnDmL3m6DzyAutgnBDXSOL9gjIrLvlQXd86YFV0,2193
|
197
197
|
meerschaum/core/Pipe/_copy.py,sha256=PcOeNUb0B4-HehTAAnBpjyT4uLLTR6VQOarY0SFA9wk,2912
|
198
|
-
meerschaum/core/Pipe/_data.py,sha256=
|
198
|
+
meerschaum/core/Pipe/_data.py,sha256=5NBWFdy0P20yFEbnX4q0J1e3VmVvrpx8kl2utAhNPr8,22429
|
199
199
|
meerschaum/core/Pipe/_deduplicate.py,sha256=E3oXu6-0vZhzacv0GHri9yHd7XrSlIStZ--KE2EqeVM,10274
|
200
200
|
meerschaum/core/Pipe/_delete.py,sha256=1geNp9BgrocXP1gt76dMbnlJWKYFMuSNqPFA4K4-hXE,2118
|
201
201
|
meerschaum/core/Pipe/_drop.py,sha256=gIKdHWm0RsIgC2nu768MtFnPbCXyiJjNxaiT1obyuIo,1036
|
@@ -210,15 +210,15 @@ meerschaum/core/Plugin/__init__.py,sha256=UXg64EvJPgI1PCxkY_KM02-ZmBm4FZpLPIQR_u
|
|
210
210
|
meerschaum/core/User/_User.py,sha256=JZ9Y1tsjZe-cgD24m9YfZ6ZwSOKn_sHc4rbQ7KblBz8,6592
|
211
211
|
meerschaum/core/User/__init__.py,sha256=lJ7beIZTG9sO4dAi3367fFBl17dXYEWHKi7HoaPlDyk,193
|
212
212
|
meerschaum/jobs/_Executor.py,sha256=qM62BhFTM4tyJ7p90KOM0y3qyeRY9k3ZV_aTDJMHnO8,1682
|
213
|
-
meerschaum/jobs/_Job.py,sha256=
|
214
|
-
meerschaum/jobs/__init__.py,sha256=
|
213
|
+
meerschaum/jobs/_Job.py,sha256=hkjHqG5YPej5rC4nwdU7Ay_mjep9Fy4HO5B-eqdBdfo,31984
|
214
|
+
meerschaum/jobs/__init__.py,sha256=QW_uZfuv_WQmqVm71QNYsPdOEr5c8fq-l8vLr7aJzm8,12131
|
215
215
|
meerschaum/jobs/systemd.py,sha256=Rq-tsDPslG17ZhpKMrVJ5r8Z0IPr6DEc9APObfIoXCg,24614
|
216
216
|
meerschaum/plugins/_Plugin.py,sha256=rTiGNQ9nIQeVSG_P9C6DHCMLW0K-J7zzuu3FjNXUOlE,34056
|
217
217
|
meerschaum/plugins/__init__.py,sha256=trMQ53qgP7ikJhhV_uXzqJw6X1NDz2rPOGXFk40bb1Y,26190
|
218
218
|
meerschaum/plugins/bootstrap.py,sha256=qg9MQ1YAU8ShwGqWDl38WjiXLIxDPl95pSIGDLN9rOw,11423
|
219
219
|
meerschaum/utils/__init__.py,sha256=QrK1K9hIbPCRCM5k2nZGFqGnrqhA0Eh-iSmCU7FG6Cs,612
|
220
220
|
meerschaum/utils/_get_pipes.py,sha256=tu4xKPoDn79Dz2kWM13cXTP4DSCkn-3G9M8KiLftopw,11073
|
221
|
-
meerschaum/utils/dataframe.py,sha256=
|
221
|
+
meerschaum/utils/dataframe.py,sha256=ncT7s5nQApSsQqbV7HqzAWsJd7cpN2hEfsfbdoYiolw,38344
|
222
222
|
meerschaum/utils/debug.py,sha256=GyIzJmunkoPnOcZNYVQdT4Sgd-aOb5MI2VbIgATOjIQ,3695
|
223
223
|
meerschaum/utils/interactive.py,sha256=t-6jWozXSqL7lYGDHuwiOjTgr-UKhdcg61q_eR5mikI,3196
|
224
224
|
meerschaum/utils/misc.py,sha256=S95QKlv4kygNdz_GA06w_UrQXuqXTRwA43rVxHZedrk,46369
|
@@ -244,17 +244,17 @@ meerschaum/utils/formatting/__init__.py,sha256=GLx3fvTQi7EnC9fo31WggpMRpmR7yTWIu
|
|
244
244
|
meerschaum/utils/formatting/_jobs.py,sha256=izsqPJhTtUkXUUtWnbXtReYsUYwulXtci3pBj72Ne64,6637
|
245
245
|
meerschaum/utils/formatting/_pipes.py,sha256=wy0iWJFsFl3X2VloaiA_gp9Yx9w6tD3FQZvAQAqef4A,19492
|
246
246
|
meerschaum/utils/formatting/_pprint.py,sha256=tgrT3FyGyu5CWJYysqK3kX1xdZYorlbOk9fcU_vt9Qg,3096
|
247
|
-
meerschaum/utils/formatting/_shell.py,sha256=
|
248
|
-
meerschaum/utils/packages/__init__.py,sha256=
|
247
|
+
meerschaum/utils/formatting/_shell.py,sha256=OMFh3cSZNr83z8m265irkS_JtEWHwjkEY2ybnMIOllY,3774
|
248
|
+
meerschaum/utils/packages/__init__.py,sha256=aByhWPf4H7yilmSkEP4Qa0IXsZv6Aq1l19b40QydvG4,63393
|
249
249
|
meerschaum/utils/packages/_packages.py,sha256=I1tXtYbMlITIVmoJhYQhWtCcmOwvK7iHdbbFrFFBVZg,8094
|
250
250
|
meerschaum/utils/packages/lazy_loader.py,sha256=VHnph3VozH29R4JnSSBfwtA5WKZYZQFT_GeQSShCnuc,2540
|
251
251
|
meerschaum/utils/venv/_Venv.py,sha256=sBnlmxHdAh2bx8btfVoD79-H9-cYsv5lP02IIXkyECs,3553
|
252
252
|
meerschaum/utils/venv/__init__.py,sha256=bLAWnllKDuE_z6bLk7gLh4mI3Sp1j5hsboTqPKOQq84,24361
|
253
|
-
meerschaum-2.4.
|
254
|
-
meerschaum-2.4.
|
255
|
-
meerschaum-2.4.
|
256
|
-
meerschaum-2.4.
|
257
|
-
meerschaum-2.4.
|
258
|
-
meerschaum-2.4.
|
259
|
-
meerschaum-2.4.
|
260
|
-
meerschaum-2.4.
|
253
|
+
meerschaum-2.4.0rc2.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
|
254
|
+
meerschaum-2.4.0rc2.dist-info/METADATA,sha256=LhQQcwQDADYwB2yA8vZbWx_AK9X__r3k6lUr_cmzh-o,24104
|
255
|
+
meerschaum-2.4.0rc2.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
|
256
|
+
meerschaum-2.4.0rc2.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
|
257
|
+
meerschaum-2.4.0rc2.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
|
258
|
+
meerschaum-2.4.0rc2.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
|
259
|
+
meerschaum-2.4.0rc2.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
260
|
+
meerschaum-2.4.0rc2.dist-info/RECORD,,
|
meerschaum/api/dash/actions.py
DELETED
@@ -1,255 +0,0 @@
|
|
1
|
-
#! /usr/bin/env python
|
2
|
-
# -*- coding: utf-8 -*-
|
3
|
-
# vim:fenc=utf-8
|
4
|
-
|
5
|
-
"""
|
6
|
-
Execute actions via the web interface.
|
7
|
-
"""
|
8
|
-
|
9
|
-
from __future__ import annotations
|
10
|
-
import platform, sys, io, os, shlex, time, copy
|
11
|
-
from dash.exceptions import PreventUpdate
|
12
|
-
from meerschaum.utils.threading import Thread
|
13
|
-
from meerschaum.utils.typing import SuccessTuple, Tuple, Dict, Any, WebState
|
14
|
-
from meerschaum.utils.packages import attempt_import, import_html, import_dcc
|
15
|
-
from meerschaum.utils.misc import remove_ansi
|
16
|
-
from meerschaum.actions import actions, get_shell
|
17
|
-
from meerschaum.api import debug, CHECK_UPDATE
|
18
|
-
from meerschaum.api.dash import (
|
19
|
-
running_jobs, stopped_jobs, running_monitors, stopped_monitors, active_sessions
|
20
|
-
)
|
21
|
-
from meerschaum.api import get_api_connector
|
22
|
-
from meerschaum.api.dash.connectors import get_web_connector
|
23
|
-
from meerschaum.api.dash.components import alert_from_success_tuple, console_div
|
24
|
-
from meerschaum.api.dash.webterm import get_webterm
|
25
|
-
from meerschaum.api.dash.pipes import pipes_from_state, keys_from_state
|
26
|
-
from meerschaum.api.dash.websockets import ws_send
|
27
|
-
from meerschaum.api._websockets import websockets
|
28
|
-
html, dcc = import_html(check_update=CHECK_UPDATE), import_dcc(check_update=CHECK_UPDATE)
|
29
|
-
from meerschaum.config import get_config
|
30
|
-
from meerschaum.core import User
|
31
|
-
|
32
|
-
def execute_action(state: WebState):
|
33
|
-
"""
|
34
|
-
Execute a Meerschaum action and capture its output.
|
35
|
-
Format the output as an HTML `pre` object, and return a list of Alert objects.
|
36
|
-
|
37
|
-
Parameters
|
38
|
-
----------
|
39
|
-
state: WebState :
|
40
|
-
The state of the dashboard.
|
41
|
-
|
42
|
-
Returns
|
43
|
-
-------
|
44
|
-
A tuple of lists.
|
45
|
-
The first list contains the children of the output div.
|
46
|
-
The second contains alerts.
|
47
|
-
|
48
|
-
"""
|
49
|
-
global running_jobs, stopped_jobs, running_monitors, stopped_monitors
|
50
|
-
action, subaction, subaction_options, subaction_hidden, additional_subaction_text, flags = (
|
51
|
-
state['action-dropdown.value'],
|
52
|
-
state['subaction-dropdown.value'],
|
53
|
-
state['subaction-dropdown.options'],
|
54
|
-
state['subaction-dropdown-div.hidden'],
|
55
|
-
state['subaction-dropdown-text.value'],
|
56
|
-
state['flags-dropdown.value'],
|
57
|
-
)
|
58
|
-
if action is None:
|
59
|
-
return [], []
|
60
|
-
if subaction is None or subaction_hidden:
|
61
|
-
subaction = None
|
62
|
-
### If the current value is not a member of the options, choose the first element (visible).
|
63
|
-
elif subaction not in [o['value'] for o in subaction_options]:
|
64
|
-
subaction = subaction_options[0]['value']
|
65
|
-
if additional_subaction_text is None:
|
66
|
-
additional_subaction_text = ''
|
67
|
-
if flags is None:
|
68
|
-
flags = []
|
69
|
-
|
70
|
-
### TODO add direct Input to parse if active_tab is 'text'
|
71
|
-
|
72
|
-
session_id = state['session-store.data'].get('session-id', None)
|
73
|
-
|
74
|
-
### Check if actions are permitted by non-admin users.
|
75
|
-
permissions = get_config('system', 'api', 'permissions')
|
76
|
-
allow_non_admin = permissions.get('actions', {}).get('non_admin', False)
|
77
|
-
if not allow_non_admin:
|
78
|
-
username = active_sessions.get(session_id, {}).get('username', None)
|
79
|
-
user = User(username, instance=get_api_connector())
|
80
|
-
user_type = get_api_connector().get_user_type(user, debug=debug)
|
81
|
-
if user_type != 'admin':
|
82
|
-
msg = (
|
83
|
-
f"User '{username}' is not authorized to perform actions on this instance.\n\n"
|
84
|
-
+ "To allow non-administrator users to execute actions,\n"
|
85
|
-
+ " run the command `mrsm edit config system`.\n\n"
|
86
|
-
+ "Under the keys `api:permissions:actions`, set the value of \n"
|
87
|
-
+ " `non_admin` to `true`."
|
88
|
-
)
|
89
|
-
return (
|
90
|
-
[
|
91
|
-
html.Div(
|
92
|
-
html.Pre(msg, id='console-pre'),
|
93
|
-
id = 'console-div'
|
94
|
-
),
|
95
|
-
],
|
96
|
-
[alert_from_success_tuple(
|
97
|
-
(False, "Actions are not allowed on this Meerschaum instance.")
|
98
|
-
)]
|
99
|
-
)
|
100
|
-
|
101
|
-
|
102
|
-
subactions = ([subaction] if subaction else []) + shlex.split(additional_subaction_text)
|
103
|
-
|
104
|
-
keywords = {f : True for f in flags}
|
105
|
-
keywords['debug'] = keywords.get('debug', debug)
|
106
|
-
_ck, _mk, _lk, _params = keys_from_state(state, with_params=True)
|
107
|
-
keywords['connector_keys'], keywords['metric_keys'], keywords['location_keys'] = (
|
108
|
-
_ck, _mk, _lk,
|
109
|
-
)
|
110
|
-
keywords['params'] = _params
|
111
|
-
keywords['mrsm_instance'] = get_web_connector(state)
|
112
|
-
|
113
|
-
def do_action() -> SuccessTuple:
|
114
|
-
if sys.stdout is not cap:
|
115
|
-
stdout = sys.stdout
|
116
|
-
sys.stdout = cap
|
117
|
-
try:
|
118
|
-
success_tuple = actions[action](action=subactions, **keywords)
|
119
|
-
except Exception as e:
|
120
|
-
success_tuple = False, str(e)
|
121
|
-
except KeyboardInterrupt:
|
122
|
-
success_tuple = False, f"Action '{action}' was manually cancelled."
|
123
|
-
stopped_jobs[session_id] = running_jobs.pop(session_id)
|
124
|
-
stopped_monitors[session_id] = running_monitors.pop(session_id)
|
125
|
-
return success_tuple
|
126
|
-
|
127
|
-
cap = io.StringIO()
|
128
|
-
_sentinel = object()
|
129
|
-
def monitor_and_send_stdout():
|
130
|
-
cap_buffer = ''
|
131
|
-
while True:
|
132
|
-
if not (sys.stdout) is cap:
|
133
|
-
sys.stdout = cap
|
134
|
-
if session_id not in running_jobs:
|
135
|
-
text = cap.getvalue()
|
136
|
-
print('Stopping monitoring and sending final message.', file=sys.stderr)
|
137
|
-
ws_send(text, session_id)
|
138
|
-
break
|
139
|
-
text = cap.getvalue()
|
140
|
-
if not text or len(text) == len(cap_buffer):
|
141
|
-
continue
|
142
|
-
cap_buffer = text
|
143
|
-
ws_send(text, session_id)
|
144
|
-
### So we don't overwhelm the client.
|
145
|
-
time.sleep(0.01)
|
146
|
-
|
147
|
-
def use_stringio():
|
148
|
-
try:
|
149
|
-
LINES, COLUMNS = (
|
150
|
-
os.environ.get('LINES', str(os.get_terminal_size().lines)),
|
151
|
-
os.environ.get('COLUMNS', str(os.get_terminal_size().columns)),
|
152
|
-
)
|
153
|
-
except OSError:
|
154
|
-
LINES, COLUMNS = '120', '100'
|
155
|
-
os.environ['LINES'], os.environ['COLUMNS'] = '120', '100'
|
156
|
-
stdout = sys.stdout
|
157
|
-
success_tuple = use_process()
|
158
|
-
os.environ['LINES'], os.environ['COLUMNS'] = LINES, COLUMNS
|
159
|
-
text = cap.getvalue()
|
160
|
-
return text, success_tuple
|
161
|
-
|
162
|
-
|
163
|
-
def use_process():
|
164
|
-
from meerschaum.utils.packages import run_python_package
|
165
|
-
from meerschaum._internal.arguments._parse_arguments import parse_dict_to_sysargs
|
166
|
-
max_buffer_size = 10000
|
167
|
-
line_buffer = ''
|
168
|
-
def send_line(line: str):
|
169
|
-
nonlocal line_buffer
|
170
|
-
line_buffer += line
|
171
|
-
buff_start_idx = max(len(line_buffer) - max_buffer_size, 0)
|
172
|
-
line_buffer = line_buffer[buff_start_idx:]
|
173
|
-
ws_send(line_buffer, session_id)
|
174
|
-
|
175
|
-
def do_process():
|
176
|
-
keywords['action'] = [action] + subactions
|
177
|
-
_sysargs = parse_dict_to_sysargs(keywords)
|
178
|
-
|
179
|
-
### Don't forget to pass the existing environment
|
180
|
-
### in case MRSM_CONFIG and MRSM_PATCH are set.
|
181
|
-
try:
|
182
|
-
_env = copy.deepcopy(os.environ)
|
183
|
-
except Exception as e:
|
184
|
-
_env = {}
|
185
|
-
_env.update({'LINES': '120', 'COLUMNS': '100'})
|
186
|
-
|
187
|
-
process = run_python_package(
|
188
|
-
'meerschaum', _sysargs,
|
189
|
-
line_callback = send_line,
|
190
|
-
env = _env,
|
191
|
-
foreground = False,
|
192
|
-
universal_newlines = True,
|
193
|
-
as_proc = True,
|
194
|
-
capture_output = False,
|
195
|
-
### Store the `subprocess.Popen` process in case we need to terminate it later.
|
196
|
-
store_proc_dict = running_jobs[session_id],
|
197
|
-
venv = None,
|
198
|
-
debug = debug,
|
199
|
-
)
|
200
|
-
action_thread = Thread(target=do_process)
|
201
|
-
running_jobs[session_id] = {'parent_thread': action_thread,}
|
202
|
-
action_thread.start()
|
203
|
-
return True, "Success"
|
204
|
-
|
205
|
-
|
206
|
-
def use_thread():
|
207
|
-
action_thread = Thread(target=do_action, daemon=True)
|
208
|
-
monitor_thread = Thread(target=monitor_and_send_stdout)
|
209
|
-
running_jobs[session_id] = action_thread
|
210
|
-
running_monitors[session_id] = monitor_thread
|
211
|
-
monitor_thread.start()
|
212
|
-
action_thread.start()
|
213
|
-
success_tuple = True, 'Success'
|
214
|
-
return success_tuple
|
215
|
-
|
216
|
-
text, success_tuple = use_stringio()
|
217
|
-
|
218
|
-
return (
|
219
|
-
[
|
220
|
-
html.Div(
|
221
|
-
html.Pre(text, id='console-pre'),
|
222
|
-
id = 'console-div'
|
223
|
-
),
|
224
|
-
],
|
225
|
-
[alert_from_success_tuple(success_tuple)]
|
226
|
-
)
|
227
|
-
|
228
|
-
|
229
|
-
def stop_action(state: WebState):
|
230
|
-
"""
|
231
|
-
Kill a running action.
|
232
|
-
|
233
|
-
Parameters
|
234
|
-
----------
|
235
|
-
state: WebState:
|
236
|
-
The state of the dashboard.
|
237
|
-
|
238
|
-
Returns
|
239
|
-
-------
|
240
|
-
A tuple of children and alerts.
|
241
|
-
"""
|
242
|
-
global running_jobs
|
243
|
-
session_id = state['session-store.data'].get('session-id', None)
|
244
|
-
thread = running_jobs.get(session_id, {}).get('parent_thread', None)
|
245
|
-
proc = running_jobs.get(session_id, {}).get('child_process', None)
|
246
|
-
if proc is not None and proc.poll() is None:
|
247
|
-
proc.terminate()
|
248
|
-
thread.join()
|
249
|
-
success_tuple = True, "Success"
|
250
|
-
webterm_iframe, webterm_alerts = get_webterm(state)
|
251
|
-
console_to_return = console_div if webterm_alerts else webterm_iframe
|
252
|
-
return (
|
253
|
-
[console_to_return],
|
254
|
-
[alert_from_success_tuple(success_tuple)]
|
255
|
-
)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|