Перейти к содержанию

JSON RPC

Module description

IPAM - a subsystem that manages and stores information about networks, ip, OFC and ACLs on the cluster

Operations

Delete IPAM params

Context model: Params

Request data

{
    "context": {
        "op": "param_del"
    }
}

Add IPAM params

Context model: Params

Request data

{
    "context": {
        "op": "param_add"
    },
    "data": {
        "mac_prefix": "<mac_prefix>",
        "ipv6_group": "<ipv6_group>",
        "allocated_vlans": "<allocated_vlans>",
        "reserved_vlans": "<reserved_vlans>",
        "reserved_v4_nets": "<reserved_v4_nets>",
        "mtu": "<mtu>",
        "bridge": "<bridge>",
        "vtep_if": "<vtep_if>",
        "vxlan_vid_range": "<vxlan_vid_range>"
    }
}

Description

mac_prefix [ netmac * required ] - List of MACs

ipv6_group [ netv6gp ] - IPv6 group

allocated_vlans [ netvlanrange * required ] - List of allocated vlans

reserved_vlans [ netvlanrange * required ] - List of reserved vlans

reserved_v4_nets [ ipv4network * ] - List of reserved ipv4 /24 networks

mtu [ netmtu ] - MTU size

bridge [ required ] - Bridge interface

vtep_if [ ] - VTEP interface name

vxlan_vid_range [ netvlanrange * ] - List of allocated vlans for VxLAN networks

Show IPAM params

Context model: Params

Request data

{
    "context": {
        "op": "param_show"
    }
}

Update IPAM params

Context model: Params

Request data

{
    "context": {
        "op": "param_update"
    },
    "data": {
        "mac_prefix": "<mac_prefix>",
        "ipv6_group": "<ipv6_group>",
        "allocated_vlans": "<allocated_vlans>",
        "reserved_vlans": "<reserved_vlans>",
        "reserved_v4_nets": "<reserved_v4_nets>",
        "v4_gw": "<v4_gw>",
        "mtu": "<mtu>",
        "bridge": "<bridge>",
        "vtep_if": "<vtep_if>",
        "vxlan_vid_range": "<vxlan_vid_range>"
    }
}

Description

mac_prefix [ netmac * ] - List of MACs

ipv6_group [ netv6gp ] - IPv6 group

allocated_vlans [ netvlanrange * ] - List of allocated vlans

reserved_vlans [ netvlanrange * ] - List of reserved vlans

reserved_v4_nets [ ipv4network * ] - List of reserved ipv4 /24 networks

v4_gw [ ipv4addr ] - IPv4 network gateway address

mtu [ netmtu ] - MTU size

bridge [ ] - Bridge interface

vtep_if [ ] - VTEP interface name

vxlan_vid_range [ netvlanrange * ] - List of allocated vlans for VxLAN networks

Delete IPAM network

Context model: Networks

Request data

{
    "context": {
        "op": "network_del"
    },
    "data": {
        "net_uuid": "<net_uuid>"
    }
}

Description

net_uuid [ required ] - Network UUID

Add IPAM network

Context model: Networks

Request data

{
    "context": {
        "op": "network_add"
    },
    "data": {
        "name": "<name>",
        "ns": "<ns>",
        "ipv": "<ipv>",
        "vlan": "<vlan>",
        "mtu": "<mtu>",
        "v4_net": "<v4_net>",
        "v4_pref": "<v4_pref>",
        "v4_mask": "<v4_mask>",
        "v4_start": "<v4_start>",
        "v4_end": "<v4_end>",
        "v4_gw": "<v4_gw>",
        "v4_dns1": "<v4_dns1>",
        "v4_dns2": "<v4_dns2>",
        "v6_dns1": "<v6_dns1>",
        "v6_dns2": "<v6_dns2>",
        "v6_np": "<v6_np>",
        "v6_gw": "<v6_gw>",
        "descr": "<descr>"
    }
}

Description

name [ required ] - Network name

ns [ ] - Target namespace

ipv [ required ] - Network IP version ['4', '6']

vlan [ int required ] - Vlan id

mtu [ netmtu ] - MTU size

v4_net [ ipv4addr required ] - IPv4 network

v4_pref [ int ] - IPv4 network prefix

