Skip to content

mag_dagster

mag_dagster module

cli(ctx, verbose)

magasin client is the glue between magasin components, it makes easier common tasks

Source code in mag/mag.py
39
40
41
42
43
44
45
46
@click.group(cls=ClickAliasedGroup)
@click.option('-v', '--verbose', count=True)
@click.option('--version', is_flag=True, callback=print_version,
              expose_value=False, is_eager=True)
@click.pass_context
def cli(ctx, verbose):
    """magasin client is the glue between magasin components, it makes easier common tasks"""
    ctx.ensure_object(dict)

dagster()

Dagster commands

Source code in mag_dagster/dagster.py
7
8
9
@cli.group("dagster", cls=ClickAliasedGroup, aliases=["d"])
def dagster():
  """Dagster commands"""

launch_ui(realm, component, service_name, ports, protocol='http', verbose=False)

Launches the user interface for a given realm, component, and service.

Parameters:

Name Type Description Default
realm str

The realm of the magasin instance.

required
component str

The magasin component (f.i superset, daskhub, drill, ...)

required
service_name str

The name of the kubernetes service to forward.

required
ports str

The ports to forward, using the format "local_port:remote_port".

required
protocol str

The protocol to use (default is "http").

'http'
verbose bool

Whether to display verbose output (default is False).

False

Returns:

Name Type Description
None None

Nothing

Source code in mag/mag_core/launch.py
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
def launch_ui(realm: str, component: str, service_name: str, ports: str, protocol: str = "http", verbose=False) -> None:
    """
    Launches the user interface for a given realm, component, and service.

    Args:
        realm (str): The realm of the magasin instance.
        component (str): The magasin component (f.i superset, daskhub, drill, ...)
        service_name (str): The name of the kubernetes service to forward.
        ports (str): The ports to forward, using the format "local_port:remote_port".
        protocol (str, optional): The protocol to use (default is "http").
        verbose (bool, optional): Whether to display verbose output (default is False).

    Returns:
        None: Nothing
    """    
    forward_port(realm=realm, component=component,
                 service_name=service_name, ports=ports, verbose=verbose)

    localhost_port, _ = split_ports(ports)
    url = f"{protocol}://localhost:{localhost_port}"
    click.echo(f"Open browser at: {url}")
    click.launch(url)
    click.echo("launch ui")

    try:
        # Wait for user to press Ctrl+C
        signal.pause()
    except KeyboardInterrupt:
        # Handle Ctrl+C: terminate the server and clean up
        process.terminate()
        os.waitpid(process.pid, 0)
        click.echo("\nServer terminated. Exiting.")

ui(realm, ports)

Launch dagster UI

Source code in mag_dagster/dagster.py
12
13
14
15
16
17
@dagster.command(aliases=['user-interface'])
@options.realm
@options.ports(default='3000:80')
def ui (realm, ports):
  """Launch dagster UI"""
  launch_ui(realm=realm, component=COMPONENT,service_name='service/dagster-dagster-webserver', ports=ports)