yamcs-cli 1.4.10__py3-none-any.whl → 1.4.12__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.
- yamcs/cli/__main__.py +4 -4
- yamcs/cli/commands.py +7 -3
- yamcs/cli/dbshell.py +1 -2
- yamcs/cli/events.py +7 -0
- yamcs/cli/login.py +2 -3
- yamcs/cli/parameter_archive.py +29 -0
- yamcs/cli/storage.py +1 -2
- yamcs/cli/utils.py +10 -13
- {yamcs_cli-1.4.10.dist-info → yamcs_cli-1.4.12.dist-info}/METADATA +6 -11
- {yamcs_cli-1.4.10.dist-info → yamcs_cli-1.4.12.dist-info}/RECORD +14 -14
- {yamcs_cli-1.4.10.dist-info → yamcs_cli-1.4.12.dist-info}/WHEEL +1 -1
- {yamcs_cli-1.4.10.dist-info → yamcs_cli-1.4.12.dist-info}/LICENSE +0 -0
- {yamcs_cli-1.4.10.dist-info → yamcs_cli-1.4.12.dist-info}/entry_points.txt +0 -0
- {yamcs_cli-1.4.10.dist-info → yamcs_cli-1.4.12.dist-info}/top_level.txt +0 -0
yamcs/cli/__main__.py
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import argparse
|
|
2
|
-
import logging
|
|
3
2
|
import sys
|
|
3
|
+
import traceback
|
|
4
4
|
|
|
5
5
|
import argcomplete
|
|
6
6
|
import pkg_resources
|
|
7
|
-
from yamcs.
|
|
7
|
+
from yamcs.client import Unauthorized
|
|
8
8
|
|
|
9
9
|
from yamcs.cli import utils
|
|
10
10
|
from yamcs.cli.alarms import AlarmsCommand
|
|
@@ -115,12 +115,12 @@ def main():
|
|
|
115
115
|
sys.exit(1)
|
|
116
116
|
except Unauthorized:
|
|
117
117
|
if args.debug:
|
|
118
|
-
eprint(
|
|
118
|
+
eprint(traceback.format_exc())
|
|
119
119
|
eprint("Unauthorized. Run: 'yamcs login' to login to Yamcs")
|
|
120
120
|
sys.exit(1)
|
|
121
121
|
except Exception as e:
|
|
122
122
|
if args.debug:
|
|
123
|
-
eprint(
|
|
123
|
+
eprint(traceback.format_exc())
|
|
124
124
|
else:
|
|
125
125
|
eprint(e)
|
|
126
126
|
sys.exit(1)
|
yamcs/cli/commands.py
CHANGED
|
@@ -4,7 +4,7 @@ from typing import Any, List
|
|
|
4
4
|
from yamcs.client import YamcsClient
|
|
5
5
|
|
|
6
6
|
from yamcs.cli import utils
|
|
7
|
-
from yamcs.cli.completers import CommandCompleter, ProcessorCompleter
|
|
7
|
+
from yamcs.cli.completers import CommandCompleter, ProcessorCompleter, StreamCompleter
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class CommandsCommand(utils.Command):
|
|
@@ -26,7 +26,7 @@ class CommandsCommand(utils.Command):
|
|
|
26
26
|
subparser = self.create_subparser(subparsers, "run", "Run a command")
|
|
27
27
|
subparser.set_defaults(func=self.run)
|
|
28
28
|
subparser.add_argument(
|
|
29
|
-
"command", metavar="NAME", type=str, help="
|
|
29
|
+
"command", metavar="NAME", type=str, help="Name of the command"
|
|
30
30
|
).completer = CommandCompleter
|
|
31
31
|
subparser.add_argument("--arg-file", help="Read arguments from a file")
|
|
32
32
|
subparser.add_argument(
|
|
@@ -37,7 +37,10 @@ class CommandsCommand(utils.Command):
|
|
|
37
37
|
help="Set arguments",
|
|
38
38
|
)
|
|
39
39
|
subparser.add_argument(
|
|
40
|
-
"--
|
|
40
|
+
"--stream", type=str, help="Name of the stream"
|
|
41
|
+
).completer = StreamCompleter
|
|
42
|
+
subparser.add_argument(
|
|
43
|
+
"--processor", type=str, help="Name of the processor", default="realtime"
|
|
41
44
|
).completer = ProcessorCompleter
|
|
42
45
|
subparser.add_argument(
|
|
43
46
|
"--sequence-number",
|
|
@@ -131,6 +134,7 @@ class CommandsCommand(utils.Command):
|
|
|
131
134
|
args=command_args,
|
|
132
135
|
dry_run=args.dry_run,
|
|
133
136
|
comment=args.comment,
|
|
137
|
+
stream=args.stream,
|
|
134
138
|
**kwargs,
|
|
135
139
|
)
|
|
136
140
|
print(command.id)
|
yamcs/cli/dbshell.py
CHANGED
|
@@ -10,8 +10,7 @@ from pydoc import pager
|
|
|
10
10
|
from typing import Any, List
|
|
11
11
|
|
|
12
12
|
from google.protobuf import json_format
|
|
13
|
-
from yamcs.client import YamcsClient
|
|
14
|
-
from yamcs.core.exceptions import YamcsError
|
|
13
|
+
from yamcs.client import YamcsClient, YamcsError
|
|
15
14
|
from yamcs.protobuf.events import events_pb2
|
|
16
15
|
|
|
17
16
|
from yamcs.cli import utils
|
yamcs/cli/events.py
CHANGED
|
@@ -69,6 +69,12 @@ class EventsCommand(utils.Command):
|
|
|
69
69
|
type=str,
|
|
70
70
|
help="Include events not newer than the specified date",
|
|
71
71
|
)
|
|
72
|
+
subparser.add_argument(
|
|
73
|
+
"--filter",
|
|
74
|
+
metavar="EXPRESSION",
|
|
75
|
+
type=str,
|
|
76
|
+
help="Apply a filter expression to each event",
|
|
77
|
+
)
|
|
72
78
|
subparser.set_defaults(func=self.log)
|
|
73
79
|
|
|
74
80
|
def create(self, args):
|
|
@@ -135,6 +141,7 @@ class EventsCommand(utils.Command):
|
|
|
135
141
|
most_recent_only = start is None and stop is None and args.lines != "all"
|
|
136
142
|
|
|
137
143
|
iterator = archive.list_events(
|
|
144
|
+
filter=args.filter,
|
|
138
145
|
descending=most_recent_only,
|
|
139
146
|
start=start,
|
|
140
147
|
stop=stop,
|
yamcs/cli/login.py
CHANGED
|
@@ -2,8 +2,7 @@ import os
|
|
|
2
2
|
from getpass import getpass
|
|
3
3
|
from typing import Optional
|
|
4
4
|
|
|
5
|
-
from yamcs.client import YamcsClient
|
|
6
|
-
from yamcs.core import auth
|
|
5
|
+
from yamcs.client import Credentials, YamcsClient
|
|
7
6
|
|
|
8
7
|
from yamcs.cli import utils
|
|
9
8
|
from yamcs.cli.utils import eprint
|
|
@@ -112,7 +111,7 @@ class LoginCommand(utils.Command):
|
|
|
112
111
|
eprint("*** Password may not be empty")
|
|
113
112
|
return False
|
|
114
113
|
|
|
115
|
-
return
|
|
114
|
+
return Credentials(username=username, password=password)
|
|
116
115
|
|
|
117
116
|
def save_client_config(
|
|
118
117
|
self,
|
yamcs/cli/parameter_archive.py
CHANGED
|
@@ -35,6 +35,17 @@ class ParameterArchiveCommand(utils.Command):
|
|
|
35
35
|
subparsers, "purge", "Remove all data from the Parameter Archive"
|
|
36
36
|
)
|
|
37
37
|
subparser.set_defaults(func=self.purge)
|
|
38
|
+
subparser = self.create_subparser(
|
|
39
|
+
subparsers, "backfilling", "Manage Parameter Archive backfilling"
|
|
40
|
+
)
|
|
41
|
+
subparser.add_argument(
|
|
42
|
+
"action",
|
|
43
|
+
metavar="ACTION",
|
|
44
|
+
type=str,
|
|
45
|
+
choices=["enable", "disable"],
|
|
46
|
+
help="either enable or disable",
|
|
47
|
+
)
|
|
48
|
+
subparser.set_defaults(func=self.backfilling)
|
|
38
49
|
|
|
39
50
|
def rebuild(self, args):
|
|
40
51
|
opts = utils.CommandOptions(args)
|
|
@@ -57,3 +68,21 @@ class ParameterArchiveCommand(utils.Command):
|
|
|
57
68
|
archive.purge_parameter_archive()
|
|
58
69
|
sys.stderr.write("done\n")
|
|
59
70
|
sys.stderr.flush()
|
|
71
|
+
|
|
72
|
+
def backfilling(self, args):
|
|
73
|
+
opts = utils.CommandOptions(args)
|
|
74
|
+
client = YamcsClient(**opts.client_kwargs)
|
|
75
|
+
archive = client.get_archive(opts.require_instance())
|
|
76
|
+
|
|
77
|
+
if args.action.lower() == "enable":
|
|
78
|
+
sys.stderr.write("Enabling automatic backfilling... ")
|
|
79
|
+
sys.stderr.flush()
|
|
80
|
+
archive.enable_parameter_archive_backfilling()
|
|
81
|
+
sys.stderr.write("done\n")
|
|
82
|
+
sys.stderr.flush()
|
|
83
|
+
elif args.action.lower() == "disable":
|
|
84
|
+
sys.stderr.write("Disabling automatic backfilling... ")
|
|
85
|
+
sys.stderr.flush()
|
|
86
|
+
archive.disable_parameter_archive_backfilling()
|
|
87
|
+
sys.stderr.write("done\n")
|
|
88
|
+
sys.stderr.flush()
|
yamcs/cli/storage.py
CHANGED
|
@@ -4,8 +4,7 @@ import sys
|
|
|
4
4
|
import tempfile
|
|
5
5
|
from typing import Any, List
|
|
6
6
|
|
|
7
|
-
from yamcs.client import YamcsClient
|
|
8
|
-
from yamcs.core.helpers import to_isostring
|
|
7
|
+
from yamcs.client import YamcsClient, to_isostring
|
|
9
8
|
|
|
10
9
|
from yamcs.cli import utils
|
|
11
10
|
from yamcs.cli.completers import BucketCompleter, BucketOrObjectCompleter
|
yamcs/cli/utils.py
CHANGED
|
@@ -8,8 +8,7 @@ from typing import Any, List
|
|
|
8
8
|
|
|
9
9
|
import pkg_resources
|
|
10
10
|
from dateutil import parser
|
|
11
|
-
from yamcs.
|
|
12
|
-
from yamcs.core.helpers import parse_server_timestring, to_isostring
|
|
11
|
+
from yamcs.client import Credentials, parse_server_timestring, to_isostring
|
|
13
12
|
|
|
14
13
|
from yamcs.cli.exceptions import NoInstanceError, NoServerError
|
|
15
14
|
|
|
@@ -39,20 +38,18 @@ def save_config(config):
|
|
|
39
38
|
config.write(f)
|
|
40
39
|
|
|
41
40
|
|
|
42
|
-
def save_credentials(credentials):
|
|
41
|
+
def save_credentials(credentials: Credentials):
|
|
43
42
|
if not os.path.exists(CONFIG_DIR):
|
|
44
43
|
os.makedirs(CONFIG_DIR)
|
|
45
44
|
|
|
46
45
|
with open(CREDENTIALS_FILE, "wt") as f:
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
indent=2,
|
|
55
|
-
)
|
|
46
|
+
obj = {
|
|
47
|
+
"access_token": credentials.access_token,
|
|
48
|
+
"refresh_token": credentials.refresh_token,
|
|
49
|
+
}
|
|
50
|
+
if credentials.expiry:
|
|
51
|
+
obj["expiry"] = to_isostring(credentials.expiry)
|
|
52
|
+
json.dump(obj, f, indent=2)
|
|
56
53
|
|
|
57
54
|
|
|
58
55
|
def read_credentials():
|
|
@@ -65,7 +62,7 @@ def read_credentials():
|
|
|
65
62
|
access_token = d["access_token"]
|
|
66
63
|
refresh_token = d["refresh_token"]
|
|
67
64
|
expiry = parse_server_timestring(d["expiry"]) if "expiry" in d else None
|
|
68
|
-
return
|
|
65
|
+
return Credentials(
|
|
69
66
|
access_token=access_token,
|
|
70
67
|
refresh_token=refresh_token,
|
|
71
68
|
expiry=expiry,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: yamcs-cli
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.12
|
|
4
4
|
Summary: Yamcs Command-Line Tools
|
|
5
5
|
Home-page: https://github.com/yamcs/yamcs-cli
|
|
6
6
|
Author: Space Applications Services
|
|
@@ -14,33 +14,28 @@ Classifier: Intended Audience :: System Administrators
|
|
|
14
14
|
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
|
|
15
15
|
Classifier: Programming Language :: Python
|
|
16
16
|
Classifier: Programming Language :: Python :: 3
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.8
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.9
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.10
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
23
|
Classifier: Operating System :: OS Independent
|
|
24
|
-
Requires-Python: >=3.
|
|
24
|
+
Requires-Python: >=3.8
|
|
25
25
|
Description-Content-Type: text/markdown
|
|
26
26
|
License-File: LICENSE
|
|
27
27
|
Requires-Dist: argcomplete
|
|
28
28
|
Requires-Dist: python-dateutil
|
|
29
|
-
Requires-Dist: yamcs-client
|
|
29
|
+
Requires-Dist: yamcs-client>=1.11.2
|
|
30
30
|
Provides-Extra: kerberos
|
|
31
|
-
Requires-Dist: yamcs-client-kerberos
|
|
31
|
+
Requires-Dist: yamcs-client-kerberos>=1.3.0; extra == "kerberos"
|
|
32
32
|
|
|
33
33
|
# Command-Line Interface
|
|
34
34
|
|
|
35
35
|
## Development Setup
|
|
36
36
|
|
|
37
|
-
Install build dependencies (you may want to do this in a virtualenv):
|
|
38
|
-
|
|
39
|
-
pip install -r requirements.txt
|
|
40
|
-
|
|
41
|
-
|
|
42
37
|
Install `yamcs-cli` from the source base:
|
|
43
38
|
|
|
44
|
-
|
|
39
|
+
pip install -e .
|
|
45
40
|
|
|
46
41
|
Changes to any source file have immediate impact.
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
yamcs/cli/__main__.py,sha256=
|
|
1
|
+
yamcs/cli/__main__.py,sha256=JWPpQt2tBuZYnuABr7Sx940wwaj5-sWw3WIs34BlZQ0,4234
|
|
2
2
|
yamcs/cli/alarms.py,sha256=cHLwveHqvpnLHddktGA5LCyOt9FRljcwid9Q7TYd5FI,7126
|
|
3
3
|
yamcs/cli/algorithms.py,sha256=Oqw0tiIv_mmK7smPYIdI00uUfM2KxHMbrySGi8Ywlcc,1622
|
|
4
4
|
yamcs/cli/bash_completion.sh,sha256=sQOPhbykD68uMYkcWudqJNJKuSQh2Blzozt2kkawRo4,1032
|
|
5
|
-
yamcs/cli/commands.py,sha256=
|
|
5
|
+
yamcs/cli/commands.py,sha256=ANOyAIeMDhJkk7hNyYAkwqjWDfFIpKpfR-fLkSxmEj0,6465
|
|
6
6
|
yamcs/cli/completers.py,sha256=tteufAU2XeS2rATY8jQ5L4fxlUtbPq1Lj2NSxZvQgU4,4445
|
|
7
7
|
yamcs/cli/config.py,sha256=WeuE6rfRSGt7f5nuD2tJmH_gXl5RSPlLRvufnWj4IGM,2996
|
|
8
8
|
yamcs/cli/containers.py,sha256=vjFoqeAd8Qzw-jp0XxO_HVi2852OEUz3mmtdrBAVqHE,1621
|
|
9
|
-
yamcs/cli/dbshell.py,sha256=
|
|
10
|
-
yamcs/cli/events.py,sha256=
|
|
9
|
+
yamcs/cli/dbshell.py,sha256=p86OUmwe1IGAqbxFdc1iXYeUDwkgZi4Bhlxfe7OhRUo,16719
|
|
10
|
+
yamcs/cli/events.py,sha256=waOT7Is909EOWE1uqXla8G2QGXJXf7MstUgYjVufzs4,5617
|
|
11
11
|
yamcs/cli/exceptions.py,sha256=0RcpLLR_jubALmuSlZ1DQ0KUcfKadOl-1VRPi0LxHSw,238
|
|
12
12
|
yamcs/cli/instances.py,sha256=RBfHQUGZB4hU_MGdhPmZgzO_WkA2Sj54KpxT7BSyLeQ,2119
|
|
13
13
|
yamcs/cli/links.py,sha256=RmdeYLqC1agtORso2T8MUcgp3f-zJKIfeb0UsupsXzc,3330
|
|
14
|
-
yamcs/cli/login.py,sha256=
|
|
14
|
+
yamcs/cli/login.py,sha256=VAIE--YGiCTwf8D79L3dHKKtTlmdSFcgkUcR37CwVzY,4969
|
|
15
15
|
yamcs/cli/logout.py,sha256=XgIdxuAUHQ5VbPP6sZwN88cAvWQEm7GBPfvYj6vn9Rg,562
|
|
16
16
|
yamcs/cli/packets.py,sha256=js-meTATi7a7IjVWC9nLiu56KdZNyDjZY9QBlRWfgD0,4645
|
|
17
|
-
yamcs/cli/parameter_archive.py,sha256=
|
|
17
|
+
yamcs/cli/parameter_archive.py,sha256=rv1Evgi5iBsnE-AgSOtaQsFYiqekQDv1k3fVFiMK1iE,3007
|
|
18
18
|
yamcs/cli/parameters.py,sha256=ZDOfLly5gzKoUvfvg9vbDLMh_NYnh3mBi95n_sZCjSY,6012
|
|
19
19
|
yamcs/cli/processors.py,sha256=9BJlQywmq6x_ea3tWT66dB2wBry9divqWhG3VWKM6Nw,1988
|
|
20
20
|
yamcs/cli/rocksdb.py,sha256=28VjE9ldHUrGCxMeNNOn8FhnvdRJbiMlKjnjErgrl1k,1947
|
|
21
21
|
yamcs/cli/services.py,sha256=4sE7vOB977EmNfA4X9YJSyi3bSmhfqOj3cScGYGR4Lc,2171
|
|
22
22
|
yamcs/cli/space_systems.py,sha256=hsjDzRNZLlUSlBuO-WJGyUXmIpoQYk0n84sgQ4y8wEA,2285
|
|
23
|
-
yamcs/cli/storage.py,sha256=
|
|
23
|
+
yamcs/cli/storage.py,sha256=Ynqz5kIIqcPLTgfPJsnQ6dubOaqqE5_CmVOo0MzTnAQ,9771
|
|
24
24
|
yamcs/cli/streams.py,sha256=RvB4OuqU0CiY_XAn356JiSlaO_AgIXEbHN1VRaHul64,2392
|
|
25
25
|
yamcs/cli/tables.py,sha256=3Fc-31ViO3TT14SV0b9jhRPXa2NZsLcJMqr3tSYvHM4,8505
|
|
26
|
-
yamcs/cli/utils.py,sha256=
|
|
26
|
+
yamcs/cli/utils.py,sha256=cQ1A_hEFvkcuF09UDVLm9UEzWMSmv8M_qi8xN16DSRs,7762
|
|
27
27
|
yamcs/cli/protobuf/activities_pb2.py,sha256=8V42hiw99laYl0pAMISd-B_PY6LAuXMkAeMOXwjyX88,2741
|
|
28
28
|
yamcs/cli/protobuf/cmdhistory_pb2.py,sha256=8WK--s8OO9dCbDur86MraQXoMvJq-kU1ZMOHAJ4PvuI,4198
|
|
29
29
|
yamcs/cli/protobuf/db_pb2.py,sha256=ObnWfpZZDoCCHQcBH7GRGRjXfnKgu8bKnw5fOZMo_e0,15789
|
|
@@ -31,9 +31,9 @@ yamcs/cli/protobuf/replication_pb2.py,sha256=0YzH8bVPi2DNmHcgxyv9m_XuhYnH83U0O6k
|
|
|
31
31
|
yamcs/cli/protobuf/security_pb2.py,sha256=SbVHS7ghG_JDbZ_35p8GwVnV-3HuwNOGAWRVhFoWbPE,21569
|
|
32
32
|
yamcs/cli/protobuf/tablespace_pb2.py,sha256=DLYPDKOgLm1xeZAT5F7WMLaGQJM_npeYfpZAFMSM6OU,37008
|
|
33
33
|
yamcs/cli/protobuf/timeline_pb2.py,sha256=JUl7sGOYMS8IP6h0hCOCrQz8BaBtvxjf6lY7cpDYcfg,5004
|
|
34
|
-
yamcs_cli-1.4.
|
|
35
|
-
yamcs_cli-1.4.
|
|
36
|
-
yamcs_cli-1.4.
|
|
37
|
-
yamcs_cli-1.4.
|
|
38
|
-
yamcs_cli-1.4.
|
|
39
|
-
yamcs_cli-1.4.
|
|
34
|
+
yamcs_cli-1.4.12.dist-info/LICENSE,sha256=46mU2C5kSwOnkqkw9XQAJlhBL2JAf1_uCD8lVcXyMRg,7652
|
|
35
|
+
yamcs_cli-1.4.12.dist-info/METADATA,sha256=GDAyRQHDISQK3ug3tzlVW_QbyLyDCKa4AIzB9RAvXH0,1417
|
|
36
|
+
yamcs_cli-1.4.12.dist-info/WHEEL,sha256=A3WOREP4zgxI0fKrHUG8DC8013e3dK3n7a6HDbcEIwE,91
|
|
37
|
+
yamcs_cli-1.4.12.dist-info/entry_points.txt,sha256=M6Juk3MbdDMR1v3htR2aHEebitGHW-E3ujHmYQLwEas,50
|
|
38
|
+
yamcs_cli-1.4.12.dist-info/top_level.txt,sha256=EsFTpWxnHBl6f_5Wf-CrENGPSoY7xP4T-JpgBMwsk8Q,6
|
|
39
|
+
yamcs_cli-1.4.12.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|