Description

This article shows a configuration example for creating a Virtual Network (VN) using library API.

Solution

In the example below, the VN to be created is named "VN-C", with a single subnet of 30.30.0.0/24, in project "demo". The Contrail version is 3.2.13.0.

  1. Import the  vnc_api module from vnc_api package and provide the authentication information from within python interactive shell. The  vnc_api module is used to interact with the Contrail configuration API server.

    #python
    from vnc_api import vnc_api  
    vnc_lib = vnc_api.VncApi(api_server_host='10.85.189.228', auth_host = '10.85.189.228', username = 'admin', password = 'Juniper', tenant_name = 'demo')
  2. Then the project "demo" is referred and used as an input to the VN object. The specific NetworkIpam with the desired subnet information is also created and attached to the VN object.

    prj = vnc_lib.project_read(fq_name=['default-domain', 'demo'])
    VN_C_obj = vnc_api.VirtualNetwork('VN-C',prj)
    VN_C_obj.add_network_ipam(vnc_api.NetworkIpam(), vnc_api.VnSubnetsType([vnc_api.IpamSubnetType(subnet = vnc_api.SubnetType('30.30.0.0', 24))]))

  3. The last step is to create "VN_C" with the specific VN object. The output will be the UUID assigned to "VN_C".

    vnc_lib.virtual_network_create(VN_C_obj) u'f6bd92fb-ace1-4de9-a34a-d5e991cc5df2'


Verification of VN-C creation:

root@aio32:~# neutron net-show f6bd92fb-ace1-4de9-a34a-d5e991cc5df2

+-------------------------+--------------------------------------+
| Field                   | Value                                |
+-------------------------+--------------------------------------+
| admin_state_up          | True                                 |
| contrail:fq_name        | default-domain                       |
|                         | demo                                 |
|                         | VN-C                                 |
| contrail:instance_count | 0                                    |
| contrail:subnet_ipam    | {"subnet_cidr": "30.30.0.0/24",      | 
|                         |  "ipam_fq_name": ["default-domain",  | 
|                         |  "default-project",                  |
|                         |  "default-network-ipam"]}            |
| id                      | f6bd92fb-ace1-4de9-a34a-d5e991cc5df2 |
| name                    | VN-C                                 |
| port_security_enabled   | True                                 |
| router:external         | False                                |
| shared                  | False                                |
| status                  | ACTIVE                               |
| subnets                 | 138fd8c2-e394-4612-bb02-9f5514b3c1b5 |
| tenant_id               | 9e4232ef20534bdeb07134b094351f0f     |
+-------------------------+--------------------------------------+