예제 #1
0
def cli(
    url: str,
    key: str,
    secret: str,
    tags: str,
    asset_type: str,
    export: bool,
    name_prefix: bool,
    export_path: Union[str, pathlib.Path],
    export_prefix: str,
    import_path: Union[str, pathlib.Path],
    single_file: bool,
):
    """Start data gathering."""
    tags = tags or ""
    tags = [x.strip() for x in tags.strip().split(",") if x.strip()]

    ctx = axonapi.Connect(
        url=url,
        key=key,
        secret=secret,
        certwarn=False,
        log_console=True,
        log_level_console="error",
    )
    ctx.start()

    api_obj = getattr(ctx, asset_type)

    if export:
        do_export(
            api_obj=api_obj,
            tags=tags,
            name_prefix=name_prefix,
            path=export_path,
            single_file=single_file,
            export_prefix=export_prefix,
        )
    else:
        do_import(api_obj=api_obj, path=import_path)
    AX_CLIENT_CERT_BOTH = os.environ.get("AX_CLIENT_CERT_BOTH", None) or None
    AX_CLIENT_CERT_CERT = os.environ.get("AX_CLIENT_CERT_CERT", None) or None
    AX_CLIENT_CERT_KEY = os.environ.get("AX_CLIENT_CERT_KEY", None) or None

    def jdump(obj, **kwargs):
        """JSON dump utility."""
        print(axonapi.tools.json_reload(obj, **kwargs))

    ctx = axonapi.Connect(
        url=AX_URL,
        key=AX_KEY,
        secret=AX_SECRET,
        certwarn=False,
        cert_client_both=AX_CLIENT_CERT_BOTH,
        cert_client_cert=AX_CLIENT_CERT_CERT,
        cert_client_key=AX_CLIENT_CERT_KEY,
        # log_file=True,
        # log_level_package="info",
        # log_level_console="info",
        # log_level_api="info",
        # log_level_http="info",
        # log_console=True,
    )

    ctx.start()
    devices = ctx.devices

    now = datetime.utcnow()
    this_time = now.isoformat(sep=" ", timespec="seconds")
    last_time = (now - timedelta(days=1)).isoformat(sep=" ",
                                                    timespec="seconds")
예제 #3
0
    AX_URL = os.environ["AX_URL"]
    AX_KEY = os.environ["AX_KEY"]
    AX_SECRET = os.environ["AX_SECRET"]
    SQ_NAME = os.environ.get("AX_SQ_NAME", "Managed Devices")
    FORMAT = os.environ.get("AX_FORMAT", "json")

    def jdump(obj, **kwargs):
        """JSON dump utility."""
        print(axonapi.tools.json_reload(obj, **kwargs))

    ctx = axonapi.Connect(
        url=AX_URL,
        key=AX_KEY,
        secret=AX_SECRET,
        certwarn=False,
        log_level_console="debug",
        log_level_api="debug",
        log_console=True,
    )

    ctx.start()

    devices = ctx.devices
    users = ctx.users
    adapters = ctx.adapters

    results = devices.get_by_saved_query(name=SQ_NAME)

    if FORMAT.lower() == "json":
        export_results = json.dumps(results, indent=4)
예제 #4
0
    AX_CLIENT_CERT_CERT = os.environ.get("AX_CLIENT_CERT_CERT", None) or None
    AX_CLIENT_CERT_KEY = os.environ.get("AX_CLIENT_CERT_KEY", None) or None

    def jdump(obj, **kwargs):
        """JSON dump utility."""
        print(axonapi.tools.json_reload(obj, **kwargs))

    ctx = axonapi.Connect(
        url=AX_URL,
        key=AX_KEY,
        secret=AX_SECRET,
        certwarn=False,
        cert_client_both=AX_CLIENT_CERT_BOTH,
        cert_client_cert=AX_CLIENT_CERT_CERT,
        cert_client_key=AX_CLIENT_CERT_KEY,
        log_level_console="debug",
        log_level_api="debug",
        log_level_http="debug",
        # log_request_attrs=["url", "size", "method"],
        # log_response_attrs=["status", "size"],
        # log_request_body=True,
        # log_response_body=True,
        # log_console=True,
    )

    ctx.start()
    devices = ctx.devices
    users = ctx.users
    adapters = ctx.adapters
    enforcements = ctx.enforcements
    system = ctx.system
# client_args.update(axonapi.get_env_connect(ax_env="/path/to/envfile", override=True))

# --- OR supply them here in the script
# client_args["url"] = "10.20.0.94"
# client_args["key"] = ""
# client_args["secret"] = ""

# --- Enable logging
# client_args["log_console"] = True  # enable logging to console
# client_args["log_request_attrs"] = "all"  # log all request attributes
# client_args["log_request_body"] = True  # log all request bodies
# client_args["log_response_attrs"] = "all"  # log all response attributes
# client_args["log_response_body"] = True  # log all response bodies

# create a client using the url, key, and secret from OS env
client = axonapi.Connect(**client_args)

j = client.jdump  # json dump helper

client.start()  # connect to axonius
# client.activity_logs          # get audit logs
# client.adapters               # get adapters and update adapter settings
# client.adapters.cnx           # CRUD for adapter connections
# client.dashboard              # get/start/stop discovery cycles
# client.devices                # get device assets
# client.devices.fields         # get field schemas for device assets
# client.devices.labels         # add/remove/get tags for device assets
# client.devices.saved_queries  # CRUD for saved queries for device assets
# client.enforcements           # CRUD for enforcements
# client.instances              # get instances and instance meta data
# client.meta                   # get product meta data
예제 #6
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""Base example for setting up the API client."""
import axonius_api_client as axonapi

# get the URL, API key, API secret, & certwarn from the default ".env" file
client_args = axonapi.get_env_connect()

# OR override OS env vars with the values from a custom .env file
# client_args = axonapi.get_env_connect(ax_env="/path/to/envfile", override=True)

# create a client using the url, key, and secret from OS env
client = axonapi.Connect(log_console=True, **client_args)

j = client.jdump  # json dump helper

client.start()  # connect to axonius
devices = client.devices  # work with device assets
users = client.users  # work with user assets
adapters = client.adapters  # work with adapters and adapter connections
enforcements = client.enforcements  # work with enforcements
instances = client.instances  # work with instances
dashboard = client.dashboard  # work with dashboards and discovery cycles
system_users = client.system_users  # work with system users
system_roles = client.system_roles  # work with system roles
meta = client.meta  # work with instance meta data
settings_global = client.settings_global  # work with core system settings
settings_gui = client.settings_gui  # work with gui system settings
settings_lifecycle = client.settings_lifecycle  # work with lifecycle system settings