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

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>"
    }
}

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

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>"
    }
}

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

Delete IPAM network

Context model: Networks

Request data

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

Description

name [ required ] - Network name

Add IPAM network

Context model: Networks

Request data

{
    "context": {
        "op": "network_add"
    },
    "data": {
        "name": "<name>",
        "ns": "<ns>",
        "net_type": "<net_type>",
        "ipv": "<ipv>",
        "vxlan_vni": "<vxlan_vni>",
        "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

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

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": {
        "name": "<name>",
        "show_acl": "<show_acl>"
    }
}

Description

name [ required ] - Network name

show_acl [ ] - should show acls

Update IPAM network

Context model: Networks

Request data

{
    "context": {
        "op": "network_update"
    },
    "data": {
        "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

name [ required ] - 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 networks

Context model: Networks

Request data

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

Description

show_acl [ ] - should show acls

Add IPAM iface

Context model: Ifaces

Request data

{
    "context": {
        "op": "iface_add"
    },
    "data": {
        "vnet_name": "<vnet_name>",
        "vm_uuid": "<vm_uuid>"
    }
}

Description

vnet_name [ required ] - Network name

vm_uuid [ required ] - VM uuid

Del IPAM iface

Context model: Ifaces

Request data

{
    "context": {
        "op": "iface_del"
    },
    "data": {
        "vnet_name": "<vnet_name>",
        "mac": "<mac>"
    }
}

Description

vnet_name [ required ] - Network name

mac [ required ] - Iface MAC

List IPAM ifaces

Context model: Ifaces

Request data

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

Description

vnet_name [ required ] - Network name

show_acl [ ] - show acls attached to iface

Add virtual ip

Context model: Addrs

Request data

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

Description

vnet_name [ required ] - Network name

ip [ required ] - Virtual IP

List virtual ip

Context model: Addrs

Request data

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

Description

vnet_name [ required ] - Network name

List free ip in vnet

Context model: Addrs

Request data

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

Description

vnet_name [ required ] - Network name

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

Del virtual ip

Context model: Addrs

Request data

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

Description

vnet_name [ required ] - Network name

ip [ required ] - Virtual IP

List allocated ip in vnet

Context model: Addrs

Request data

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

Description

vnet_name [ required ] - Network name

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": {
        "vnet_name": "<vnet_name>",
        "acls": "<acls>"
    }
}

Description

vnet_name [ required ] - Network name

acls [ * required ] - List of ACLs names

Delete ACLs from network

Context model: ACLs

Request data

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

Description

vnet_name [ required ] - Network name

acls [ * required ] - List of ACLs names

Add ACLs to iface

Context model: ACLs

Request data

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

Description

vnet_name [ required ] - Network name

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": {
        "vnet_name": "<vnet_name>",
        "mac": "<mac>",
        "acls": "<acls>"
    }
}

Description

vnet_name [ required ] - Network name

mac [ required ] - Iface MAC address

acls [ * required ] - List of ACLs names

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

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

vnet_name [ required ] - Network name

vm_uuid [ required ] - VM uuid

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

mac [ required ] - Iface MAC

show_acl [ ] - show acls attached to iface

Addrs

vnet_name [ required ] - Network name

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