Python client for the HNV (Hyper-V Network Virtualization) REST API
Go to file
Alexandru Coman a5ecb3c1c3 Merge pull request #2 from bclau/cookiecutter
Applies OpenStack project cookiecutter
2017-03-07 15:49:43 +02:00
doc Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00
etc/hnv Rename module from hnv_client to hnv 2017-02-06 15:38:22 +02:00
hnv Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00
releasenotes Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00
.coveragerc Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00
.gitignore Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00
.gitreview Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00
.mailmap Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00
.pylintrc Fix the refresh_model method 2017-02-16 14:29:32 +02:00
.testr.conf Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00
.travis.yml Update the Travis-CI jobs 2017-02-06 15:04:04 +02:00
CONTRIBUTING.rst Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00
HACKING.rst Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00
LICENSE Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00
MANIFEST.in Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00
README.rst Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00
babel.cfg Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00
requirements.txt Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00
setup.cfg Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00
setup.py Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00
test-requirements.txt Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00
tox.ini Applies OpenStack project cookiecutter 2017-03-07 15:42:40 +02:00

README.rst

python-hnvclient

[![Build Status](https://travis-ci.org/cloudbase/python-hnvclient.svg?branch=master)](https://travis-ci.org/cloudbase/python-hnvclient)

Python client for the HNV (Hyper-V Network Virtualization) REST API.

Features

The Python interface matches the underlying REST API and can be employed in 3rd party projects.

`python >>> from hnv import client >>> logical_networks = client.LogicalNetworks.get() >>> for logical_network in logical_networks: ... print(logical_network.resource_id) ... "63606911-e053-42cf-842e-29f67c90d5c6" "c4cd42ff-5efb-4006-ac56-479730557926" "cd804db3-df59-4f57-8a7d-11cc3f3c4d98" >>> logical_network = client.LogicalNetworks.get(resource_id="cd804db3-df59-4f57-8a7d-11cc3f3c4d98") >>> logical_network <hnv.client.LogicalNetworks object at 0x7fcd79419910> >>> logical_network.provisioning_state u'Succeeded' >>> logical_network.subnetworks [<hnv.client.LogicalSubnetworks object at 0x7fcd79419150>] >>> logical_network.subnetworks[0].resource_id u'4390e3d8-c527-4534-882f-906c47ffd0bb'`

or

`python from __future__ import print_function import json import sys from hnv import config from hnv import client def view_logical_networks(): """List all the available logical networks.""" logical_networks = client.LogicalNetworks.get() print("Logical networks:") for logical_network in logical_networks: print("\t - ", logical_network.resource_ref) print("\t\t", "Logical subnetworks:") for logical_subnetwork in logical_network.subnetworks: print("\t\t - %s (%s)" % (logical_subnetwork.resource_id, logical_subnetwork.address_prefix)) print("\t\t", "Virtual networks:") for virtual_network in logical_network.virtual_networks: print("\t\t - %s" % virtual_network.resource_ref) def create_virtual_network(): """Create a new virtual network on the first logical network.""" print("Creating a new virtual network.") address_space = client.AddressSpace( address_prefixes=["192.168.133.0/24"]) logical_network = client.Resource( resource_ref=client.LogicalNetworks.get()[0].resource_ref) virtual_network = client.VirtualNetworks( resource_id="hvn-test", address_space=address_space, logical_network=logical_network, ) virtual_network.commit() print("The raw content of the new Virtual Network") print(json.dumps(virtual_network.dump(), indent=4)) def remove_virtual_network(): """Remove the new virtual network.""" print("Remove the new virtual network") client.VirtualNetworks.remove(resource_id="hvn-test") def main(): """Logical networks sample entry point.""" config.CONFIG(sys.argv[1:]) view_logical_networks() create_virtual_network() view_logical_networks() remove_virtual_network() view_logical_networks()`