switchmng.schema package¶
Submodules¶
switchmng.schema.base module¶
switchmng.schema.base_resource module¶
-
class
switchmng.schema.base_resource.BaseResource(**kwargs)¶ Bases:
objectRepresents the base for all REST resources.
This class only provides the skeleton for other resources and cannot be instantiated. Every implementing class should overwrite _Attributes and ResourceIdentifier.
-
ResourceIdentifier= 'name'¶ Name of the attribute that is this resource’s identifier
-
classmethod
check_param(key, val)¶ Check given parameter.
Check if given parameter has the correct type and is a valid attribute for this resource.
These checks get executed when trying to assign a value to a resource attribute but can be called when needing to check parameters before making changes.
- Raises
TypeError – When type of given parameter does not match expectation
ValueError – When value of given parameter does not match expectation
- Return type
None
-
classmethod
check_params(**kwargs)¶ Check all given parameter.
Check if given parameters have the correct type and are valid attributes for this resource.
These checks get executed when trying to assign a value to a resource attribute but can be called when needing to check multiple parameters at once in order to prevent inconistent states.
- Raises
TypeError – When type of given parameter does not match expectation
ValueError – When value of given parameter does not match expectation
- Return type
None
-
jsonify()¶ Represent this resource as a json-ready dict.
That is a dict which completely consists of json-compatible structures like:
dict
list
string
int
bool
None / null
- Return type
Dict[str,Union[str,int,None,Dict[str,Any],List[Any],Dict[str,Union[str,int,None,Dict[str,Any],List[Any]]],List[Union[str,int,None,Dict[str,Any],List[Any]]]]]
-
switchmng.schema.connector module¶
-
class
switchmng.schema.connector.Connector(**kwargs)¶ Bases:
switchmng.schema.base_resource.BaseResource,sqlalchemy.ext.declarative.api.BaseRepresents a physical port connector.
This resource is uniquely identified by its name.
- Parameters
name (str) – Name uniquely identifying this port connector
-
ResourceIdentifier= 'name'¶ Name of the attribute that is this resource’s identifier
switchmng.schema.network_protocol module¶
-
class
switchmng.schema.network_protocol.NetworkProtocol(**kwargs)¶ Bases:
switchmng.schema.base_resource.BaseResource,sqlalchemy.ext.declarative.api.BaseRepresents a network protocol resource.
This resource is uniquely identified by its name.
- Parameters
name (str) – Name uniquely identifying this network protocol
speed (int) – Maximum possible speed of this network protocol in Mb/s
-
ResourceIdentifier= 'name'¶ Name of the attribute that is this resource’s identifier
switchmng.schema.port module¶
-
class
switchmng.schema.port.Port(**kwargs)¶ Bases:
switchmng.schema.base_resource.BaseResource,sqlalchemy.ext.declarative.api.BaseRepresents a port of a switch.
That is a concrete port of a concrete switch. This resource is uniquely identified by the switch (See
Switch) containing it in combination with its name.- Parameters
name (str) – The identifier of this port. Must be unique for the containing
Switch.vlans (list) – A list of vlans that are active on this port
target (str) – Host that is connected to this port
-
ResourceIdentifier= 'name'¶ Name of the attribute that is this resource’s identifier
switchmng.schema.port_model module¶
-
class
switchmng.schema.port_model.PortModel(**kwargs)¶ Bases:
switchmng.schema.base_resource.BaseResource,sqlalchemy.ext.declarative.api.BaseRepresents a port model resource.
This resource is uniquely identified by the switch model (See
SwitchModel) containing it in combination with its name.- Parameters
name (str) – The identifier of this port. Must be unique for the containing
SwitchModel.network_protocols (list) – List of possible network protocols of this port
connector (
Connector) – Physical connector of this port
-
ResourceIdentifier= 'name'¶ Name of the attribute that is this resource’s identifier
switchmng.schema.switch module¶
-
class
switchmng.schema.switch.Switch(**kwargs)¶ Bases:
switchmng.schema.base_resource.BaseResource,sqlalchemy.ext.declarative.api.BaseRepresents a switch resource.
This resource is uniquely identified by its name.
- Parameters
name (str) – Name uniquely identifying this switch
model (
SwitchModel) – Model of this switchports (list) – Ports associated with this switch
location (int) – Location of this switch in server rack
ip (str) – IP Address of this switch
-
ResourceIdentifier= 'name'¶ Name of the attribute that is this resource’s identifier
-
port(resource_id)¶ Return port of this switch identified by resource identifier
Returns the port for the given resource identifier or None if this switch does not contain a matching port.
- Parameters
resource_id (str) – The resource id of the port to return object of
- Return type
Optional[Port]- Returns
The
Portobject identified by given resource id
-
sync_ports_from_model()¶ Synchronize ports from switch model.
All ports that have a name that does not exist in switch model will get removed. All ports from switch model that do not exist in this object will be added.
- Return type
None
switchmng.schema.switch_model module¶
-
class
switchmng.schema.switch_model.SwitchModel(**kwargs)¶ Bases:
switchmng.schema.base_resource.BaseResource,sqlalchemy.ext.declarative.api.BaseRepresents a switch model resource.
This resource is uniquely identified by its name.
- Parameters
name (str) – Name uniquely identifying this switch model Acts as resource identifier.
ports (list) – Ports associated with this switch model
size (int) – Size (number of rack units) this switch takes up in server rack
-
ResourceIdentifier= 'name'¶ Name of the attribute that is this resource’s identifier
-
port(resource_id)¶ Return port of this switch model identified by resource identifier.
Returns the port for the given resource identifier or None if this switch model does not contain a matching port.
- Parameters
resource_id (str) – The resource id of the port to return object of
- Return type
Optional[PortModel]- Returns
The
PortModelobject identified by given resource id
-
refresh_switches()¶ Refresh ports of all switches using this switch model.
- Return type
None
switchmng.schema.vlan module¶
-
class
switchmng.schema.vlan.Vlan(**kwargs)¶ Bases:
switchmng.schema.base_resource.BaseResource,sqlalchemy.ext.declarative.api.BaseRepresents a VLAN resource.
This resource is uniquely identified by its vlan tag.
- Parameters
tag (int) – Tag uniquely identifying this VLAN
description (str) – Description of this VLAN
-
ResourceIdentifier= 'tag'¶