Ejemplo n.º 1
0
    def test_start(self, request):
        ax_url = get_url(request)

        c = Connect(url=ax_url, certwarn=False, **get_key_creds(request))

        c.start()

        assert "Connected" in format(c)
        assert "Connected" in repr(c)

        props = [
            "activity_logs",
            "adapters",
            "dashboard",
            "devices",
            "enforcements",
            "instances",
            "meta",
            "remote_support",
            "settings_global",
            "settings_gui",
            "settings_ip",
            "settings_lifecycle",
            "signup",
            "system_roles",
            "system_users",
            "users",
        ]
        for prop in props:
            prop_attr = getattr(c, prop)
            assert format(prop_attr)
            assert repr(prop_attr)
Ejemplo n.º 2
0
    def test_other_exc(self, request):
        """Pass."""
        c = Connect(url="127.0.0.1", key=BAD_CRED, secret=BAD_CRED, certwarn=False)

        c._http.CONNECT_TIMEOUT = 1
        c._auth._creds = None

        with pytest.raises(ConnectError):
            c.start()
Ejemplo n.º 3
0
    def test_invalid_creds(self, request):
        ax_url = get_url(request)

        c = Connect(url=ax_url, key=BAD_CRED, secret=BAD_CRED, certwarn=False)

        c.HTTP.CONNECT_TIMEOUT = 1

        with pytest.raises(ConnectError) as exc:
            c.start()

        assert isinstance(exc.value.exc, InvalidCredentials)
Ejemplo n.º 4
0
    def test_other_exc(self, request):
        c = Connect(url="127.0.0.1",
                    key=BAD_CRED,
                    secret=BAD_CRED,
                    certwarn=False)

        c.HTTP.CONNECT_TIMEOUT = 1
        c.AUTH._creds = None

        with pytest.raises(ConnectError):
            c.start()
Ejemplo n.º 5
0
    def test_connect_error(self):
        c = Connect(url="https://127.0.0.1:3919",
                    key=BAD_CRED,
                    secret=BAD_CRED,
                    certwarn=False)

        c.HTTP.CONNECT_TIMEOUT = 1

        with pytest.raises(ConnectError) as exc:
            c.start()
        assert isinstance(exc.value.exc, requests.ConnectionError)
Ejemplo n.º 6
0
    def test_invalid_creds_nowrap(self, request):
        """Pass."""
        ax_url = get_url(request)

        c = Connect(
            url=ax_url, key=BAD_CRED, secret=BAD_CRED, certwarn=False, wraperror=False
        )

        c._http.CONNECT_TIMEOUT = 1

        with pytest.raises(InvalidCredentials):
            c.start()
Ejemplo n.º 7
0
    def test_connect_timeout(self):
        """Pass."""
        c = Connect(url="127.0.0.99", key=BAD_CRED, secret=BAD_CRED, certwarn=False)

        c._http.CONNECT_TIMEOUT = 1

        with pytest.raises(ConnectError) as exc:
            c.start()

        if IS_LINUX:
            assert isinstance(exc.value.exc, requests.ConnectionError)
        else:
            assert isinstance(exc.value.exc, requests.ConnectTimeout)
Ejemplo n.º 8
0
    def test_start(self, request):
        ax_url = get_url(request)

        c = Connect(url=ax_url, certwarn=False, **get_key_creds(request))

        c.start()

        assert "Connected" in format(c)
        assert "Connected" in repr(c)

        format(c.system.settings_lifecycle)
        format(c.system.settings_gui)
        format(c.system.settings_core)
        format(c.system.users)
        format(c.system.roles)
        format(c.instances)
        format(c.dashboard)
        format(c.system.meta)
        format(c.enforcements)
        format(c.users)
        format(c.devices)
        format(c.adapters)
                                fieldnames=fields,
                                extrasaction="ignore",
                                quoting=csv.QUOTE_ALL)
        writer.writerow(dict(zip(fields, fields)))
        for result in results:
            for k, v in result.items():
                if isinstance(v, list):
                    result[k] = "  - " + "\n  - ".join([str(x) for x in v])
            writer.writerow(result)
    print(f"wrote results to {path}")


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


j = jdump

if __name__ == "__main__":
    AX_URL = os.environ["AX_URL"]
    AX_KEY = os.environ["AX_KEY"]
    AX_SECRET = os.environ["AX_SECRET"]
    ctx = Connect(url=AX_URL, key=AX_KEY, secret=AX_SECRET, certwarn=False)
    ctx.start()
    devices = ctx.devices

    assets = get_assets(devices)
    results = parse_assets(assets)
    write_csv(results)
Ejemplo n.º 10
0
def test_module(client: Connect) -> str:
    """Tests Axonius API Client connectivity."""
    client.start()
    return "ok"
Ejemplo n.º 11
0
    print(json_reload(obj, **kwargs))


if __name__ == "__main__":
    # read the API key, API secret, and URL from a ".env" file
    load_dotenv()

    AX_URL = os.environ["AX_URL"]
    AX_KEY = os.environ["AX_KEY"]
    AX_SECRET = os.environ["AX_SECRET"]

    # create a client using the url, key, and secret
    client = Connect(url=AX_URL, key=AX_KEY, secret=AX_SECRET)

    # start the client, will perform login to URL using key & secret
    client.start()

    # work with device assets
    devices = client.devices

    # work with user assets
    users = client.users

    # work with adapters and adapter connections
    adapters = client.adapters

    # work with enforcements
    enforcements = client.enforcements

    # work with users, roles, global settings, and more
    system = client.system