Part of bzrlib.transport.remote View In Hierarchy
Known subclasses: bzrlib.transport.remote.RemoteHTTPTransport, bzrlib.transport.remote.RemoteSSHTransport, bzrlib.transport.remote.RemoteTCPTransport, bzrlib.transport.remote.RemoteTCPTransportV2Only
The connection holds references to the medium that can be used to send requests to the server.
The connection has a notion of the current directory to which it's connected; this is incorporated in filenames passed to the server.
This supports some higher-level RPC operations and can also be treated like a Transport to do file-like operations.
The connection can be made over a tcp socket, an ssh pipe or a series of http requests. There are concrete subclasses for each type: RemoteTCPTransport, etc.
Method | __init__ | Constructor. |
Method | is_readonly | Smart server transport can do read/write file operations. |
Method | get_smart_client | Undocumented |
Method | get_smart_medium | Return a smart client medium for this transport if possible. |
Method | has | Indicate whether a remote file of the given name exists or not. |
Method | get | Return file-like object reading the contents of a remote file. |
Method | get_bytes | Get a raw string of the bytes for a file at the given location. |
Method | mkdir | Create a directory at the given path. |
Method | open_write_stream | See Transport.open_write_stream. |
Method | put_bytes | Atomically put the supplied bytes into the given location. |
Method | put_bytes_non_atomic | See Transport.put_bytes_non_atomic. |
Method | put_file | Copy the file-like object into the location. |
Method | put_file_non_atomic | Copy the file-like object into the target location. |
Method | append_file | Append bytes from a file-like object to a file at relpath. |
Method | append_bytes | Append bytes to a file at relpath. |
Method | delete | Delete the item at relpath |
Method | external_url | See bzrlib.transport.Transport.external_url. |
Method | recommended_page_size | Return the recommended page size for this transport. |
Method | rename | Rename a file or directory. |
Method | move | Move the item at rel_from to the location at rel_to. |
Method | rmdir | Remove a directory at the given path. |
Method | disconnect | Disconnect the transport. |
Method | stat | Return the stat information for a file. |
Method | listable | Return True if this store supports listing. |
Method | list_dir | Return a list of all files at the given location. |
Method | iter_files_recursive | Iter the relative paths of files in the transports sub-tree. |
Method | _build_medium | Create the medium if _from_transport does not provide one. |
Method | _report_activity | See Transport._report_activity. |
Method | _remote_path | Returns the Unicode version of the absolute path for relpath. |
Method | _call | Undocumented |
Method | _call2 | Call a method on the remote server. |
Method | _call_with_body_bytes | Call a method on the remote server with body bytes. |
Method | _serialise_optional_mode | Undocumented |
Method | _readv | Get parts of the file at the given relative path. |
Method | _handle_response | Undocumented |
Method | _ensure_ok | Undocumented |
Method | _translate_error | Translate an IOError or OSError into an appropriate bzr error. |
Inherited from ConnectedTransport:
Method | clone | Return a new transport with root at self.base + offset |
Method | relpath | Return the local path portion from a given absolute path |
Method | abspath | Return the full url to the given relative path. |
Method | _user | Undocumented |
Method | _password | Undocumented |
Method | _host | Undocumented |
Method | _port | Undocumented |
Method | _path | Undocumented |
Method | _scheme | Undocumented |
Static Method | _split_url | Undocumented |
Static Method | _unsplit_url | Build the full URL for the given already URL encoded path. |
Method | _get_shared_connection | Get the object shared amongst cloned transports. |
Method | _set_connection | Record a newly created connection with its associated credentials. |
Method | _get_connection | Returns the transport specific connection object. |
Method | _get_credentials | Returns the credentials used to establish the connection. |
Method | _update_credentials | Update the credentials of the current connection. |
Method | _reuse_for | Returns a transport sharing the same connection if possible. |
Inherited from Transport (via ConnectedTransport):
Method | create_prefix | Create all the directories leading down to self.base. |
Method | ensure_base | Ensure that the directory this transport references exists. |
Method | get_segment_parameters | Return the segment parameters for the top segment of the URL. |
Method | local_abspath | Return the absolute path on the local filesystem. |
Method | has_multi | Return True/False for each entry in relpaths |
Method | has_any | Return True if any of the paths exist. |
Method | readv | Get parts of the file at the given relative path. |
Method | get_multi | Get a list of file-like objects, one for each entry in relpaths. |
Method | mkdir_multi | Create a group of directories |
Method | append_multi | Append the text in each file-like or string object to |
Method | copy | Copy the item at rel_from to the location at rel_to. |
Method | copy_multi | Copy a bunch of entries. |
Method | copy_to | Copy a set of entries from self into another Transport. |
Method | copy_tree | Copy a subtree from one relpath to another. |
Method | copy_tree_to_transport | Copy a subtree from one transport to another. |
Method | move_multi | Move a bunch of entries. |
Method | move_multi_to | Move a bunch of entries to a single location. |
Method | delete_multi | Queue up a bunch of deletes to be done. |
Method | delete_tree | Delete an entire tree. This may require a listable transport. |
Method | __repr__ | Undocumented |
Method | stat_multi | Stat multiple files and return the information. |
Method | readlink | Return a string representing the path to which the symbolic link points. |
Method | hardlink | Create a hardlink pointing to source named link_name. |
Method | symlink | Create a symlink pointing to source named link_name. |
Method | lock_read | Lock the given file for shared (read) access. |
Method | lock_write | Lock the given file for exclusive (write) access. |
Method | _pump | Most children will need to copy from one file-like |
Method | _get_total | Try to figure out how many entries are in multi, |
Method | _update_pb | Update the progress bar based on the current count |
Method | _iterate_over | Iterate over all entries in multi, passing them to func, |
Method | _seek_and_read | An implementation of readv that uses fp.seek and fp.read. |
Method | _sort_expand_and_combine | Helper for readv. |
Static Method | _coalesce_offsets | Yield coalesced offsets. |
Method | _can_roundtrip_unix_modebits | Return true if this transport can store and retrieve unix modebits. |
Method | _redirected_to | Returns a transport suitable to re-issue a redirected request. |
Parameters | _from_transport | Another RemoteTransport instance that this one is being cloned from. Attributes such as the medium will be reused. |
medium | The medium to use for this RemoteTransport. If None, the medium from the _from_transport is shared. If both this and _from_transport are None, a new medium will be built. _from_transport and medium cannot both be specified. | |
_client | Override the _SmartClient used by this transport. This should only be used for testing purposes; normally this is determined from the medium. |
The medium is analogous to the connection for ConnectedTransport: it allows connection sharing.
Does nothing; the smart medium will report activity triggered by a RemoteTransport.
A smart medium doesn't imply the presence of a smart server: it implies that the smart protocol can be tunnelled via this transport.
Raises | NoSmartMedium | if no smart server medium is available. |
See Also | Transport.has() |
See Also | Transport.get_bytes()/get_file() |
Parameters | relpath | The relative path to the file |
Parameters | relpath | The location to put the contents, relative to the transport base. |
bytes | A bytestring of data. | |
mode | Create the file with the given mode. | |
Returns | None |
Parameters | relpath | Location to put the contents, relative to base. |
f | File-like object. | |
mode | The mode for the newly created file, None means just use the default. | |
Returns | The length of the file that was written. |
This function is not strictly safe to use. It is only meant to be used when you already know that the target does not exist. It is not safe, because it will open and truncate the remote file. So there may be a time when the file has invalid contents.
Parameters | relpath | The remote location to put the contents. |
f | File-like object. | |
mode | Possible access permissions for new file. None means do not set remote permissions. | |
create_parent_dir | If we cannot create the target file because the parent directory does not exist, go ahead and create it, and then try again. | |
dir_mode | Possible access permissions for new directories. |
The file is created if it does not already exist.
Parameters | f | a file-like object of the bytes to append. |
mode | Unix mode for newly created files. This is not used for existing files. | |
Returns | the length of relpath before the content was written to it. |
The file is created if it does not already exist.
Parameters | f | a string of the bytes to append. (type: str) |
mode | Unix mode for newly created files. This is not used for existing files. | |
Returns | the length of relpath before the content was written to it. |
Parameters | relpath | The path to read. |
offsets | A list of (offset, size) tuples. | |
Returns | A list or generator of (offset, data) tuples |
This must fail if the destination is a nonempty directory - it must not automatically remove it. It should raise DirectoryNotEmpty, or some other PathError if the case can't be specifically detected.
If the destination is an empty directory or a file this function may either fail or succeed, depending on the underlying transport. It should not attempt to remove the destination if overwriting is not the native transport behaviour. If at all possible the transport should ensure that the rename either completes or not, without leaving the destination deleted and the new file not moved in place.
This is intended mainly for use in implementing LockDir.
The destination is deleted if possible, even if it's a non-empty directory tree.
If a transport can directly implement this it is suggested that it do so for efficiency.
This handles things like ENOENT, ENOTDIR, EEXIST, and EACCESS
If and when required the transport willl reconnect automatically.