69 lines
1.9 KiB
Python
69 lines
1.9 KiB
Python
import click
|
|
import requests
|
|
|
|
from .cli_main import main, auth_header, base_url
|
|
|
|
|
|
@main.group("top")
|
|
def top():
|
|
pass
|
|
|
|
|
|
@top.command("get")
|
|
@click.argument("host")
|
|
def top_get(host: str):
|
|
click.echo("Querying top for host...")
|
|
try:
|
|
response = requests.get(f'{base_url()}/top/query/{host}', headers=auth_header())
|
|
response.raise_for_status()
|
|
|
|
click.echo("Top:")
|
|
click.echo(response.json())
|
|
except requests.exceptions.HTTPError as e:
|
|
raise click.ClickException(f"Failed to query top:\n{e}")
|
|
|
|
|
|
@top.command("setenv")
|
|
@click.argument("host")
|
|
@click.argument("environment")
|
|
def top_setenv(host: str, environment: str):
|
|
click.echo("Assigning environment to host...")
|
|
|
|
try:
|
|
response = requests.post(f'{base_url()}/top/setenv/{host}/{environment}', headers=auth_header())
|
|
response.raise_for_status()
|
|
|
|
click.echo("Assigned environment")
|
|
except requests.exceptions.HTTPError as e:
|
|
raise click.ClickException(f"Failed to assign environment:\n{e}")
|
|
|
|
|
|
@top.command("assign")
|
|
@click.argument("host")
|
|
@click.argument("state")
|
|
def top_assign(host: str, state: str):
|
|
click.echo("Assigning state to host...")
|
|
|
|
try:
|
|
response = requests.post(f'{base_url()}/top/assign/{host}/{state}', headers=auth_header())
|
|
response.raise_for_status()
|
|
|
|
click.echo("Assigned state")
|
|
except requests.exceptions.HTTPError as e:
|
|
raise click.ClickException(f"Failed to assign state:\n{e}")
|
|
|
|
@top.command("unassign")
|
|
@click.argument("host")
|
|
@click.argument("state")
|
|
def top_assign(host: str, state: str):
|
|
click.echo("Assigning state to host...")
|
|
|
|
try:
|
|
response = requests.delete(f'{base_url()}/top/assign/{host}/{state}', headers=auth_header())
|
|
response.raise_for_status()
|
|
|
|
click.echo("Assigned state")
|
|
except requests.exceptions.HTTPError as e:
|
|
click.echo(f"Failed to assign state:\n{response.text}")
|
|
|