7.3. SteelScript SteelHead Sources

The SteelHead package offers a set of interfaces to control and work with a SteelHead appliance.

7.3.1. CLIAuth Objects

class steelscript.steelhead.core.steelhead.CLIAuth(username, password)

This class is used for username/password based authentication for command-line access.

7.3.2. SteelHead Objects

class steelscript.steelhead.core.steelhead.SteelHead(host, auth=None)

The SteelHead class if the main interface to interact with a SteelHead appliance.

cli

Grabs a cached CLI object, opening a new one if none exists.

7.3.3. CommonModel Objects

Returned by Model.get(steelhead_instance, feature='common').

class steelscript.steelhead.features.common.v8_5.model.CommonModel(resource, cli=None, **kwargs)

Kauai model for the ‘common’ REST Service on the SteelHead product.

show_version()

Returns parsed output of ‘show version’.

Product name: rbt_sh Product release: 9.0.1 Build ID: #19 Build date: 2014-11-19 01:59:36 Build arch: x86_64 Built by: mockbuild@bannow-worker4

Uptime: 15d 23h 22m 33s

Product model: CX1555 System memory: 6378 MB used / 1552 MB free / 7931 MB total Number of CPUs: 4 CPU load averages: 0.08 / 0.17 / 0.10

Returns:Dictionaries of values returned {‘product name’: ‘rbt_sh’,
‘product release’: ‘9.0.1’, ‘build id’: ‘#19’, ‘build arch’: ‘x86_64’, ...

7.3.4. CLI (CommonAction) Objects

Returned by Action.get(steelhead_instance, feature='common').

class steelscript.steelhead.features.common.v8_5.action.CLI(resource, service=None, feature=None)

CLI-based Actions for the ‘common’ REST Service on the SteelHead product.

get_product_info()

Gets basic software and hardware product information.

Returns:Dictionary of values: {‘name’: ‘SteelHead’,
‘model’: ‘CX1555’, ‘release’: ‘9.0.1’}

7.3.5. FlowsModel Objects

Returned by Model.get(steelhead_instance, feature='flows').

class steelscript.steelhead.features.flows.v8_5.model.FlowsModel(resource, cli=None, **kwargs)

Kauai Flows model for the SteelHead product

show_flows(type=u'all')

Method to show Flows on a SteelHead. Currently, some flow types are not supported and will not be included in the output. These types are IPv6 and pre_existing connections.

Parameters:type (string) – Optional parameter to select the type of Flows. Valid choices include all, optimized, passthrough, packet-mode, and tcp-term.
Returns:dictionary { ‘flows_list’: [
{‘app’: ‘UDPv4’, ‘destination ip’: IPv4Address(u‘10.190.5.2’), ‘destination port’: 1003, ‘reduction’: 99, ‘since’: {‘day’: ‘10’,
‘hour’: ‘23’, ‘min’: ‘58’, ‘month’: ‘02’, ‘secs’: ‘01’, ‘year’: ‘2014’},

‘source ip’: IPv4Address(u‘10.190.0.1’), ‘source port’: 406, ‘type’: ‘N’},...],

‘flows_summary’: {
‘denied’: {‘all’: 1}, ‘discarded’: {‘all’: 1}, ‘establishing’: {‘all’: 1, ‘v4’: 2, ‘v6’: 3}, ‘forwarded’: {‘all’: 1, ‘v4’: 2, ‘v6’: 3}, ‘half_closed optimized’: {‘all’: 11, ‘v4’: 22, ‘v6’: 33}, ‘half_opened optimized’: {‘all’: 1, ‘v4’: 2, ‘v6’: 3}, ‘optimized’: {‘all’: ‘1’, ‘v4’: 2, ‘v6’: 3}, ‘packet_mode optimized’: {‘all’: 11, ‘v4’: 22, ‘v6’: 33}, ‘passthrough’: {‘all’: 11, ‘v4’: 22, ‘v6’: 33}, ‘passthrough intentional’: {‘all’: 1, ‘v4’: 2, ‘v6’: 3}, ‘passthrough unintentional’:
{‘all’: 11, ‘v4’: 22, ‘v6’: 33},
‘passthrough unintentional packet_mode’:
{‘all’: 11, ‘v4’: 22, ‘v6’: 33},
‘passthrough unintentional terminated’:
{‘all’: 1, ‘v4’: 2, ‘v6’: 3},

‘rios only’: {‘all’: 1, ‘v4’: 3, ‘v6’: 3}, ‘rios scps’: {‘all’: 1, ‘v4’: 2, ‘v6’: 3}, ‘scps only’: {‘all’: 11, ‘v4’: 22, ‘v6’: 33}, ‘tcp proxy’: {‘all’: 1, ‘v4’: 2, ‘v6’: 3}, ‘total’: {‘all’: 1, ‘v4’: 2, ‘v6’: 3}}

7.3.6. CLI (FlowsAction) Objects

Returned by Action.get(steelhead_instance, feature='flows').

class steelscript.steelhead.features.flows.v8_5.action.CLI(resource, service=None, feature=None)

Kauai Flows CLI Delegatee

show_flows_optimized()

Method to show optimized flows on a Steelhead

Returns:dictionary { ‘flows_list’: [
{‘app’: ‘UDPv4’,
‘destination ip’: IPv4Address(‘10.190.5.2’), ‘destination port’: 1003, ‘percent’: 99, ‘since’: {‘day’: ‘10’,
‘hour’: ‘23’,
‘min’: ‘58’, ‘month’: ‘02’, ‘secs’: ‘01’, ‘year’: ‘2014’},

‘source ip’: IPv4Address(‘10.190.0.1’), ‘source port’: 406, ‘type’: ‘N’},...],

‘flows_summary’: {
‘established optimized’: {‘all’: 1, ‘v4’: 2, ‘v6’: 3}, ‘packet_mode optimized’: {‘all’: 11, ‘v4’: 22, ‘v6’: 33}, ‘rios only’: {‘all’: 1, ‘v4’: 3, ‘v6’: 3}, ‘rios scps’: {‘all’: 1, ‘v4’: 2, ‘v6’: 3}, ‘scps only’: {‘all’: 11, ‘v4’: 22, ‘v6’: 33}, ‘tcp proxy’: {‘all’: 1, ‘v4’: 2, ‘v6’: 3}, ‘total’: {‘all’: 11’, v4: 40, ‘v6’: 70}}}
show_flows_passthrough()

Method to show passthrough flows on a Steelhead

Returns:dictionary { ‘flows_list’: [
{‘app’: ‘TCP’,
‘destination ip’: IPv4Address(‘10.190.174.120’), ‘destination port’: 443, ‘since’: {‘day’: ‘02’,
‘hour’: ‘06’, ‘min’: ‘00’, ‘month’: ‘01’, ‘secs’: ‘50’, ‘year’: ‘2014’},

‘source ip’: IPv4Address(‘10.3.2.54’), ‘source port’: 40097, ‘type’: ‘PI’}...],

‘flows_summary’: {
‘forwarded’: {‘all’: 1, ‘v4’: 2, ‘v6’: 3}, ‘passthrough’: {‘all’: 11, ‘v4’: 22, ‘v6’: 33}, ‘passthrough intentional’: {‘all’: 1, ‘v4’: 2, ‘v6’: 3}, ‘passthrough unintentional’: {‘all’: 11, ‘v4’: 22, ‘v6’: 33}, ‘passthrough unintentional packet_mode’: {‘all’: 11,
‘v4’: 22, ‘v6’: 33},
‘passthrough unintentional terminated’: {‘all’: 1,
‘v4’: 2, ‘v6’: 3},

‘total’: {‘all’: 11, ‘v4’: 40, ‘v6’: 70}}}

7.3.7. NetworkingModel Objects

Returned by Model.get(steelhead_instance, feature='networking').

class steelscript.steelhead.features.networking.v8_5.model.NetworkingModel(resource, cli=None, **kwargs)

Kauai Networking model for the SteelHead product

show_interfaces(interface=None, brief=False)

Return parsed output of ‘show interfaces <interface> [brief]’

Interface inpath0_0 state Up: yes Interface type: ethernet IP address: 10.11.100.2 Netmask: 255.255.255.0 IPv6 link-local address: fe80::5054:ff:fe10:3fe9/64 MTU: 1500 HW address: 52:54:00:10:3F:E9 Traffic status: Normal HW blockable: no Counters cleared date: 2014/01/31 14:28:28
Parameters:
  • interface (string) – Optional. Return just this interface.
  • brief (boolean) – Whether to run just brief output.
Returns:

List of dictionaries of values returned {‘name’: ‘inpath0_0’,

‘ip address’: IPv4Interface(‘10.11.100.2/24’), ‘ipv6 address’: IPv6Interface(‘fe80::5054:ff:fe10:3fe9/64’), ‘hw address’: EUI(‘52-54-00-10-3F-E9’), ‘up’: True, ‘rx bytes’: 42, ...}

show_interfaces_configured(interface=None)

Return parsed output of ‘show interfaces <interface> configured’

Interface inpath0_0 state Enabled: yes DHCP: yes Dynamic DNS DHCP: yes DHCPv6: no Dynamic DNS DHCPv6: no IP address: 10.11.100.2 Netmask: 255.255.255.0 IPv6 address: Speed: auto Duplex: auto MTU: 1500
Parameters:interface (string) – Optional. Return just this interface.
Returns:List of dictionaries of values returned {‘name’: ‘inpath0_0’,
‘enabled’: True ‘dhcp’: True ip address’: IPv4Interface(‘10.11.100.2/24’), ‘ipv6 address’: IPv6Interface(‘fe80::5054:ff:fe10:3fe9/64’), ‘mtu’: 1500, ...}

7.3.8. StatsModel Objects

Returned by Model.get(steelhead_instance, feature='stats').

class steelscript.steelhead.features.stats.v8_5.model.StatsModel(resource, cli=None, **kwargs)

Kauai Stats model for the SteelHead product

show_stats_bandwidth(port=u'all', type=None, frequency=None)

Method to show Bandwidth Stats on a SteelHead

Parameters:
  • port (string) – Optional parameter to filter the bandwidth summary to traffic on a specific port. The value is simply the port number (e.g., “80”) and defaults to “all.”
  • type (string) – The type of traffic to summarize. Options include bi-directional, lan-to-wan, and wan-to-lan.
  • frequency – Last period of time to lookback during stats collection. Options include 1min, 5min, hour, day, week, or month.
Returns:

dictionary { ‘wan data’: ‘5.4 GB’, ‘lan data’: ‘6 GB’, ‘data reduction’: 10, ‘data reduction peak’: 95, ‘data reduction peak time’: ‘2014/12/05 14:50:00’, ‘capacity increase’: ‘1.1’}