You are here: Home / API Documentation / Products.RPMManager.ZSyncerSupport

 Products.RPMManager.ZSyncerSupport  

Up one level
Zpydoc Products RPMManager ZSyncerSupport
Classes
Class  class ZSyncerSupport ( ZSyncer )
Remote synchronisation support We've factored all our explicit version comparison stuff here as we don't need to rely on dodgy timestamps We also want to contain namespace polution
Plus Lock  Add ZSyncers
Implements IItem IDAVResource IWriteLock EtagBaseInterface ICopySource ITraversable IOwned IUndoSupport IPersistentExtra IPersistent IAcquirer IRoleManager IPermissionMappingSupport IPropertyManager
Method COPY(self, REQUEST, RESPONSE)
Create a duplicate of the source resource whose state and behavior match that of the source resource as closely as possible. Though we may later try to make a copy appear seamless across namespaces (e.g. from Zope to Apache), COPY is currently only supported within the Zope namespace.
Method DELETE(self, REQUEST, RESPONSE)
Delete a resource. For non-collection resources, DELETE may return either 200 or 204 (No Content) to indicate success.
Method HEAD(self, REQUEST, RESPONSE)
Retrieve resource information without a response body.
Method LOCK(self, REQUEST, RESPONSE)
Lock a resource
Method MKCOL(self, REQUEST, RESPONSE)
Create a new collection resource. If called on an existing resource, MKCOL must fail with 405 (Method Not Allowed).
Method MOVE(self, REQUEST, RESPONSE)
Move a resource to a new location. Though we may later try to make a move appear seamless across namespaces (e.g. from Zope to Apache), MOVE is currently only supported within the Zope namespace.
Method OPTIONS(self, REQUEST, RESPONSE)
Retrieve communication options.
Method PROPFIND(self, REQUEST, RESPONSE)
Retrieve properties defined on the resource.
Method PROPPATCH(self, REQUEST, RESPONSE)
Set and/or remove properties defined on the resource.
Method PUT(self, REQUEST, RESPONSE)
Replace the GET response entity of an existing resource. Because this is often object-dependent, objects which handle PUT should override the default PUT implementation with an object-specific implementation. By default, PUT requests fail with a 405 (Method Not Allowed).
Method TRACE(self, REQUEST, RESPONSE)
Return the HTTP message received back to the client as the entity-body of a 200 (OK) response. This will often usually be intercepted by the web server in use. If not, the TRACE request will fail with a 405 (Method Not Allowed), since it is not often possible to reproduce the HTTP request verbatim from within the Zope environment.
Method UNLOCK(self, REQUEST, RESPONSE)
Remove an existing lock on a resource.
Method InitializeClass(self)
Method destServer(self, credentials=True)
we can really only deal with one ZSyncer at a time, so this function filters any commented server(s) in the list, returning just the first if credentials is false, we remove any user/password credentials from the returned url
Method wl_lockmapping(self, killinvalids=0, create=0)
if 'killinvalids' is 1, locks who are no longer valid will be deleted
Method absolute_url(self, relative=0)
Return the absolute URL of the object. This a canonical URL based on the object's physical containment path. It is affected by the virtual host configuration, if any, and can be used by external agents, such as a browser, to address the object. If the relative argument is provided, with a true value, then the value of virtual_url_path() is returned. Some Products incorrectly use '/'+absolute_url(1) as an absolute-path reference. This breaks in certain virtual hosting situations, and should be changed to use absolute_url_path() instead.
Method absolute_url_path(self)
Return the path portion of the absolute URL of the object. This includes the leading slash, and can be used as an 'absolute-path reference' as defined in RFC 2396.
Method ac_inherited_permissions(self, all=0)
Method access_debug_info(self)
Return debug info.
Method acquiredRolesAreUsedBy(self, permission)
Method bobobase_modification_time(self)
Method callManyRemote(self, methodlist)
Lock   ZSyncer: Use ZSyncer
Call multiple remote methods and return a list of return values, using as few requests as possible. methodlist should be a sequence of dictionaries with the following keys: 'path': (optional): path to the object on which to call the method, relative to the remote syncer's base. If not provided, the zsyncer itself is used. 'name': name of the method. 'args' (optional): list of positional arguments to pass. 'kwargs' (optional): dictionary of keyword arguments to pass.
Method callMethod_(self, path, method_name, *args, **kw)
Lock   ZSyncer: Use ZSyncer
Call an arbitrary method (with security checks). *path* is path to the object. If it is None, the zsyncer itself will be used. *method_name* is method to call. Any result is returned. This is intended to be called by the client zsyncer, ONLY via callRemote(), but there is no way to enforce that. Note that for security reasons, you must have permission to use ZSyncer *and* to call the requested method in context.
Method callMethods_(self, methodlist)
Lock   ZSyncer: Use ZSyncer
Call a list of arbitrary methods (with security checks). Return a list of results. *methodlist* is a list of dictionaries with these keys: 'path': path to the object on which to call the method, relative to the base folder. (optional, defaults to the syncer itself). 'name': name of the method. 'args' (optional): list of positional arguments to pass. 'kwargs' (optional): dictionary of keyword arguments to pass. This is intended to be called by the client zsyncer, ONLY via callManyRemote(), but there is no way to enforce that. Note that for security reasons, you must have permission to use ZSyncer *and* to call all the requested methods in context.
Method callRemote(self, server_url, path, method_name, *args, **kw)
Lock   ZSyncer: Use ZSyncer
Find an arbitrary callable at *path* on the remote server, call it with the given arguments, and return the result. If *path* is None, it's the remote syncer itself.
Method call_(self, request, REQUEST=None)
Lock   ZSyncer: Use ZSyncer
*request* (poorly named, but changing it breaks stuff) is not an HTTPRequest, rather it should be a pickled tuple containing method_name (string), arguments (a sequence), and keyword arguments (a dictionary). Return value is a pickled tuple of (success, value) where success is boolean and value is the return value of getattr(self, method_name)(*args, **kwargs)
Method cb_isCopyable(self)
Method cb_isMoveable(self)
Method cb_userHasCopyOrMovePermission(self)
Method changeOwnership(self, user, recursive=0)
Change the ownership to the given user. If 'recursive' is true then also take ownership of all sub-objects, otherwise sub-objects retain their ownership information.
Method dav__init(self, request, response)
Method dav__simpleifhandler(self, request, response, method='PUT', col=0, url=None, refresh=0)
Method dav__validate(self, object, methodname, REQUEST)
Method destServer(self, credentials=True)
Lock   Access contents information
we can really only deal with one ZSyncer at a time, so this function filters any commented server(s) in the list, returning just the first if credentials is false, we remove any user/password credentials from the returned url
Method destServers(self)
Lock   Access contents information
returns list of non-commented servers
Method filtered_manage_options(self, REQUEST=None)
Method getAttribute(self, name)
Method getAttributeNode(self, name)
Method getAttributes(self)
Method getChildNodes(self)
Method getElementsByTagName(self, tagname)
Method getErrorAdvice(self, error_type, error_value)
Lock   ZSyncer: Use ZSyncer
Given an error_type and error_value, say something helpful :-) This is a bit hacky because of having two connection methods that do different things.
Method getFirstChild(self)
Method getId(self)
Return the id of the object as a string. This method should be used in preference to accessing an id attribute of an object directly. The getId method is public.
Method getLastChild(self)
Method getNextSibling(self)
Method getNodeName(self)
Method getNodeType(self)
Method getNodeValue(self)
Method getOwner(self, info=0, aq_get=, UnownableOwner=[], getSecurityManager=)
Get the owner If a true argument is provided, then only the owner path and id are returned. Otherwise, the owner object is returned.
Method getOwnerDocument(self)
Method getOwnerTuple(self)
Return a tuple, (userdb_path, user_id) for the owner. o Ownership can be acquired, but only from the containment path. o If unowned, return None.
Method getParentNode(self)
Method getPathInfo(self, path)
Lock   ZSyncer: Use ZSyncer
Useful for building UIs. Returns a dictionary with the following keys/values: 'full': absolute_url_path of the object (requires Zope 2.7 or higher). If the object is not found, assume it's an 'extra' object; then full = path. 'relative': string path to the object relative to this zsyncer. If the object is not found, assume it's an 'extra' object; in that case, full = path. 'id_or_path': string path relative to REQUEST['folder'] if REQUEST['recursive'] is true; otherwise, id (the final path element).
Method getPhysicalPath(self)
Method getPreviousSibling(self)
Method getProperty(self, id, d=None)
Method getPropertyType(self, id)
Method getSyncerRootId(self)
Lock   ZSyncer: Use ZSyncer
Get the ID of the object to use for traversing to syncable objects.
Method getSyncerRootPath(self)
Lock   ZSyncer: Use ZSyncer
Get path to the root to use for traversing to syncable objects, as a string.
Method getTagName(self)
Method getWrappedOwner(self)
Get the owner, modestly wrapped in the user folder. o If the object is not owned, return None. o If the owner's user database doesn't exist, return Nobody. o If the owner ID does not exist in the user database, return Nobody.
Method get_local_roles(self)
Method get_local_roles_for_userid(self, userid)
Method get_valid_userids(self)
Method hasChildNodes(self)
Method hasProperty(self, id)
Method has_local_roles(self)
Method http__etag(self, readonly=0)
Method http__parseMatchList(self, REQUEST, header='if-match')
Method http__processMatchHeaders(self, REQUEST=None)
Method http__refreshEtag(self)
Method is_diffable(self, meta_type=None, status='ok')
Do we know how to render a diff for this type? and, is its status such that we *can* show a diff for it?
Method listDAVObjects(self)
Method manage(self, URL1)
Method manage_DAVget(self)
Gets the document source
Method manage_FTPlist(self, REQUEST)
Directory listing for FTP. In the case of non-Foldoid objects, the listing should contain one object, the object itself.
Method manage_FTPstat(self, REQUEST)
Psuedo stat, used by FTP for directory listings.
Method manage_acquiredPermissions(self, permissions=[])
Change the permissions that acquire.
Method manage_addLocalRoles(self, userid, roles)
Set local roles for a user.
Method manage_addProperty(self, id, value, type, REQUEST=None)
Lock   ZSyncer: Use ZSyncer
Add a new property via the web. Sets a new property with the given id, type, and value.
Method manage_afterAdd(self, item, container)
Method manage_afterClone(self, item)
Method manage_approvedAction(self, REQUEST={}, action='', folder=None, object_paths=None, syncer=None, approver=None, comments='')
Lock   View management screens
If this action is to be approved, throw that data in into the message list
Method manage_beforeDelete(self, item, container)
Method manage_changeOwnershipType(self, explicit=[], RESPONSE=[], REQUEST=[])
Change the type (implicit or explicit) of ownership.
Method manage_changeProperties(self, REQUEST=None, **kw)
Lock   ZSyncer: Use ZSyncer
Change existing object properties. Change object properties by passing either a REQUEST object or name=value parameters
Method manage_changePropertyTypes(self, old_ids, props, REQUEST=None)
Replace one set of properties with another Delete all properties that have ids in old_ids, then add a property for each item in props. Each item has a new_id, new_value, and new_type. The type of new_value should match new_type.
Method manage_compare(self, path, recurse=None, REQUEST=None)
Lock   View management screens
Compare items, optionally recursing into subfolders; optionally filtering by status according to REQUEST. Return a tuple of (dict, [list of dicts]) where the first dict represents the status of the object at *path*, and the dicts in the (possibly empty) list represent the status of sub-objects of that object. If *recurse* is true, subobjects of subfolders are merged and flattened into the subs list. The list is sorted by path. If the list is empty, it means the remote server found no sub-objects at *path*.
Method manage_delLocalRoles(self, userids)
Remove all local roles for a user.
Method manage_delProperties(self, ids=None, REQUEST=None)
Lock   ZSyncer: Use ZSyncer
Delete one or more properties specified by 'ids'.
Method manage_deleteRemote(self, object_paths, msgs=None, REQUEST=None)
Lock   ZSyncer: Use ZSyncer
Interface to calling delete on each destination server. We've just overridden the self.dest_servers stuff ...
Method manage_diffObject(self, object_path, REQUEST=None)
Lock   ZSyncer: Use ZSyncer
Try to get the object from the destination server and diff on it. Return the result as a dictionary.
Method manage_editProperties(self, REQUEST)
Lock   ZSyncer: Use ZSyncer
Edit object properties via the web. The purpose of this method is to change all property values, even those not listed in REQUEST; otherwise checkboxes that get turned off will be ignored. Use manage_changeProperties() instead for most situations.
Method manage_editedDialog(self, REQUEST, **args)
Method manage_fixupOwnershipAfterAdd(self)
Method manage_getExportData(self, path)
Lock   ZSyncer: Use ZSyncer
Gets data suitable for transfer. pkg is a file-like wrapped RPM
Method manage_getPermissionMapping(self)
Return the permission mapping for the object This is a list of dictionaries with: permission_name -- The name of the native object permission class_permission -- The class permission the permission is mapped to.
Method manage_getSource(self, obj_path)
Lock   View management screens
Get a src from an object (if allowed) suitable for diffing.
Method manage_getUserRolesAndPermissions(self, user_id)
Used for permission/role reporting for a given user_id. Returns a dict mapping 'user_defined_in' -> path where the user account is defined 'roles' -> global roles, 'roles_in_context' -> roles in context of the current object, 'allowed_permissions' -> permissions allowed for the user, 'disallowed_permissions' -> all other permissions
Method manage_listObjects(self, path, do_base=1)
Lock   View management screens
introspect non-contained containers ...
Method manage_permission(self, permission_to_manage, roles=[], acquire=0)
Change the settings for the given permission. If optional arg acquire is true, then the roles for the permission are acquired, in addition to the ones specified, otherwise the permissions are restricted to only the designated roles.
Method manage_pullFromRemote(self, object_paths, msgs=None, REQUEST=None)
Lock   ZSyncer: Use ZSyncer
Interface to retrieving each object from destination server.
Method manage_pushToRemote(self, object_paths, msgs=None, REQUEST=None)
Lock   ZSyncer: Use ZSyncer
Interface to pushing each object to destination server. The 'msgs' argument may be modified in-place, and will be returned as a list of TextMsg or StatusMsg instances.
Method manage_replaceObject(self, obj_path, data=None, pkg=None)
Lock   ZSyncer: Use ZSyncer
If an object already exists at *obj_path*, delete it. If *data* is not None, treat is as a picked new object to add at that path. If pkg is present, then it's the RPM - upload it
Method manage_role(self, role_to_manage, permissions=[])
Change the permissions given to the given role.
Method manage_setLocalRoles(self, userid, roles)
Set local roles for a user.
Method manage_setPermissionMapping(self, permission_names=[], class_permissions=[], REQUEST=[])
Change the permission mapping
Method manage_syncDelete(self, object_paths, msgs=None, REQUEST=None)
Lock   ZSyncer: Use ZSyncer
Interface to deleting both locally and remotely. object_paths may be a string or a sequence of strings. If msgs list is provided, it's modified in-place; it's also returned.
Method manage_takeOwnership(self, REQUEST, RESPONSE, recursive=[])
Take ownership (responsibility) for an object. If 'recursive' is true, then also take ownership of all sub-objects.
Method manage_touch(self, object_paths, msgs=None, REQUEST=None)
Lock   ZSyncer: Use ZSyncer
Force timestamp of local and remote object(s) to *now*. A list of StatusMsgs or TextMsgs will be returned.
Method manage_undo_transactions(self, transaction_info=(), REQUEST=None)
Method manage_workspace(self, REQUEST)
Dispatch to first interface in manage_options
Method objectValues(self, spec=None)
Method objectValues(self, spec=None)
Method objectValues(self, spec=None)
Method owner_info(self)
Get ownership info for display
Method permission_settings(self, permission=None)
Return user-role permission settings. If 'permission' is passed to the method then only the settings for 'permission' is returned.
Method permissionsOfRole(self, role)
Returns a role to permission mapping.
Method possible_permissions(self)
Method propdict(self)
Method propertyDescription(self, id)
Method propertyIds(self)
Method propertyItems(self)
Method propertyLabel(self, id)
Method propertyMap(self)
Method propertyValues(self)
Method raise_standardErrorMessage(self, client=None, REQUEST={}, error_type=None, error_value=None, tb=None, error_tb=None, error_message='', tagSearch=, error_log_url='')
Method restrictedTraverse(self, path, default=)
Method rolesOfPermission(self, permission)
Returns a permission to role mapping.
Method status_colour(self, status, default='white')
Lock   View management screens
Gives a list of status colours for pretty html.
Method status_descr(self, status)
Lock   View management screens
Get description of each status from the config.
Method status_icon(self, status)
Get icon of each status from the config.
Method tabs_path_default(self, REQUEST, unquote=)
Method tabs_path_info(self, script, path, quote=)
Method this(self)
Method title_and_id(self)
Return the title if it is not blank and the id otherwise. If the title is not blank, then the id is included in parens.
Method title_or_id(self)
Return the title if it is not blank and the id otherwise.
Method touch(self, object_path, timestamp=DateTime('2024/04/29 23:16:38.288645 UTC'))
Lock   ZSyncer: Use ZSyncer
Force timestamp update to the (local) object. Optional timestamp arg must be a DateTime instance, and is set to the object's modification_date attribute IFF it has one.
Method tpURL(self)
Method tpValues(self)
Method traverseFromRoot(self, relative_path)
Lock   ZSyncer: Use ZSyncer
we need to support non-objectManager containment ...
Method undoable_transactions(self, first_transaction=None, last_transaction=None, PrincipiaUndoBatchSize=None)
Method unrestrictedTraverse(self, path, default=, restricted=False)
Lookup an object by path. path -- The path to the object. May be a sequence of strings or a slash separated string. If the path begins with an empty path element (i.e., an empty string or a slash) then the lookup is performed from the application root. Otherwise, the lookup is relative to self. Two dots (..) as a path element indicates an upward traversal to the acquisition parent. default -- If provided, this is the value returned if the path cannot be traversed for any reason (i.e., no object exists at that path or the object is inaccessible). restricted -- If false (default) then no security checking is performed. If true, then all of the objects along the path are validated with the security machinery. Usually invoked using restrictedTraverse().
Method upgrade(self)
Lock   View management screens
upgrade from 0.5.1 (or earlier?) to current version.
Method userCanTakeOwnership(self)
Method userdefined_roles(self)
Return list of user-defined roles.
Method users_with_local_role(self, role)
Method valid_property_id(self, id)
Method valid_roles(self)
Return list of valid roles.
Method validate_roles(self, roles)
Return true if all given roles are valid.
Method virtual_url_path(self)
Return a URL for the object, relative to the site root. If a virtual host is configured, the URL is a path relative to the virtual host's root object. Otherwise, it is the physical path. In either case, the URL does not begin with a slash.
Method wl_clearLocks(self)
Method wl_delLock(self, locktoken)
Method wl_getLock(self, locktoken)
Method wl_hasLock(self, token, killinvalids=0)
Method wl_isLocked(self)
Method wl_lockItems(self, killinvalids=0)
Method wl_lockTokens(self, killinvalids=0)
Method wl_lockValues(self, killinvalids=0)
Method wl_lockmapping(self, killinvalids=0, create=0)
if 'killinvalids' is 1, locks who are no longer valid will be deleted **Monkey patched by** 'plone.protect.monkey.wl_lockmapping'
Method wl_setLock(self, locktoken, lock)
Functions
Function getSecurityManager ()
Get a security manager, for the current thread.

Document Actions