Package CedarBackup2 :: Package extend :: Module split :: Class LocalConfig
[show private | hide private]
[frames | no frames]

Type LocalConfig

object --+
         |
        LocalConfig


Class representing this extension's configuration document.

This is not a general-purpose configuration object like the main Cedar Backup configuration object. Instead, it just knows how to parse and emit split-specific configuration values. Third parties who need to read and write configuration related to this extension should access it through the constructor, validate and addConfig methods.

Note: Lists within this class are "unordered" for equality comparisons.

Method Summary
  __init__(self, xmlData, xmlPath, validate)
Initializes a configuration object.
  __repr__(self)
Official string representation for class instance.
  __str__(self)
Informal string representation for class instance.
  __cmp__(self, other)
Definition of equals operator for this class.
  validate(self)
Validates configuration represented by the object.
  addConfig(self, xmlDom, parentNode)
Adds a <split> configuration section as the next child of a parent.
  _addByteQuantityNode(xmlDom, parentNode, nodeName, byteQuantity)
Adds a text node as the next child of a parent, to contain a byte size. (Static method)
  _getSplit(self)
Property target used to get the split configuration value.
  _parseSplit(parent)
Parses an split configuration section. (Static method)
  _parseXmlData(self, xmlData)
Internal method to parse an XML string into the object.
  _readByteQuantity(parent, name)
Read a byte size value from an XML document. (Static method)
  _setSplit(self, value)
Property target used to set the split configuration value.
    Inherited from object
  __delattr__(...)
x.__delattr__('name') <==> del x.name
  __getattribute__(...)
x.__getattribute__('name') <==> x.name
  __hash__(x)
x.__hash__() <==> hash(x)
  __new__(T, S, ...)
T.__new__(S, ...) -> a new object with type S, a subtype of T
  __reduce__(...)
helper for pickle
  __reduce_ex__(...)
helper for pickle
  __setattr__(...)
x.__setattr__('name', value) <==> x.name = value

Property Summary
  split: Split configuration in terms of a SplitConfig object.

Instance Method Details

__init__(self, xmlData=None, xmlPath=None, validate=True)
(Constructor)

Initializes a configuration object.

If you initialize the object without passing either xmlData or xmlPath then configuration will be empty and will be invalid until it is filled in properly.

No reference to the original XML data or original path is saved off by this class. Once the data has been parsed (successfully or not) this original information is discarded.

Unless the validate argument is False, the LocalConfig.validate method will be called (with its default arguments) against configuration after successfully parsing any passed-in XML. Keep in mind that even if validate is False, it might not be possible to parse the passed-in XML document if lower-level validations fail.
Parameters:
xmlData - XML data representing configuration.
           (type=String data.)
xmlPath - Path to an XML file on disk.
           (type=Absolute path to a file on disk.)
validate - Validate the document after parsing it.
           (type=Boolean true/false.)
Raises:
ValueError - If both xmlData and xmlPath are passed-in.
ValueError - If the XML data in xmlData or xmlPath cannot be parsed.
ValueError - If the parsed configuration document is not valid.
Overrides:
__builtin__.object.__init__

Note: It is strongly suggested that the validate option always be set to True (the default) unless there is a specific need to read in invalid configuration from disk.

__repr__(self)
(Representation operator)

Official string representation for class instance.
Overrides:
__builtin__.object.__repr__

__str__(self)
(Informal representation operator)

Informal string representation for class instance.
Overrides:
__builtin__.object.__str__

__cmp__(self, other)
(Comparison operator)

Definition of equals operator for this class. Lists within this class are "unordered" for equality comparisons.
Parameters:
other - Other object to compare to.
Returns:
-1/0/1 depending on whether self is <, = or > other.

validate(self)

Validates configuration represented by the object.

Split configuration must be filled in. Within that, both the size limit and split size must be filled in.
Raises:
ValueError - If one of the validations fails.

addConfig(self, xmlDom, parentNode)

Adds a <split> configuration section as the next child of a parent.

Third parties should use this function to write configuration related to this extension.

We add the following fields to the document:
  sizeLimit      //cb_config/split/size_limit
  splitSize      //cb_config/split/split_size
Parameters:
xmlDom - DOM tree as from impl.createDocument().
parentNode - Parent that the section should be appended to.

_getSplit(self)

Property target used to get the split configuration value.

_parseXmlData(self, xmlData)

Internal method to parse an XML string into the object.

This method parses the XML document into a DOM tree (xmlDom) and then calls a static method to parse the split configuration section.
Parameters:
xmlData - XML data to be parsed
           (type=String data)
Raises:
ValueError - If the XML cannot be successfully parsed.

_setSplit(self, value)

Property target used to set the split configuration value. If not None, the value must be a SplitConfig object.
Raises:
ValueError - If the value is not a SplitConfig

Static Method Details

_addByteQuantityNode(xmlDom, parentNode, nodeName, byteQuantity)

Adds a text node as the next child of a parent, to contain a byte size.

If the byteQuantity is None, then the node will be created, but will be empty (i.e. will contain no text node child).

The size in bytes will be normalized. If it is larger than 1.0 GB, it will be shown in GB ("1.0 GB"). If it is larger than 1.0 MB ("1.0 MB"), it will be shown in MB. Otherwise, it will be shown in bytes ("423413").
Parameters:
xmlDom - DOM tree as from impl.createDocument().
parentNode - Parent node to create child for.
nodeName - Name of the new container node.
byteQuantity - ByteQuantity object to put into the XML document
Returns:
Reference to the newly-created node.

_parseSplit(parent)

Parses an split configuration section.

We read the following individual fields:
  sizeLimit      //cb_config/split/size_limit
  splitSize      //cb_config/split/split_size
Parameters:
parent - Parent node to search beneath.
Returns:
EncryptConfig object or None if the section does not exist.
Raises:
ValueError - If some filled-in value is invalid.

_readByteQuantity(parent, name)

Read a byte size value from an XML document.

A byte size value is an interpreted string value. If the string value ends with "MB" or "GB", then the string before that is interpreted as megabytes or gigabytes. Otherwise, it is intepreted as bytes.
Parameters:
parent - Parent node to search beneath.
name - Name of node to search for.
Returns:
ByteQuantity parsed from XML document

Property Details

split

Split configuration in terms of a SplitConfig object.
Get Method:
_getSplit(self)
Set Method:
_setSplit(self, value)

Generated by Epydoc 2.1 on Thu Mar 29 20:58:25 2007 http://epydoc.sf.net