v4_mask [ ] - IPv4 network mask

v4_start [ ipv4addr ] - IPv4 network start address

v4_end [ ipv4addr ] - IPv4 network end address

v4_gw [ ipv4addr ] - IPv4 network gateway address

v4_dns1 [ ipv4addr ] - IPv4 dns

v4_dns2 [ ipv4addr ] - IPv4 dns

v6_dns1 [ ] - IPv6 dns

v6_dns2 [ ] - IPv6 dns

v6_np [ netv6np ] - IPv6 network np

v6_gw [ ] - IPv6 network gateway address

descr [ ] - Description

Show IPAM network

Context model: Networks

Request data

{
    "context": {
        "op": "network_show"
    },
    "data": {
        "net_uuid": "<net_uuid>",
        "show_acl": "<show_acl>"
    }
}

Description

net_uuid [ required ] - Network UUID

show_acl [ ] - should show acls

Update IPAM VLAN or VxLAN

Context model: Networks

Request data

{
    "context": {
        "op": "network_update"
    },
    "data": {
        "net_uuid": "<net_uuid>",
        "name": "<name>",
        "ns": "<ns>",
        "mtu": "<mtu>",
        "v4_gw": "<v4_gw>",
        "v6_gw": "<v6_gw>",
        "descr": "<descr>",
        "v4_start": "<v4_start>",
        "v4_end": "<v4_end>",
        "v4_dns1": "<v4_dns1>",
        "v4_dns2": "<v4_dns2>"
    }
}

Description

net_uuid [ required ] - Network UUID

name [ ] - Network name

ns [ ] - Target namespace

mtu [ netmtu ] - MTU size

v4_gw [ ipv4addr ] - IPv4 network gateway address

v6_gw [ ] - IPv6 network gateway address

descr [ ] - Description

v4_start [ ipv4addr ] - IPv4 network start address

v4_end [ ipv4addr ] - IPv4 network end address

v4_dns1 [ ipv4addr ] - IPv4 dns

v4_dns2 [ ipv4addr ] - IPv4 dns

List IPAM VLANs or VxLANs

Context model: Networks

Request data

{
    "context": {
        "op": "network_list"
    },
    "data": {
        "show_acl": "<show_acl>"
    }
}

Description

show_acl [ ] - should show acls

Add virtual ip

Context model: Addrs

Request data

{
    "context": {
        "op": "addr_virtual_add"
    },
    "data": {
        "net_uuid": "<net_uuid>",
        "ip": "<ip>"
    }
}

Description

net_uuid [ required ] - Network UUID

ip [ required ] - Virtual IP

List virtual ip

Context model: Addrs

Request data

{
    "context": {
        "op": "addr_virtual_list"
    },
    "data": {
        "net_uuid": "<net_uuid>"
    }
}

Description

net_uuid [ required ] - Network UUID

test technical cmd

Context model: Addrs

Request data

{
    "context": {
        "op": "addr_free_list"
    },
    "data": {
        "uuid": "<uuid>",
        "full_output": "<full_output>"
    }
}

Description

uuid [ required ] - net_uuid or subnet_uuid

full_output [ ] - {{ no such element: dict object['desc'] }}

Del virtual ip

Context model: Addrs

Request data

{
    "context": {
        "op": "addr_virtual_del"
    },
    "data": {
        "net_uuid": "<net_uuid>",
        "ip": "<ip>"
    }
}

Description

net_uuid [ required ] - Network UUID

ip [ required ] - Virtual IP

List allocated ip in vnet

Context model: Addrs

Request data

{
    "context": {
        "op": "addr_allocated_list"
    },
    "data": {
        "uuid": "<uuid>"
    }
}

Description

uuid [ required ] - net_uuid or subnet_uuid

Del ACL rule

Context model: ACLs

Request data

{
    "context": {
        "op": "acl_del"
    },
    "data": {
        "name": "<name>"
    }
}

Description

name [ required ] - ACL name

Add ACLs rules

Context model: ACLs

Request data

{
    "context": {
        "op": "acl_add"
    },
    "data": {
        "data": "<data>"
    }
}

Description

data [ jsonstr required ] - ACLs rules as JSON string

List ACLs rules

Context model: ACLs

Request data

