Skip to main content

Python Alteon SDK

Project description

Introduction

  • provide API for developers to interact with Alteon structures in Python environment via REST Backend
  • access to Alteon Management & Configuration functions
  • abstract configuration model to alteon elements via consistent Declarative-style Configurators

in this model a consistent object structures are exposed to user per configurator type. each configurator handle base commands over a device (READ, READ_ALL, DELETE, UPDATE & DEPLOY) the package handles the binding & translation between alteon device to abstract objects it works both ways: abstract <-> alteon structure, in other words it translate abstract to alteon configuration and read from alteon into abstract type. multi choices (enums) are consumed dynamically from the beans package. developer can choose to work with string_value/int/enums directly

the SDK is requires Python >3.6

Minimum Supported Alteon Versions: 31.0.10.0, 32.2.2.0

device direct API, Configurators and Management are available via the Alteon client module:

from radware.alteon.client import AlteonClient
from radware.alteon.beans.SlbNewCfgEnhRealServerTable import *

alteon_client_params = dict(
        validate_certs=False,
        user='admin',
        password='admin',
        https_port=443,
        server='172.16.1.1',
        timeout=15,
)
client = AlteonClient(**alteon_client_params)

# read bean from device:
bean = SlbNewCfgEnhRealServerTable()
bean.Index = 'real_1'
print(client.api.device.read(bean))

# work with Configurators:
client.api.mgmt.config.commit()
print(client.api.mgmt.info.software)
print(client.api.conf.type.dns_responders.read_all())
server_params = ServerParameters()
server_params.index = 'real1'
server_params.ip_address = '3.3.3.3'
client.api.conf.execute('deploy', server_params, dry_run=True, write_on_change=True, get_diff=True)

another way of use is directly via the desire Configurator:

from radware.alteon.sdk.configurators.server import *

connection = AlteonConnection(**alteon_client_params)
server_configurator = ServerConfigurator(connection)

server_params = ServerParameters()
server_params.index = 'real1'
server_params.ip_address = '3.3.3.3'
server_params.availability = 5
server_params.server_ports = [56, 78]
server_params.weight = 5
server_params.server_type = EnumSlbRealServerType.remote_server
server_params.state = EnumSlbRealServerState.enabled
server_configurator.deploy(server_params)

OR the configuration manager:

from radware.sdk.configurator import DeviceConfigurator, DeviceConfigurationManager
from radware.alteon.sdk.configurators.ssl_key import SSLKeyConfigurator

ssl_key_configurator = SSLKeyConfigurator(**alteon_client_params)
cfg_mng = DeviceConfigurationManager()
result = cfg_mng.execute(ssl_key_configurator, DeviceConfigurator.READ_ALL, None, passphrase=passphrase)
print(result.content_translate)

further details & doc will be added later

Installation

pip install alteon-sdk

Design Principles

  • 46 configurators: some indexed & others are a summary
  • management functions for facts collection, carry out operation tasks and manage device configuration
  • Alteon direct device API
  • Alteon client: aggregate all configuration & management modules along with device API
  • Bean package complied from MIB (auto generated)
  • Each configurator is standalone and can be initiate for an AdcConnection
  • Abstraction <-> beans automatic attributes binding + specific processing when needed
  • Abstraction <-> Alteon configuration bi-direction translation (deploy from abstract , read alteon config into abstract)
  • Define dry_run delete procedure for "special configurators": relevant for when there is no delete procedure, mostly for global configuration
  • Identify duplicate entries within a structure

Authors

Alteon SDK was created by Leon Meguira

Copyright

Copyright 2019 Radware LTD

License

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

alteon-sdk-0.8b6.tar.gz (185.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

alteon_sdk-0.8b6-py2.py3-none-any.whl (432.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file alteon-sdk-0.8b6.tar.gz.

File metadata

  • Download URL: alteon-sdk-0.8b6.tar.gz
  • Upload date:
  • Size: 185.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/59.6.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.6.9

File hashes

Hashes for alteon-sdk-0.8b6.tar.gz
Algorithm Hash digest
SHA256 3f5db3b0520de3e3bcb6f6daa2d4ce14a25be19bec15641d65b0c0cf71bdf092
MD5 47ce4380ee8bd5b8e5528fc579fb5a58
BLAKE2b-256 48f9dc36f3575cd57897817a8ee99f645c02c801be0a3c80144fecf9ed4c8d23

See more details on using hashes here.

File details

Details for the file alteon_sdk-0.8b6-py2.py3-none-any.whl.

File metadata

  • Download URL: alteon_sdk-0.8b6-py2.py3-none-any.whl
  • Upload date:
  • Size: 432.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/59.6.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.6.9

File hashes

Hashes for alteon_sdk-0.8b6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 84d039099a00316a31436e7c8333bb45c748c557a772cb5300e5560f7b17ddb4
MD5 f12a1f5d8d9a992676f6e9ce686617cb
BLAKE2b-256 6f3337f1968a15d35f6f2b73c6b6645b06cd4b6e6d568cbfe2072ed71723fd4e

See more details on using hashes here.

Supported by

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