'client-test' toevoegen

This commit is contained in:
2023-02-22 18:56:31 +01:00
parent 04728ab60b
commit 246853880a

70
client-test Normal file
View File

@ -0,0 +1,70 @@
#!/usr/bin/env python
import click
from fast_api_client import Client
import json
from fast_api_client.models import Environment,HTTPValidationError,ValidationError
from fast_api_client.api.default import root_get,get_inventory_api_v1_environments_inventory_post,create_environments_api_v1_environments_post,delete_environments_api_v1_environments_delete,list_environments_api_v1_environments_list_post,get_ports_api_v1_environments_ports_post
from fast_api_client.types import Response
client = Client(base_url="http://bla:8000", timeout=120.0)
@click.command(no_args_is_help=True)
@click.option("--create",'-c', type=(str),is_flag=False, help="Create environment (non root user)")
@click.option("--delete", '-d', type=(str),is_flag=False, help="Delete environment")
@click.option("--getlist", "-l", help="List environments")
@click.option("--inventory", "-i", type=(str), help="Get ansible inventory of environment")
@click.option("--ports", "-p", type=(str), help="Get ports of environment")
@click.option("--uid", '-u', type=(str),is_flag=False, help="Uniq identifier")
@click.version_option(version="1.0", prog_name="Dragontool client", message="%(prog)s version %(version)s")
def dragontool_client(create, delete, getlist, inventory, uid, ports):
"""Dragontool client for managing environments"""
if create:
response: Response[Environment] = create_environments_api_v1_environments_post.sync_detailed(client=client,json_body=Environment(username=create,uid=uid))
#print(f"{response.status_code}")
if response.status_code == 200:
#click.echo(f"Environment {create} created!")
data = json.loads(response.content.decode('utf-8'))
print(data['uid'])
#print(f"{response.content.decode('utf-8')}")
elif response.status_code == 500:
click.echo(f"Environment {create} not created, could be it already exists!")
elif delete:
if uid is None:
click.echo(f"Missing uid, please add -u <uid>")
else:
response: Response[Environment] = delete_environments_api_v1_environments_delete.sync_detailed(client=client,json_body=Environment(username=delete,uid=uid))
if response.status_code == 200:
click.echo(f"Environment {delete} deleted!")
elif getlist:
response: Response[Environment] = list_environments_api_v1_environments_list_post.sync_detailed(client=client,json_body=Environment(username=getlist))
response_json = json.loads(response.content.decode('utf-8'))
click.echo(f"Environments:")
for json_data in response_json:
if "uid" in json_data.keys():
click.echo(f"\t- {json_data['uid']}")
#click.echo(f"{response.content.decode('utf-8')}")
elif inventory:
if uid is None:
click.echo(f"Missing uid, please add -u <uid>")
else:
response: Response[Environment] = get_inventory_api_v1_environments_inventory_post.sync_detailed(client=client,json_body=Environment(username=inventory,uid=uid))
click.echo(f"{response.content.decode('utf-8')}")
elif ports:
if uid is None:
click.echo(f"Missing uid, please add -u <uid>")
else:
response: Response[Environment] = get_ports_api_v1_environments_ports_post.sync_detailed(client=client,json_body=Environment(username=ports,uid=uid))
response_json = json.loads(response.content.decode('utf-8'))
for json_data in response_json:
if "container_pub_ssh_port" in json_data.keys():
click.echo(f"SSH:\t{json_data['container_alias']} on {json_data['host_ip']}:{json_data['container_pub_ssh_port']}")
elif "container_pub_ldap_port" in json_data.keys():
click.echo(f"LDAP:\t{json_data['container_alias']} on {json_data['host_ip']}:{json_data['container_pub_ldap_port']}\n")
#print(f"{data[0]}")
#print(f"{response.content.decode('utf-8')}")
#click.echo(f"{data}")
if __name__ == '__main__':
dragontool_client()