Skip to content

Commit 085dfa2

Browse files
committed
more
[ENG-XXXX](https://stacklet.atlassian.net/browse/ENG-XXXX) ### what <here> ### why <here> ### testing <here> ### docs <here>
1 parent bd41f78 commit 085dfa2

8 files changed

Lines changed: 20 additions & 26 deletions

File tree

‎stacklet/client/platform/cli.py‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
from .commands import commands
1515
from .config import StackletConfig, StackletCredentials
1616
from .context import StackletContext
17-
from .formatter import Formatter
1817
from .utils import default_options, setup_logging
1918

2019

@@ -104,7 +103,7 @@ def cli(
104103
"api": api,
105104
}
106105

107-
ctx.obj = StackletContext(raw_config=raw_config, config_file=config)
106+
ctx.obj = StackletContext(raw_config=raw_config, config_file=config, output_format=output)
108107

109108

110109
@cli.command(short_help="Configure stacklet-admin cli")
@@ -295,7 +294,7 @@ def show(ctx):
295294
"""
296295
Show your config
297296
"""
298-
fmt = Formatter.registry.get(ctx.obj["output"])()
297+
fmt = ctx.obj.formatter()
299298
if id_token := StackletCredentials().id_token():
300299
id_details = jwt.decode(id_token, options={"verify_signature": False})
301300
click.echo(fmt(id_details))

‎stacklet/client/platform/commands/cube.py‎

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import click
1212
import requests
1313

14-
from stacklet.client.platform.context import StackletContext
1514
from stacklet.client.platform.utils import default_options, get_token
1615

1716

@@ -59,10 +58,9 @@ def resource_counts(ctx):
5958

6059

6160
def _run_query(ctx, query):
62-
context = StackletContext(ctx.obj["config"], ctx.obj["raw_config"])
6361
token = get_token()
6462

65-
url = f"https://{context.config.cubejs}/cubejs-api/v1/load"
63+
url = f"https://{ctx.obj.config.cubejs}/cubejs-api/v1/load"
6664

6765
data = {"query": query}
6866
response = requests.post(
@@ -74,10 +72,9 @@ def _run_query(ctx, query):
7472

7573

7674
def _get(ctx, path: str):
77-
context = StackletContext(ctx.obj["config"], ctx.obj["raw_config"])
7875
token = get_token()
7976

80-
url = f"https://{context.config.cubejs}/cubejs-api/{path}"
77+
url = f"https://{ctx.obj.config.cubejs}/cubejs-api/{path}"
8178

8279
response = requests.get(
8380
url=url,

‎stacklet/client/platform/commands/user.py‎

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import click
55

66
from stacklet.client.platform.cognito import CognitoUserManager
7-
from stacklet.client.platform.context import StackletContext
87
from stacklet.client.platform.utils import default_options
98

109

@@ -28,8 +27,7 @@ def add(ctx, username, password, email=None, phone_number=None, permanent=True):
2827
"""
2928
Add a cognito user in Stacklet
3029
"""
31-
context = StackletContext(ctx.obj["config"], ctx.obj["raw_config"])
32-
manager = CognitoUserManager.from_context(context)
30+
manager = CognitoUserManager.from_context(ctx.obj)
3331
manager.create_user(
3432
user=username,
3533
password=password,
@@ -47,8 +45,7 @@ def ensure_group(ctx, username, group):
4745
"""
4846
Ensure that the specified user has the group if the group is available.
4947
"""
50-
context = StackletContext(ctx.obj["config"], ctx.obj["raw_config"])
51-
manager = CognitoUserManager.from_context(context)
48+
manager = CognitoUserManager.from_context(ctx.obj)
5249
success = manager.ensure_group(
5350
user=username,
5451
group=group,

‎stacklet/client/platform/config.py‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
DEFAULT_CONFIG_DIR = Path("~/.stacklet").expanduser()
2121
DEFAULT_CONFIG_FILE = DEFAULT_CONFIG_DIR / "config.json"
2222

23+
DEFAULT_OUTPUT_FORMAT = "yaml"
24+
2325

2426
class StackletConfig:
2527
schema = {

‎stacklet/client/platform/context.py‎

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,21 @@
33

44
import os
55

6-
from .config import DEFAULT_CONFIG_FILE, StackletConfig
6+
from .config import DEFAULT_CONFIG_FILE, DEFAULT_OUTPUT_FORMAT, StackletConfig
7+
from .formatter import Formatter
78

89

910
class StackletContext:
1011
"""CLI Execution Context."""
1112

12-
def __init__(self, raw_config: dict | None = None, config_file: str | None = None):
13+
def __init__(
14+
self,
15+
raw_config: dict | None = None,
16+
config_file: str | None = None,
17+
output_format: str = DEFAULT_OUTPUT_FORMAT,
18+
):
1319
self.raw_config = raw_config
20+
self.formatter = Formatter.registry.get(output_format)
1421
if raw_config:
1522
self.config = StackletConfig(**raw_config)
1623
else:

‎stacklet/client/platform/executor.py‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66

77
import requests
88

9-
from stacklet.client.platform.context import StackletContext
10-
from stacklet.client.platform.formatter import Formatter
119
from stacklet.client.platform.registry import PluginRegistry
1210
from stacklet.client.platform.utils import _PAGINATION_OPTIONS, get_token, wrap_command
1311

@@ -81,5 +79,5 @@ def _run_graphql(ctx, name=None, variables=None, snippet=None, raw=False):
8179
res = executor.run(snippet=snippet, variables=variables)
8280
if raw:
8381
return res
84-
fmt = Formatter.registry.get(ctx.obj["output"])()
82+
fmt = ctx.obj.formatter()
8583
return fmt(res)

‎stacklet/client/platform/formatter.py‎

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,6 @@ class Formatter:
1212
registry = PluginRegistry("formats")
1313

1414

15-
@Formatter.registry.register("")
16-
class NullFormatter(Formatter):
17-
def __call__(self, value):
18-
raise NotImplementedError("Null Formatter")
19-
20-
2115
@Formatter.registry.register("plain")
2216
class RawFormatter(Formatter):
2317
def __call__(self, value):

‎stacklet/client/platform/utils.py‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55

66
import click
77

8-
from .config import DEFAULT_CONFIG_FILE, StackletCredentials
8+
from .config import DEFAULT_CONFIG_FILE, DEFAULT_OUTPUT_FORMAT, StackletCredentials
99
from .formatter import Formatter
1010

1111
_DEFAULT_OPTIONS = {
1212
"config": {"default": DEFAULT_CONFIG_FILE, "help": "Configuration file"},
1313
"output": {
1414
"type": click.Choice(list(Formatter.registry.keys()), case_sensitive=False),
15-
"default": "",
15+
"default": DEFAULT_OUTPUT_FORMAT,
1616
"help": "Output type",
1717
},
1818
"cognito_user_pool_id": {

0 commit comments

Comments
 (0)