NAME

Brocade::BSC - Configure and query the Brocade SDN controller.

VERSION

Version 1.0.1

DESCRIPTION

A Brocade::BSC object is used to model, query, and configure Brocade's OpenDaylight-based Software-Defined Networking controller.

Most API methods return a duple: a Brocade::BSC::Status object, and a reference to a data structure with the requested information. Status should always be verified before attempting to dereference the second return value.

METHODS

new

Creates a new Brocade::BSC object and populates fields with values from argument hash, if present, or YAML configuration file.

### parameters:
#   + cfgfile       - path to YAML configuration file specifying controller attributes
#   + ipAddr        - IP address of controller
#   + portNum       - TCP port for controller's REST interface
#   + adminName     - username
#   + adminPassword - password
#   + timeout       - for HTTP requests, in seconds
#
### YAML configuration file labels and default values
#
#   parameter hash | YAML label  | default value
#   -------------- | ----------- | -------------
#   ipAddr         | ctrlIpAddr  | 127.0.0.1
#   portNum        | ctrlPortNum | 8181
#   adminName      | ctrlUname   | admin
#   adminPassword  | ctrlPswd    | admin
#   timeout        | timeout     | 5

Returns new Brocade::BSC object.

as_json
# Returns pretty-printed JSON string representing BSC object.
get_nodes_operational_list
# Returns   : BSC::Status
#           : reference to an array of node names
get_node_info
# Parameter : node name (string, required)
# Returns   : BSC::Status
#           : array reference containing node info
check_node_config_status
# Parameter : node name (string, required)
# Returns   : BSC::Status - NODE_CONFIGURED or NODE_NOT_FOUND
check_node_conn_status
# Parameter : node name (string, required)
# Returns   : BSC::Status - NODE_CONNECTED or NODE_DISCONNECTED
get_all_nodes_in_config
# Returns   : BSC::Status
#           : array reference - list of node identifiers
get_all_nodes_conn_status
# Returns   : BSC::Status
#           : reference to array of hashes:
#             { id        => nodename,
#               connected => boolean }
get_netconf_nodes_in_config
# Returns   : BSC::Status
#           : array reference - list of node identifiers
get_all_nodes_conn_status
# Returns   : BSC::Status
#           : reference to array of hashes:
#             { id        => nodename,
#               connected => boolean }
get_schemas
# Parameters: node name (string, required)
# Returns   : BSC::Status
#           : array reference - supported schemas on node
get_schema
# Parameters: node name
#           : YANG schema ID
#           : YANG schema version
# Returns   : BSC::Status
#           : requested YANG schema as formatted JSON
get_netconf_operations
# Parameters: node name
# Returns   : BSC::Status
#           : hash reference - operations supported by specified node
get_all_modules_operational_state
# Returns   : BSC::Status
#           : array reference - hashes of module state
get_module_operational_state
# Parameter : module type
#           : module name
# Returns   : BSC::Status
#           : array reference - hash of module state
get_sessions_info
# Parameters: node name
# Returns   : BSC::Status
#           : hash reference - session listing on specified node
get_streams_info
# Parameters:
# Returns   : BSC::Status
#           : hash reference - streams info
get_service_providers_info
# Parameters:
# Returns   : BSC::Status
#           : array reference ~ name/provider pairs
get_service_provider_info
# Parameters: node name
# Returns   : BSC::Status
#           : array reference ~ name/provider pairs
add_netconf_node

Add a mount point on controller for specified node.

# Parameters: node name
# Returns   : BSC::Status
delete_netconf_node
# Parameters: node name
# Returns   : BSC::Status
#           :
get_ext_mount_config_urlpath
# Parameters: node name
# Returns   : base restconf URL for configuration of mounted netconf node
get_ext_mount_operational_urlpath
# Parameters: node name
# Returns   : base restconf URL for operational status of mounted netconf node
get_node_operational_urlpath
# Parameters: node name
# Returns   : base restconf URL for node, operational status
get_node_config_urlpath
# Parameters: node name
# Returns   : base restconf URL for node, configuration
get_openflow_nodes_operational_list
# Returns   : BSC::Status
#           : array reference - node names

AUTHOR

laird pruiksma, <pruiklw at cpan.org>

BUGS

Please report any bugs or feature requests to bug-brocade-bsc at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Brocade-BSC. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Brocade::BSC

You can also look for information at:

ACKNOWLEDGEMENTS

Brocade::BSC is entirely based on pybvc created by Sergei Garbuzov.

LICENCE AND COPYRIGHT

Copyright (c) 2015, BROCADE COMMUNICATIONS SYSTEMS, INC

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.