python-esiclient extends the OpenStack CLI to provide simplified user workflows, encapsulating multiple OpenStack CLI commands into a single CLI command.
To install as a package:
pip install python-esiclient
To install from source:
- clone this repository
- install all requirements:
pip install -r requirements.txt - install:
python setup.py install
These commands manage network connections to nodes.
List node/network attachments.
openstack esi node network list
[--node <node>]
[--network <network>]
--node <node>: Filter by node (name or UUID)--network <network>: Filter by network (name or UUID)
Attach network to a node.
openstack esi node network attach
(--network <network> | --port <port> | --trunk <trunk>)
[--mac-address <mac-address>]
<node>
--network <network>: Network (name or UUID)--port <port>: Neutron port (name or UUID)--trunk <trunk>: Neutron trunk (name or UUID)--mac-address <mac-address>: Node MAC address to attach the network to.node: Node (name or UUID)
Detach network from a node.
openstack esi node network detach
<node>
<port>
node: Node (name or UUID)port: Port (name or UUID)
These commands manage trunk ports.
List trunk ports.
openstack esi trunk list
Create a trunk port.
openstack esi trunk create
[--native-network <native-network>]
[--tagged-networks <tagged-network>]
<name>
--native-network <native-network>: Native network (name or UUID)--tagged-networks <tagged-network>: Tagged network (name or UUID); can specify multiplename: Name of the trunk port
Add a network to a trunk port.
openstack esi trunk add network
[--tagged-networks <tagged-network>]
<name>
--tagged-networks <tagged-network>: Tagged network (name or UUID); can specify multiplename: Name of the trunk port
Remove a network from a trunk port.
openstack esi trunk remove network
[--tagged-networks <tagged-network>]
<name>
--tagged-networks <tagged-network>: Tagged network (name or UUID); can specify multiplename: Name of the trunk port
Delete a trunk port.
openstack esi trunk delete
<name>
name: Name of the trunk port
Boot a node with a volume
openstack esi node volume attach
(--network <network> | --port <port>)
[--mac-address <mac-address>]
<node> <volume>
--network <network>: Network (name or UUID)--port <port>: Neutron port (name or UUID)node: Node (name or UUID)volume: Volume (name or UUID)
These commands allow you to treat ESI as a switch.
List VLANs and associated switch ports on a switch.
openstack esi switch vlan list <switch>
switch: Switch
List switch ports and associated VLANs on a switch.
openstack esi switch port list <switch>
switch: Switch
Attach VLAN to a switchport on a switch.
openstack esi switch port enable access
<switch>
<switchport>
<vlan>
switch: Switchswitchport: Switchportvlan: VLAN
Disable VLAN access to a switchport on a switch.
openstack esi switch port disable access
<switch>
<switchport>
switch: Switchswitchport: Switchport
Attach VLAN to a switchport as the native VLAN of a trunk on a switch.
openstack esi switch port enable trunk
<switch>
<switchport>
<vlan>
switch: Switchswitchport: Switchportvlan: VLAN
Disable trunk on a switchport on a switch.
openstack esi switch port disable trunk
<switch>
<switchport>
switch: Switchswitchport: Switchport
Add VLAN to a trunk on a switchport.
openstack esi switch trunk add vlan
<switch>
<switchport>
<vlan>
switch: Switchswitchport: Switchportvlan: VLAN
Remove VLAN from a trunk on a switchport.
openstack esi switch trunk remove vlan
<switch>
<switchport>
<vlan>
switch: Switchswitchport: Switchportvlan: VLAN