Classes

class pyvospace.server.space.AbstractSpace
copy_storage_node(src: pyvospace.core.model.Node, dest: pyvospace.core.model.Node)

Copy storage node from src to dest.

Parameters:
  • src – Source Node.
  • dest – Destination Node.
Raises:

VOSpaceError – if copy can not be completed.

create_storage_node(node: pyvospace.core.model.Node)

Create storage node when VOSpace node is created.

Parameters:node – Node to be created.
Raises:VOSpaceError – if creating the node can not be completed.
delete_storage_node(node: pyvospace.core.model.Node)

Delete storage node when VOSpace node is deleted.

If the node is the root of a tree, then the entire tree will be deleted.

Parameters:node – Node to be created.
Raises:VOSpaceError – if node can not be deleted.
get_accept_views(node: pyvospace.core.model.Node) → List[pyvospace.core.model.View]

A list Views that service will accept for that Node type.

Parameters:node – Node object.
Returns:View of list.
get_properties() → pyvospace.core.model.Properties

Return VOSpace Properties.

accepts: A list of identifiers for the Properties that the service accepts and understands.

provides: A list of identifiers for the Properties that the service provides.

contains: A list of identifiers for all the Properties currently used by Nodes within the service.

Returns:Properties object.
get_protocols() → pyvospace.core.model.Protocols

Get a list of the transfer Protocols supported by the VOSpace service.

accepts: A list of Protocols that the service SHALL accept.

provides: A list of Protocols that the service SHALL provide.

Returns:Protocols object.
get_provide_views(node: pyvospace.core.model.Node) → List[pyvospace.core.model.View]

A list Views that service will provide for that Node type.

Parameters:node – Node object.
Returns:View list.
get_transfer_protocols(job: pyvospace.core.model.UWSJob) → List[pyvospace.core.model.Protocol]

Get the transfer protocols for the job.

e.g. PushToSpace request returning a HTTPPut storage endpoint.

Parameters:job – UWSJob
Returns:Protocol List.
Raises:VOSpaceError – if protocol is not supported or no storage found.
get_views() → pyvospace.core.model.Views

Get a list of the Views and data formats supported by the VOSpace service.

Returns:Views object.
move_storage_node(src: pyvospace.core.model.Node, dest: pyvospace.core.model.Node)

Move storage node from src to dest.

Parameters:
  • src – Source Node.
  • dest – Destination Node.
Raises:

VOSpaceError – if move can not be completed.

class pyvospace.server.storage.HTTPSpaceStorageServer(cfg_file, *args, **kwargs)

Abstract HTTP based storage backend.

Parameters:
  • cfg_file – Storage configuration file.
  • args – unnamed arguments.
  • kwargs – named arguments.
download(job: pyvospace.server.uws.StorageUWSJob, request: aiohttp.web_request.Request)

PullFromSpace request to download data from a node.

Parameters:
  • job – StorageUWSJob.
  • request – client reference to request.
permits(identity, permission, context)

Permission on VOSpace actions.

Parameters:
  • identity – user object (type defined by implementation)
  • permission

    createNode: called on a 6.2.1 createNode request. context: tuple(parent Node, Node)

    getNode: called on a 6.3.1 setNode request. context: Node

    setNode: called on a 6.3.2 setNode request. context: Node

    moveNode: called on a 6.2.2 moveNode request. context: tuple(src Node, dest Node)

    copyNode: called on a 6.2.3 copyNode request. context: tuple(src Node, dest Node)

    deleteNode: called on a 6.2.4 deleteNode request. context: Node

    createTransfer: called when a UWS transfer job is to be created (Push, Pull, Move, Copy) context: Transfer

    dataTransfer: called when a UWS push or pull data transfer job is to be created. context: UWSJob

    runJob: called when a UWS job is to be run. context: UWSJob

    abortJob: called when a UWS job is to be aborted. context: UWSJob

Returns:

True if action can be performed on behalf of the user; False otherwise.

setup()

Setup HTTP based storage backend.

shutdown()

Shutdown HTTP based storage backend.

upload(job: pyvospace.server.uws.StorageUWSJob, request: aiohttp.web_request.Request)

PushToSpace request to upload data to a node.

