Skip to main content

A Python library for Arista's CloudVision APIs and Provisioning Action integrations.

Project description

Arista CloudVision Python Library

The Arista CloudVision Python library provides access to Arista's CloudVision APIs for use in Python applications.

Documentation

API Documentation for this library can be found here.

Documentation for CloudVision's Resource APIs can be found here.

Documentation for generic access to CloudVision can be found at CloudVision Connector.

Installation

Install via pip:

pip install --upgrade cloudvision

Or from source:

python setup.py install

Requirements

  • CloudVision Resource APIs: Python 3.7+
  • CloudVision Connector: Python 3.7+
  • Examples: Python 3.7+

Resource APIs

Cloudvision APIs are state based, resource-oriented APIs modeled in Protobuf and accessed over gRPC using a standardized set of RPC verbs.

CloudVision is a powerful platform that processes and stores tremendous amounts of network data. It knows the topology of the network, device configuration, interface activity and other network events. These APIs allow access to fleet-wide data access and control, forming a management-plane with consistent usage.

For example, consider the following script that gets all existing and then watches for new CloudVision events of critical severity and notifies an administrator when raised and notes it on the event:

import time
import google.protobuf.wrappers_pb2
import grpc
from arista.event.v1 import models, services

# setup credentials as channelCredentials

with grpc.secure_channel("www.arista.io:443", channelCredentials) as channel:
    event_stub = services.EventServiceStub(channel)
    event_annotation_stub = services.EventAnnotationConfigServiceStub(channel)

    event_watch_request = services.EventStreamRequest(
        partial_eq_filter=[models.Event(severity=models.EVENT_SEVERITY_CRITICAL)],
    )
    for resp in event_stub.Subscribe(event_watch_request):
        print(f"Critical event {resp.title.value} raised at {resp.key.timestamp}")
        # send alert here via email, webhook, or incident reporting tool

        # then make a note on the event indicating an alert has been sent
        now_ms = int(time.time() * 1000)
        notes_to_set = {
            now_ms: models.EventNoteConfig(
                note=google.protobuf.wrappers_pb2.StringValue(
                    value="Administrator alerted",
                ),
            ),
        }
        annotation_config = models.EventAnnotationConfig(
            key=resp.key,
            notes=models.EventNotesConfig(
                notes=notes_to_set,
            ),
        )
        event_note_update = services.EventAnnotationConfigSetRequest(value=annotation_config)
        event_annotation_stub.Set(event_note_update)

CloudVision Connector

CloudVision Connector is a Python implementation of a GRPC client for CloudVision. It takes care of getting and publishing data and datasets, and also provides utilities for data representation.

Getting started

This is a small example advertising a few of the GRPC client capabilities. This example prints info from all devices streaming into CloudVision.

targetDataset = "analytics"
path = ["DatasetInfo", "Devices"]
# No filtering done on keys, accept all
keys = []
ProtoBufQuery = CreateQuery([(path, keys)], targetDataset)
with GRPCClient("my-cv-host:9900") as client:
     for notifBatch in client.Get([query]):
         for notif in notifBatch["notifications"]:
             # Get timestamp for all update here with notif.Timestamp
             PrettyPrint(notif["updates"])

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cloudvision-1.21.0.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

cloudvision-1.21.0-py3-none-any.whl (439.4 kB view details)

Uploaded Python 3

File details

Details for the file cloudvision-1.21.0.tar.gz.

File metadata

  • Download URL: cloudvision-1.21.0.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.8

File hashes

Hashes for cloudvision-1.21.0.tar.gz
Algorithm Hash digest
SHA256 4e8c56a0d40413916a762758d4b23c5030bc39ad79ba65738f30d2dff8d991e4
MD5 33e2255a1ab1da71a406998a34bba9de
BLAKE2b-256 539f9441caabe4d579bb406b557c8ebe8fe8ef71d3dc6198e586eadfc1956101

See more details on using hashes here.

File details

Details for the file cloudvision-1.21.0-py3-none-any.whl.

File metadata

  • Download URL: cloudvision-1.21.0-py3-none-any.whl
  • Upload date:
  • Size: 439.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.8

File hashes

Hashes for cloudvision-1.21.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1adf599817d77a0a822a733f678b6e79700d5fa1b43c951e60d6a7471f6f0526
MD5 e3dc8c7927952535bac71773b5a90267
BLAKE2b-256 011489e2acbcc9ab922ac5ed0b3aee101b898c60d563d970054fe7257aa8ff36

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page