OPSI.web2.dav.davxml module

WebDAV XML Support.

This module provides XML utilities for use with WebDAV.

This API is considered private to static.py and is therefore subject to change.

See RFC 2518: http://www.ietf.org/rfc/rfc2518.txt (WebDAV) See RFC 3253: http://www.ietf.org/rfc/rfc3253.txt (WebDAV + Versioning) See RFC 3744: http://www.ietf.org/rfc/rfc3744.txt (WebDAV ACLs)

class OPSI.web2.dav.davxml.ActiveLock(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Describes a lock on a resource. (RFC 2518, section 12.1)

allowed_children = {('DAV:', 'timeout'): (0, 1), ('DAV:', 'owner'): (0, 1), ('DAV:', 'depth'): (1, 1), ('DAV:', 'locktype'): (1, 1), ('DAV:', 'lockscope'): (1, 1), ('DAV:', 'locktoken'): (0, 1)}
name = 'activelock'
class OPSI.web2.dav.davxml.AllProperties(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Specifies that all property names and values on the resource are to be returned. (RFC 2518, section 12.14.1)

name = 'allprop'
class OPSI.web2.dav.davxml.Collection(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Identifies the associated resource as a collection. (RFC 2518, section 12.2)

name = 'collection'
class OPSI.web2.dav.davxml.CreationDate(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVDateTimeElement

Records the time and date that the resource was created. (RFC 2518, section 13.1)

name = 'creationdate'
protected = True
class OPSI.web2.dav.davxml.Depth(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVTextElement

The value of the depth header. (RFC 2518, section 12.1.1)

name = 'depth'
class OPSI.web2.dav.davxml.DisplayName(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVTextElement

Provides a name for the resource that is suitable for presentation to a user. (RFC 2518, section 13.2)

name = 'displayname'
class OPSI.web2.dav.davxml.Exclusive(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Indicates an exclusive lock. (RFC 2518, section 12.7.1)

name = 'exclusive'
class OPSI.web2.dav.davxml.GETContentLanguage(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVTextElement

Contains the Content-Language header returned by a GET without accept headers. (RFC 2518, section 13.3)

name = 'getcontentlanguage'
class OPSI.web2.dav.davxml.GETContentLength(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVTextElement

Contains the Content-Length header returned by a GET without accept headers. (RFC 2518, section 13.4)

name = 'getcontentlength'
protected = True
class OPSI.web2.dav.davxml.GETContentType(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVTextElement

Contains the Content-Type header returned by a GET without accept headers. (RFC 2518, section 13.5)

mimeType()
name = 'getcontenttype'
class OPSI.web2.dav.davxml.GETETag(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVTextElement

Contains the ETag header returned by a GET without accept headers. (RFC 2518, section 13.6)

name = 'getetag'
protected = True
class OPSI.web2.dav.davxml.GETLastModified(*children, **attributes)

Bases: OPSI.web2.dav.element.base.DateTimeHeaderElement

Contains the Last-Modified header returned by a GET without accept headers. (RFC 2518, section 13.7)

name = 'getlastmodified'
protected = True
class OPSI.web2.dav.davxml.HRef(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVTextElement

Identifies the content of the element as a URI. (RFC 2518, section 12.3)

name = 'href'
class OPSI.web2.dav.davxml.KeepAlive(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Specifies requirements for the copying/moving or live properties. (RFC 2518, section 12.12.1)

allowed_children = {<class 'OPSI.web2.dav.element.base.PCDATAElement'>: (0, 1), ('DAV:', 'href'): (0, None)}
name = 'keepalive'

Bases: OPSI.web2.dav.element.base.WebDAVElement

Identifies the property as a link and contains the source and destination of that link. (RFC 2518, section 12.4)

allowed_children = {('DAV:', 'src'): (1, None), ('DAV:', 'dst'): (1, None)}
name = 'link'
class OPSI.web2.dav.davxml.LinkDestination(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVTextElement

Indicates the destination of a link. (RFC 2518, section 12.4.1)

name = 'dst'
class OPSI.web2.dav.davxml.LinkSource(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVTextElement

Indicates the source of a link. (RFC 2518, section 12.4.2)

name = 'src'
class OPSI.web2.dav.davxml.LockDiscovery(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Describes the active locks on a resource. (RFC 2518, section 13.8)

allowed_children = {('DAV:', 'activelock'): (0, None)}
name = 'lockdiscovery'
protected = True
class OPSI.web2.dav.davxml.LockEntry(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Defines the types of lock that can be used with the resource. (RFC 2518, section 12.5)

allowed_children = {('DAV:', 'lockscope'): (1, 1), ('DAV:', 'locktype'): (1, 1)}
name = 'lockentry'
class OPSI.web2.dav.davxml.LockInfo(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Used with a LOCK method to specify the type of lock that the client wishes to have created. (RFC 2518, section 12.6)

allowed_children = {('DAV:', 'lockscope'): (1, 1), ('DAV:', 'locktype'): (1, 1), ('DAV:', 'owner'): (0, 1)}
name = 'lockinfo'
class OPSI.web2.dav.davxml.LockScope(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVOneShotElement

Specifies whether a lock is an exclusive lock or a shared lock. (RFC 2518, section 12.7)

allowed_children = {('DAV:', 'exclusive'): (0, 1), ('DAV:', 'shared'): (0, 1)}
exclusive = <{DAV:}lockscope {}: (<{DAV:}exclusive {}: ()>,)>
name = 'lockscope'
shared = <{DAV:}lockscope {}: (<{DAV:}shared {}: ()>,)>
class OPSI.web2.dav.davxml.LockToken(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

The lock token associated with a lock. (RFC 2518, section 12.1.2)

allowed_children = {('DAV:', 'href'): (1, None)}
name = 'locktoken'
class OPSI.web2.dav.davxml.LockType(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVOneShotElement

Specifies the access type of a lock. (RFC 2518, section 12.8)

allowed_children = {('DAV:', 'write'): (0, 1)}
name = 'locktype'
write = <{DAV:}locktype {}: (<{DAV:}write {}: ()>,)>
class OPSI.web2.dav.davxml.MultiStatus(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Contains multiple Responses. (RFC 2518, section 12.9)

allowed_children = {('DAV:', 'responsedescription'): (0, 1), ('DAV:', 'response'): (0, None)}
name = 'multistatus'
class OPSI.web2.dav.davxml.Omit(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Instructs the server that it should use best effort to copy properties. (RFC 2518, section 12.12.2)

name = 'omit'
class OPSI.web2.dav.davxml.Owner(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Property which provides information about the principal taking out a lock. (RFC 2518, section 12.10) Property which identifies a principal as being the owner principal of a resource. (RFC 3744, section 5.1) Note that RFC 2518 allows any content, while RFC 3744 expect zero or one DAV:href element.

allowed_children = {<class 'OPSI.web2.dav.element.base.WebDAVElement'>: (0, None)}
hidden = True
name = 'owner'
class OPSI.web2.dav.davxml.PropertyBehavior(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Specifies how properties are handled during a COPY or MOVE. (RFC 2518, section 12.12)

allowed_children = {('DAV:', 'keepalive'): (0, 1), ('DAV:', 'omit'): (0, 1)}
name = 'propertybehavior'
class OPSI.web2.dav.davxml.PropertyContainer(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Contains properties related to a resource. (RFC 2518, section 12.11)

allowed_children = {<class 'OPSI.web2.dav.element.base.WebDAVElement'>: (0, None)}
name = 'prop'
class OPSI.web2.dav.davxml.PropertyFind(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Specifies the properties to be returned from a PROPFIND method. (RFC 2518, section 12.14)

allowed_children = {('DAV:', 'propname'): (0, 1), ('DAV:', 'prop'): (0, 1), ('DAV:', 'allprop'): (0, 1)}
name = 'propfind'
class OPSI.web2.dav.davxml.PropertyName(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Specifies that only a list of property names on the resource are to be returned. (RFC 2518, section 12.14.2)

name = 'propname'
class OPSI.web2.dav.davxml.PropertyStatus(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Groups together a Property and Status element that is associated with a particular DAV:href element. (RFC 2518, section 12.9.1.1)

allowed_children = {('DAV:', 'prop'): (1, 1), ('DAV:', 'responsedescription'): (0, 1), ('DAV:', 'status'): (1, 1), ('DAV:', 'error'): (0, 1)}
name = 'propstat'
class OPSI.web2.dav.davxml.PropertyUpdate(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Contains a request to alter the properties on a resource. (RFC 2518, section 12.13)

allowed_children = {('DAV:', 'remove'): (0, None), ('DAV:', 'set'): (0, None)}
name = 'propertyupdate'
class OPSI.web2.dav.davxml.Remove(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Lists the DAV properties to be removed from a resource. (RFC 2518, section 12.13.1)

allowed_children = {('DAV:', 'prop'): (1, 1)}
name = 'remove'
class OPSI.web2.dav.davxml.ResourceType(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Specifies the nature of the resource. (RFC 2518, section 13.9)

allowed_children = {<class 'OPSI.web2.dav.element.base.WebDAVElement'>: (0, None)}
collection = <{DAV:}resourcetype {}: (<{DAV:}collection {}: ()>,)>
empty = <{DAV:}resourcetype {}: ()>
name = 'resourcetype'
protected = True
class OPSI.web2.dav.davxml.Response(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Holds a single response describing the effect of a method on a resource and/or its properties. (RFC 2518, section 12.9.1)

allowed_children = {('DAV:', 'propstat'): (1, None), ('DAV:', 'error'): (0, 1), ('DAV:', 'responsedescription'): (0, 1), ('DAV:', 'status'): (1, 1), ('DAV:', 'href'): (1, None)}
name = 'response'
class OPSI.web2.dav.davxml.ResponseDescription(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVTextElement

Contains a message that can be displayed to the user explaining the nature of the response. (RFC 2518, section 12.9.2)

name = 'responsedescription'
class OPSI.web2.dav.davxml.Set(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Lists the DAV properties to be set for a resource. (RFC 2518, section 12.13.2)

allowed_children = {('DAV:', 'prop'): (1, 1)}
name = 'set'
class OPSI.web2.dav.davxml.Shared(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Indicates a shared lock. (RFC 2518, section 12.7.2)

name = 'shared'
class OPSI.web2.dav.davxml.Source(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

The destination of the source link identifies the resource that contains the unprocessed source of the link’s source. (RFC 2518, section 13.10)

allowed_children = {('DAV:', 'link'): (0, None)}
name = 'source'
class OPSI.web2.dav.davxml.Status(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVTextElement

Holds a single HTTP status line. (RFC 2518, section 12.9.1.2)

classmethod fromResponseCode(clazz, code)

code must be an integer response code in OPSI.web2.responsecode.RESPONSES.keys()

name = 'status'
class OPSI.web2.dav.davxml.SupportedLock(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Provides a listing of the lock capabilities supported by the resource. (RFC 2518, section 13.11)

allowed_children = {('DAV:', 'lockentry'): (0, None)}
name = 'supportedlock'
protected = True
class OPSI.web2.dav.davxml.Timeout(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVTextElement

The timeout associated with a lock. (RFC 2518, section 12.1.3)

name = 'timeout'
class OPSI.web2.dav.davxml.Write(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Indicates a write lock. (RFC 2518, section 12.8.1) Controls methods that lock a resource or modify the content, dead properties, or (in the case of a collection) membership of a resource. (RFC 3744, section 3.2)

name = 'write'
class OPSI.web2.dav.davxml.Comment(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVTextElement

Property used to track a brief comment about a resource that is suitable for presentation to a user. On a version, can be used to indicate why that version was created. (RFC 3253, section 3.1.1)

hidden = True
name = 'comment'
class OPSI.web2.dav.davxml.CreatorDisplayName(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVTextElement

Property which contains a description of the creator of the resource that is suitable for presentation to a user. (RFC 3253, section 3.1.2)

hidden = True
name = 'creator-displayname'
class OPSI.web2.dav.davxml.Error(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Specifies an error condition. (RFC 3253, section 1.6)

allowed_children = {<class 'OPSI.web2.dav.element.base.WebDAVElement'>: (0, None)}
name = 'error'
class OPSI.web2.dav.davxml.ExpandProperty(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Report which provides a mechanism for retrieving in one request the properties from resources identified by DAV:href property values. (RFC 3253, section 3.8)

allowed_children = {('DAV:', 'property'): (0, None)}
name = 'expand-property'
class OPSI.web2.dav.davxml.Property(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Identifies a property by name. (RFC 3253, section 3.8) Principal which matches a user if the value of the identified property of a resource contains at most one DAV:href element, the value of that element identifies a principal, and the user matches that principal. (RFC 3744, section 5.5.1)

allowed_attributes = {'namespace': False, 'name': True}
allowed_children = {('DAV:', 'property'): (0, None)}
name = 'property'
class OPSI.web2.dav.davxml.Report(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

A report. (RFC 3253, section 3.1.5)

allowed_children = {<class 'OPSI.web2.dav.element.base.WebDAVElement'>: (0, None)}
name = 'report'
class OPSI.web2.dav.davxml.SupportedLiveProperty(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Property which identifies a live property that is supported by a resource. A live property is supported by a resource if that property has the semantics defined for that property. The value of this property must identify all live properties defined by this document that are supported by the resource and should identify all live properties that are supported by the resource. (RFC 3253, section 3.1.4)

allowed_children = {('DAV:', 'name'): (1, 1)}
name = 'supported-live-property'
class OPSI.web2.dav.davxml.SupportedLivePropertySet(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Property which identifies the live properties that are supported by a resource. (RFC 3253, section 3.1.4)

allowed_children = {('DAV:', 'supported-live-property'): (0, None)}
hidden = True
name = 'supported-live-property-set'
protected = True
class OPSI.web2.dav.davxml.SupportedMethod(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Property which identifies a method that is supported by a resource. A method is supported by a resource if there is some state of that resource for which an application of that method will successfully satisfy all postconditions of that method, including any additional postconditions added by the features supported by that resource. (RFC 3253, section 3.1.3)

allowed_attributes = {'name': True}
allowed_children = {<class 'OPSI.web2.dav.element.base.WebDAVElement'>: (0, None)}
hidden = True
name = 'supported-method'
class OPSI.web2.dav.davxml.SupportedMethodSet(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Property which identifies the methods that are supported by a resource. (RFC 3253, section 3.1.3)

allowed_children = {('DAV:', 'supported-method'): (0, None)}
hidden = True
name = 'supported-method-set'
protected = True
class OPSI.web2.dav.davxml.SupportedReport(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Identifies a report that is supported by the resource. (RFC 3253, section 3.1.5)

allowed_children = {('DAV:', 'report'): (0, 1)}
name = 'supported-report'
class OPSI.web2.dav.davxml.SupportedReportSet(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Property which identifies the reports that are supported by the resource. (RFC 3253, section 3.1.5)

allowed_children = {('DAV:', 'supported-report'): (0, None)}
hidden = True
name = 'supported-report-set'
protected = True
class OPSI.web2.dav.davxml.ACE(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Specifies the list of access control entries which define what privileges are granted to which users for a resource. (RFC 3744, section 5.5)

allowed_children = {('DAV:', 'inherited'): (0, 1), ('DAV:', 'deny'): (0, 1), ('DAV:', 'grant'): (0, 1), ('DAV:', 'protected'): (0, 1), ('DAV:', 'principal'): (0, 1), ('DAV:', 'invert'): (0, 1)}
name = 'ace'
class OPSI.web2.dav.davxml.ACL(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Property which specifies the list of access control entries which define what privileges are granted to which users for a resource. (RFC 3744, section 5.5)

allowed_children = {('DAV:', 'ace'): (0, None)}
hidden = True
name = 'acl'
protected = True
class OPSI.web2.dav.davxml.ACLPrincipalPropSet(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Report which returns, for all principals in the DAV:acl property (of the resource identified by the Request-URI) that are identified by http(s) URLs or by a DAV:property principal, the value of the properties specified in the REPORT request body. (RFC 3744, section 9.2)

allowed_children = {<class 'OPSI.web2.dav.element.base.WebDAVElement'>: (0, None)}
name = 'acl-principal-prop-set'
class OPSI.web2.dav.davxml.ACLRestrictions(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Property which defines the types of ACLs supported by this server, to avoid clients needlessly getting errors. (RFC 3744, section 5.6)

allowed_children = {('DAV:', 'no-invert'): (0, 1), ('DAV:', 'deny-before-grant'): (0, 1), ('DAV:', 'required-principal'): (0, 1), ('DAV:', 'grant-only'): (0, 1)}
hidden = True
name = 'acl-restrictions'
protected = True
class OPSI.web2.dav.davxml.Abstract(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Identifies a privilege as abstract. (RFC 3744, section 5.3)

name = 'abstract'
class OPSI.web2.dav.davxml.All(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Aggregate privilege that contains the entire set of privileges that can be applied to a resource. (RFC 3744, section 3.11) Principal which matches all users. (RFC 3744, section 5.5.1)

name = 'all'
class OPSI.web2.dav.davxml.AlternateURISet(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Property which contains the URIs of network resources with additional descriptive information about the principal. (RFC 3744, section 4.1)

allowed_children = {('DAV:', 'href'): (0, None)}
hidden = True
name = 'alternate-uri-set'
protected = True
class OPSI.web2.dav.davxml.Authenticated(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Principal which matches authenticated users. (RFC 3744, section 5.5.1)

name = 'authenticated'
class OPSI.web2.dav.davxml.Bind(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Privilege which allows a method to add a new member URL from the a collection resource. (RFC 3744, section 3.9)

name = 'bind'
class OPSI.web2.dav.davxml.CurrentUserPrivilegeSet(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Property which contains the exact set of privileges (as computer by the server) granted to the currently authenticated HTTP user. (RFC 3744, section 5.4)

allowed_children = {('DAV:', 'privilege'): (0, None)}
hidden = True
name = 'current-user-privilege-set'
protected = True
class OPSI.web2.dav.davxml.Deny(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Denies the contained privileges to a principal. (RFC 3744, section 5.5.2)

allowed_children = {('DAV:', 'privilege'): (1, None)}
name = 'deny'
class OPSI.web2.dav.davxml.DenyBeforeGrant(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Indicates that all deny ACEs must precede all grant ACEs. (RFC 3744, section 5.6.3)

name = 'deny-before-grant'
class OPSI.web2.dav.davxml.Description(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVTextElement

A human-readable description of what privilege controls access to. (RFC 3744, sections 5.3 and 9.5)

allowed_attributes = {'xml:lang': True}
name = 'description'
class OPSI.web2.dav.davxml.Grant(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Grants the contained privileges to a principal. (RFC 3744, section 5.5.2)

allowed_children = {('DAV:', 'privilege'): (1, None)}
name = 'grant'
class OPSI.web2.dav.davxml.GrantOnly(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Indicates that ACEs with deny clauses are not allowed. (RFC 3744, section 5.6.1)

name = 'grant-only'
class OPSI.web2.dav.davxml.Group(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Property which identifies a particular principal as being the group principal of a resource. (RFC 3744, section 5.2)

allowed_children = {('DAV:', 'href'): (0, 1)}
hidden = True
name = 'group'
class OPSI.web2.dav.davxml.GroupMemberSet(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Property which identifies the principals that are direct members of a group principal. (RFC 3744, section 4.3)

allowed_children = {('DAV:', 'href'): (0, None)}
hidden = True
name = 'group-member-set'
class OPSI.web2.dav.davxml.GroupMembership(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Property which identifies the group principals in which a principal is directly a member. (RFC 3744, section 4.4)

allowed_children = {('DAV:', 'href'): (0, None)}
hidden = True
name = 'group-membership'
protected = True
class OPSI.web2.dav.davxml.Inherited(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Indicates that an ACE is inherited from the resource indentified by the contained DAV:href element. (RFC 3744, section 5.5.4)

allowed_children = {('DAV:', 'href'): (1, 1)}
name = 'inherited'
class OPSI.web2.dav.davxml.InheritedACLSet(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Property which contains a set of URLs that identify other resources that also control the access to this resource. (RFC 3744, section 5.7)

allowed_children = {('DAV:', 'href'): (0, None)}
hidden = True
name = 'inherited-acl-set'
protected = True
class OPSI.web2.dav.davxml.Invert(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Principal which matches a user if the user does not match the principal contained by this principal. (RFC 3744, section 5.5.1)

allowed_children = {('DAV:', 'principal'): (1, 1)}
name = 'invert'
class OPSI.web2.dav.davxml.Match(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVTextElement

Contains a search string. (RFC 3744, section 9.4)

name = 'match'
class OPSI.web2.dav.davxml.NeedPrivileges(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Error which indicates insufficient privileges. (RFC 3744, section 7.1.1)

allowed_children = {('DAV:', 'resource'): (0, None)}
name = 'need-privileges'
class OPSI.web2.dav.davxml.NoInvert(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Indicates that ACEs with the DAV:invert element are not allowed. (RFC 3744, section 5.6.2)

name = 'no-invert'
class OPSI.web2.dav.davxml.Principal(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Indicates a principal resource type. (RFC 3744, section 4) Identifies the principal to which an ACE applies. (RFC 3744, section 5.5.1)

allowed_children = {('DAV:', 'all'): (0, 1), ('DAV:', 'authenticated'): (0, 1), ('DAV:', 'property'): (0, 1), ('DAV:', 'href'): (0, 1), ('DAV:', 'unauthenticated'): (0, 1), ('DAV:', 'self'): (0, 1)}
name = 'principal'
class OPSI.web2.dav.davxml.PrincipalCollectionSet(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Property which contains a set of URLs that identify the root collections that contain the principals that are available on the server that implements a resource. (RFC 3744, section 5.8)

allowed_children = {('DAV:', 'href'): (0, None)}
hidden = True
name = 'principal-collection-set'
protected = True
class OPSI.web2.dav.davxml.PrincipalMatch(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Report used to identify all members (at any depth) of the collection identified by the Request-URI that are principals and that match the current user. (RFC 3744, section 9.3)

allowed_children = {('DAV:', 'self'): (0, 1), ('DAV:', 'prop'): (0, 1), ('DAV:', 'principal-property'): (0, 1)}
name = 'principal-match'
class OPSI.web2.dav.davxml.PrincipalProperty(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Identifies a property. (RFC 3744, section 9.3)

allowed_children = {<class 'OPSI.web2.dav.element.base.WebDAVElement'>: (0, None)}
name = 'principal-property'
class OPSI.web2.dav.davxml.PrincipalPropertySearch(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Report which performs a search for all principals whose properties contain character data that matches the search criteria specified in the request. (RFC 3744, section 9.4)

allowed_children = {('DAV:', 'apply-to-principal-collection-set'): (0, 1), ('DAV:', 'property-search'): (1, None), ('DAV:', 'prop'): (0, 1)}
name = 'principal-property-search'
class OPSI.web2.dav.davxml.PrincipalSearchProperty(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Contains exactly one searchable property, and a description of the property. (RFC 3744, section 9.5)

allowed_children = {('DAV:', 'prop'): (1, 1), ('DAV:', 'description'): (1, 1)}
name = 'principal-search-property'
class OPSI.web2.dav.davxml.PrincipalSearchPropertySet(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Report which identifies those properties that may be searched using the DAV:principal-property-search report. (RFC 3744, section 9.5)

allowed_children = {('DAV:', 'principal-search-property'): (0, None)}
name = 'principal-search-property-set'
class OPSI.web2.dav.davxml.PrincipalURL(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Property which contains the URL that must be used to identify this principal in an ACL request. (RFC 3744, section 4.2)

allowed_children = {('DAV:', 'href'): (0, 1)}
hidden = True
name = 'principal-url'
protected = True
class OPSI.web2.dav.davxml.Privilege(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Identifies a privilege. (RFC 3744, sections 5.3 and 5.5.1)

allowed_children = {<class 'OPSI.web2.dav.element.base.WebDAVElement'>: (0, None)}
name = 'privilege'
class OPSI.web2.dav.davxml.PropertySearch(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Contains a DAV:prop element enumerating the properties to be searched and a DAV:match element, containing the search string. (RFC 3744, section 9.4)

allowed_children = {('DAV:', 'match'): (1, 1), ('DAV:', 'prop'): (1, 1)}
name = 'property-search'
class OPSI.web2.dav.davxml.Protected(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Identifies an ACE as protected. (RFC 3744, section 5.5.3)

name = 'protected'
class OPSI.web2.dav.davxml.Read(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Privilege which controls methods that return information about the state of a resource, including the resource’s properties. (RFC 3744, section 3.1)

name = 'read'
class OPSI.web2.dav.davxml.ReadACL(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Privilege which controls the use of the PROPFIND method to retrieve the DAV:acl property of a resource. (RFC 3744, section 3.6)

name = 'read-acl'
class OPSI.web2.dav.davxml.ReadCurrentUserPrivilegeSet(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Privilege which controls the use of the PROPFIND method to retrieve the DAV:current-user-privilege-set property of a resource. (RFC 3744, section 3.7)

name = 'read-current-user-privilege-set'
class OPSI.web2.dav.davxml.RequiredPrincipal(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Indicates which principals must have an ACE defined in an ACL. (RFC 3744, section 5.6.4)

allowed_children = {('DAV:', 'all'): (0, 1), ('DAV:', 'authenticated'): (0, 1), ('DAV:', 'property'): (0, None), ('DAV:', 'href'): (0, None), ('DAV:', 'unauthenticated'): (0, 1), ('DAV:', 'self'): (0, 1)}
name = 'required-principal'
class OPSI.web2.dav.davxml.Resource(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Identifies which resource had insufficient privileges. (RFC 3744, section 7.1.1)

allowed_children = {('DAV:', 'privilege'): (1, 1), ('DAV:', 'href'): (1, 1)}
name = 'resource'
class OPSI.web2.dav.davxml.Self(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Principal which matches a user if a resource is a principal and the user matches the resource. (RFC 3744, sections 5.5.1 and 9.3)

name = 'self'
class OPSI.web2.dav.davxml.SupportedPrivilege(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Identifies a privilege defined for a resource. (RFC 3744, section 5.3)

allowed_children = {('DAV:', 'abstract'): (0, 1), ('DAV:', 'description'): (1, 1), ('DAV:', 'privilege'): (1, 1), ('DAV:', 'supported-privilege'): (0, None)}
name = 'supported-privilege'
class OPSI.web2.dav.davxml.SupportedPrivilegeSet(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVElement

Property which identifies the privileges defined for a resource. (RFC 3744, section 5.3)

allowed_children = {('DAV:', 'supported-privilege'): (0, None)}
hidden = True
name = 'supported-privilege-set'
protected = True
class OPSI.web2.dav.davxml.Unauthenticated(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Principal which matches unauthenticated users. (RFC 3744, section 5.5.1)

name = 'unauthenticated'
class OPSI.web2.dav.davxml.Unbind(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Privilege which allows a method to remove a member URL from the a collection resource. (RFC 3744, section 3.10)

name = 'unbind'
class OPSI.web2.dav.davxml.Unlock(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Privilege which controls the use of the UNLOCK method by a principal other than the lock owner. (RFC 3744, section 3.5)

name = 'unlock'
class OPSI.web2.dav.davxml.WriteACL(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Privilege which controls the use of the ACL method to modify the DAV:acl property of a resource. (RFC 3744, section 3.8)

name = 'write-acl'
class OPSI.web2.dav.davxml.WriteContent(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Privilege which controls methods that modify the content of an existing resource. (RFC 3744, section 3.4)

name = 'write-content'
class OPSI.web2.dav.davxml.WriteProperties(*children, **attributes)

Bases: OPSI.web2.dav.element.base.WebDAVEmptyElement

Privilege which controls methods that modify the dead properties of a resource. (RFC 3744, section 3.3)

name = 'write-properties'
OPSI.web2.dav.davxml.registerElements(module)

Register XML elements defined in the given module with the parser.

class OPSI.web2.dav.davxml.WebDAVDocument(root_element)

Bases: object

WebDAV XML document.

static fromStream(source)
static fromString(source)
toxml()
writeXML(output)
OPSI.web2.dav.davxml.lookupElement(qname)

Return the element class for the element with the given qname.

OPSI.web2.dav.davxml.encodeXMLName(name)

Encodes an XML (namespace, localname) pair into an ASCII string. If namespace is None, returns localname encoded as UTF-8. Otherwise, returns {namespace}localname encoded as UTF-8.

OPSI.web2.dav.davxml.decodeXMLName(name)

Decodes an XML (namespace, localname) pair from an ASCII string as encoded by encodeXMLName().