Parameters:
  • job – StorageUWSJob.
  • request – client reference to request.
class pyvospace.server.space.SpaceServer(cfg_file, *args, **kwargs)

HTTP based VOSpace metadata backend.

Parameters:
  • cfg_file – VOSpace configuration file.
  • args – unnamed arguments.
  • kwargs – named arguments.
permits(identity, permission, context)

Permission on VOSpace actions.

Parameters:
  • identity – user object (type defined by implementation)
  • permission

    createNode: called on a 6.2.1 createNode request. context: tuple(parent Node, Node)

    getNode: called on a 6.3.1 setNode request. context: Node

    setNode: called on a 6.3.2 setNode request. context: Node

    moveNode: called on a 6.2.2 moveNode request. context: tuple(src Node, dest Node)

    copyNode: called on a 6.2.3 copyNode request. context: tuple(src Node, dest Node)

    deleteNode: called on a 6.2.4 deleteNode request. context: Node

    createTransfer: called when a UWS transfer job is to be created (Push, Pull, Move, Copy) context: Transfer

    dataTransfer: called when a UWS push or pull data transfer job is to be created. context: UWSJob

    runJob: called when a UWS job is to be run. context: UWSJob

    abortJob: called when a UWS job is to be aborted. context: UWSJob

Returns:

True if action can be performed on behalf of the user; False otherwise.

setup(abstract_space)

Setup VOSpace metadata services.

Parameters:abstract_spaceAbstractSpace
shutdown()

Shutdown VOSpace metadata services.

class pyvospace.server.space.SpacePermission
permits(identity: object, permission: str, context: object)

Permission on VOSpace actions.

Parameters:
  • identity – user object (type defined by implementation)
  • permission

    createNode: called on a 6.2.1 createNode request. context: tuple(parent Node, Node)

    getNode: called on a 6.3.1 setNode request. context: Node

    setNode: called on a 6.3.2 setNode request. context: Node

    moveNode: called on a 6.2.2 moveNode request. context: tuple(src Node, dest Node)

    copyNode: called on a 6.2.3 copyNode request. context: tuple(src Node, dest Node)

    deleteNode: called on a 6.2.4 deleteNode request. context: Node

    createTransfer: called when a UWS transfer job is to be created (Push, Pull, Move, Copy) context: Transfer

    dataTransfer: called when a UWS push or pull data transfer job is to be created. context: UWSJob

    runJob: called when a UWS job is to be run. context: UWSJob

    abortJob: called when a UWS job is to be aborted. context: UWSJob

Returns:

True if action can be performed on behalf of the user; False otherwise.

class pyvospace.core.model.Parameter(uri, value)

VOSpace Parameter.

Parameters:
  • uri – uri.
  • value – value.

e.g. ivo://ivoa.net/vospace/core#length value: 1024

class pyvospace.core.model.Property(uri, value, read_only=True, persist=True)

VOSpace Property.

Parameters:
  • uri – uri.
  • value – value.

e.g. uri: ivo://ivoa.net/vospace/core#length value: 1024

class pyvospace.core.model.SecurityMethod(url)

SecurityMethod required for PushToSpace or PullFromSpace.

Parameters:url – url.

e.g. url: ivo://ivoa.net/sso#cookie

class pyvospace.core.model.Endpoint(url)

Storage Endpoint.

Parameters:url – url.

e.g. url: https://localhost:8000/pushtospace/

class pyvospace.core.model.Protocol(uri, endpoint=None, security_method=None)

Baseclass for storage protocol.

class pyvospace.core.model.Protocols(accepts, provides)

Protocols that a VOSpace accepts and provides.

Parameters:
  • accepts – list of Protocol the space accepts.
  • provides – list of Protocol the space provides.
class pyvospace.core.model.Properties(accepts, provides)

Properties that the VOSpace accepts and provides.

Parameters:
  • accepts – list of Property the space accepts.
  • provides – list of Property the space provides.
class pyvospace.core.model.HTTPPut(endpoint=None, security_method=None)

HTTPPut Protocol.

Parameters:
class pyvospace.core.model.HTTPGet(endpoint=None, security_method=None)

HTTPGet Protocol.

Parameters:
class pyvospace.core.model.HTTPSPut(endpoint=None, security_method=None)