{
    "context": {
        "op": "acl_list"
    }
}

Show ACLs rules

Context model: ACLs

Request data

{
    "context": {
        "op": "acl_show"
    },
    "data": {
        "name": "<name>"
    }
}

Description

name [ required ] - ACL name

Update ACLs rules

Context model: ACLs

Request data

{
    "context": {
        "op": "acl_update"
    },
    "data": {
        "name": "<name>",
        "data": "<data>"
    }
}

Description

name [ required ] - ACL name

data [ jsonstr required ] - ACLs rules as JSON string

Add ACLs to network

Context model: ACLs

Request data

{
    "context": {
        "op": "network_acls_add"
    },
    "data": {
        "net_uuid": "<net_uuid>",
        "acls": "<acls>"
    }
}

Description

net_uuid [ required ] - {{ no such element: dict object['desc'] }}

acls [ * required ] - List of ACLs names

Delete ACLs from network

Context model: ACLs

Request data

{
    "context": {
        "op": "network_acls_del"
    },
    "data": {
        "net_uuid": "<net_uuid>",
        "acls": "<acls>"
    }
}

Description

net_uuid [ required ] - Network UUID

acls [ * required ] - List of ACLs names

Add ACLs to iface

Context model: ACLs

Request data

{
    "context": {
        "op": "iface_acls_add"
    },
    "data": {
        "net_uuid": "<net_uuid>",
        "mac": "<mac>",
        "acls": "<acls>"
    }
}

Description

net_uuid [ required ] - Network UUID

mac [ required ] - Iface MAC address

acls [ * required ] - List of ACLs names

Delete ACLs from iface

Context model: ACLs

Request data

{
    "context": {
        "op": "iface_acls_del"
    },
    "data": {
        "net_uuid": "<net_uuid>",
        "mac": "<mac>",
        "acls": "<acls>"
    }
}

Description

net_uuid [ required ] - Network UUID

mac [ required ] - Iface MAC address

acls [ * required ] - List of ACLs names

Define VxLAN network

Request data

{
    "context": {
        "op": "vxlan_network_add"
    },
    "data": {
        "name": "<name>",
        "ns": "<ns>",
        "descr": "<descr>"
    }
}

Description

name [ str required ] - VxLAN network name

ns [ str ] - VxLAN target namespace

descr [ str ] - VxLAN network description

List all cluster VxLAN networks

Request data

{
    "context": {
        "op": "vxlan_network_list"
    }
}

Update VxLAN network

Request data

{
    "context": {
        "op": "vxlan_network_update"
    },
    "data": {
        "vxlan_uuid": "<vxlan_uuid>",
        "name": "<name>",
        "ns": "<ns>",
        "descr": "<descr>"
    }
}

Description

vxlan_uuid [ str required ] - VxLAN UUID

name [ str ] - VxLAN network name

ns [ str ] - VxLAN target namespace

descr [ str ] - VxLAN network description

Delete VxLAN network

Request data

{
    "context": {
        "op": "vxlan_network_del"
    },
    "data": {
        "vxlan_uuid": "<vxlan_uuid>"
    }
}

Description

vxlan_uuid [ str required ] - VxLAN UUID

Create VxLAN subnet

Request data

{
    "context": {
        "op": "vxlan_subnet_add"
    },
    "data": {
        "name": "<name>",
        "vxlan_uuid": "<vxlan_uuid>",
        "network": "<network>",
        "ip_first": "<ip_first>",
        "ip_last": "<ip_last>",
        "gateway": "<gateway>",
        "dns_1": "<dns_1>",
        "dns_2": "<dns_2>",
        "desc": "<desc>"
    }
}

Description

name [ str required ] - network name

vxlan_uuid [ str required ] - parent VxLAN UUID

network [ ipv4network required ] - network address

ip_first [ ipv4addr required ] - network ip range start

ip_last [ ipv4addr required ] - network ip range end

gateway [ ipv4addr ] - default gateway address

dns_1 [ ipv4addr ] - dns1 server address

dns_2 [ ipv4addr ] - dns2 server address

desc [ str ] - network description

Update VxLAN subnet

Request data

{
    "context": {
        "op": "vxlan_subnet_update"
    },
    "data": {
        "subnet_uuid": "<subnet_uuid>",
        "name": "<name>",
        "ip_first": "<ip_first>",
        "ip_last": "<ip_last>",
        "gateway": "<gateway>",
        "dns_1": "<dns_1>",
        "dns_2": "<dns_2>",
        "descr": "<descr>"
    }
}

Description

subnet_uuid [ str required ] - subnet UUID

name [ str ] - network name

ip_first [ ipv4addr ] - network ip range start

ip_last [ ipv4addr ] - network ip range end

gateway [ ipv4addr ] - default gateway address

dns_1 [ ipv4addr ] - dns1 server address

dns_2 [ ipv4addr ] - dns2 server address

descr [ str ] - network description

Show VxLAN subnet

Request data

{
    "context": {
        "op": "vxlan_subnet_show"
    },
    "data": {
        "subnet_uuid": "<subnet_uuid>"
    }
}

Description

subnet_uuid [ str required ] - subnet UUID

List VxLAN subnets

Request data

{
    "context": {
        "op": "vxlan_subnet_list"
    },
    "data": {
        "vxlan_uuid": "<vxlan_uuid>"
    }
}

Description

vxlan_uuid [ str ] - parent VxLAN UUID

Delete VxLAN subnet

Request data

{
    "context": {
        "op": "vxlan_subnet_del"
    },
    "data": {
        "subnet_uuid": "<subnet_uuid>"
    }
}

Description

subnet_uuid [ str required ] - subnet UUID

List network interfaces

Request data

{
    "context": {
        "op": "iface_list"
    },
    "data": {
        "net_uuid": "<net_uuid>",
        "vxlan_uuid": "<vxlan_uuid>",
        "show_acl": "<show_acl>"
    }
}

Description

net_uuid [ str ] - Network UUID

vxlan_uuid [ str ] - VxLAN UUID

show_acl [ str ] - Show ACL rules for interface y/n

Update existing VM network interface

Request data

{
    "context": {
        "op": "iface_update"
    },
    "data": {
        "iface_id": "<iface_id>",
        "ip_address": "<ip_address>"
    }
}

Description

iface_id [ str required ] - Interface UUID

ip_address [ ipv4addr required ] - New IP address for interface

Models

Params

mac_prefix [ netmac * required ] - List of MACs

ipv6_group [ netv6gp ] - IPv6 group

allocated_vlans [ netvlanrange * ] - List of allocated vlans

reserved_vlans [ netvlanrange * ] - List of reserved vlans

reserved_v4_nets [ ipv4network * ] - List of reserved ipv4 /24 networks

reserved_v6_np [ netv6np * ] - List of reserved ipv6 np

bridge [ required ] - Bridge interface

mtu [ netmtu ] - MTU size

Networks

net_uuid [ required ] - Network UUID

name [ required ] - Network name

ns [ ] - Target namespace

net_type [ required ] - Network type ['vlan', 'vxlan']

ipv [ required ] - Network IP version ['4', '6']

vxlan_vni [ int ] - Vxlan vni

vlan [ int required ] - Vlan id

mtu [ netmtu ] - MTU size

v4_net [ ipv4addr required ] - IPv4 network

v4_pref [ int ] - IPv4 network prefix

v4_mask [ ] - IPv4 network mask

v4_start [ ipv4addr ] - IPv4 network start address

v4_end [ ipv4addr ] - IPv4 network end address

v4_gw [ ipv4addr ] - IPv4 network gateway address

v6_np [ netv6np ] - IPv6 network np

v6_gw [ ] - IPv6 network gateway address

descr [ ] - Description

v4_dns1 [ ipv4addr ] - IPv4 dns

v4_dns2 [ ipv4addr ] - IPv4 dns

v6_dns1 [ ] - IPv6 dns

v6_dns2 [ ] - IPv6 dns

show_acl [ ] - should show acls

Ifaces

vm_uuid [ required ] - VM uuid

ipv [ int required ] - Network IPV [4, 6]

mac [ required ] - Iface MAC

show_acl [ ] - show acls attached to iface

Addrs

ipv [ int required ] - Network IPV [4, 6]

ip [ required ] - Virtual IP

uuid [ required ] - VM uuid

ACLs

name [ required ] - ACL name

data [ jsonstr required ] - ACLs rules as JSON string