HTTPSPut Protocol.

Parameters:
class pyvospace.core.model.HTTPSGet(endpoint=None, security_method=None)

HTTPSGet Protocol.

Parameters:
class pyvospace.core.model.Views(accepts, provides)

Views into and out of the VOSpace.

Parameters:
  • accepts – list of View the space accepts.
  • provides – list of View the space provides.
class pyvospace.core.model.View(uri)

VOSpace view.

Parameters:uri – uri.

e.g. Using ivo://ivoa.net/vospace/core#tar on a container node will tell the space the user wants a tar for that nodes tree.

class pyvospace.core.model.Node(path, properties=None, capabilities=None, owner=None, group_read=None, group_write=None, id=None)

Node representation for the VOSpace.

Parameters:
  • path – space path. e.g. node/container/data1
  • properties – list of Property
  • capabilities – capabilities of the space.
  • owner – Server side only property.
  • group_read – Server side only property.
  • group_write – Server side only property.
  • id – Server side only property.
class pyvospace.core.model.LinkNode(path, uri_target, properties=None, capabilities=None, owner=None, group_read=None, group_write=None, id=None)

LinkNode representation for the VOSpace.

Parameters:
  • path – space path. e.g. node/container/data1
  • properties – list of Property
  • capabilities – capabilities of the space.
  • owner – server side only property.
  • group_read – server side only property.
  • group_write – server side only property.
  • id – server side only property.
class pyvospace.core.model.DataNode(path, properties=None, capabilities=None, accepts=None, provides=None, busy=False, owner=None, group_read=None, group_write=None, id=None)

DataNode representation for the VOSpace.

Parameters:
  • path – space path. e.g. node/container/data1
  • properties – list of Property
  • capabilities – capabilities of the space.
  • accepts – list of View
  • provides – list of View
  • busy – set node to busy.
  • owner – server side only property.
  • group_read – server side only property.
  • group_write – server side only property.
  • id – server side only property.
class pyvospace.core.model.ContainerNode(path, nodes=None, properties=None, capabilities=None, accepts=None, provides=None, busy=False, owner=None, group_read=None, group_write=None, id=None)

ContainerNode representation for the VOSpace. This Node can contain other Node which can represent a tree structure.

Parameters:
  • path – space path. e.g. node/container/data1
  • nodes – list of Node
  • properties – list of Property
  • capabilities – capabilities of the space.
  • accepts – list of View
  • provides – list of View
  • busy – set node to busy.
  • owner – server side only property.
  • group_read – server side only property.
  • group_write – server side only property.
  • id – server side only property.
class pyvospace.core.model.Transfer(target, direction)

Base class for a VOSpace Transfer request.

class pyvospace.core.model.NodeTransfer(target, direction, keep_bytes)

Base class for a VOSpace node transfer request (Copy or Move).

Parameters:
  • target – source Node
  • direction – target Node
class pyvospace.core.model.ProtocolTransfer(target, direction, protocols=None, view=None, params=None)

Base class for VOSpace protocol transfer request.

Parameters:
  • target – push data to Node
  • direction – pushToVoSpace or pullFromVoSpace string
  • protocolsProtocol to use for transfer
  • viewView
  • params – list of Parameter
class pyvospace.core.model.Copy(target, direction)

Copy for VOSpace request.

Parameters:
  • target – source Node
  • direction – target Node
class pyvospace.core.model.Move(target, direction)

Move for VOSpace request.

Parameters:
  • target – source Node
  • direction – target Node
class pyvospace.core.model.PushToSpace(target, protocols=None, view=None, params=None)

Push to VOSpace transfer request.

Parameters:
class pyvospace.core.model.PullFromSpace(target, protocols=None, view=None, params=None, redirect=True)

Pull from VOSpace transfer request.

Parameters:
pyvospace.core.model.UWSPhase
class pyvospace.core.model.UWSResult(id, attrs)
class pyvospace.core.model.UWSJob(job_id, phase, destruction, job_info=None, results=None, error=None)

UWS Job representation.

Parameters:
  • job_id – job id.
  • phase – job Phase
  • destruction – distruction time.
  • job_info – job info Transfer.
  • results – job Result
  • error – job errors.

Indices and tables