HWRF  trunk@4391
Public Member Functions | Public Attributes | List of all members
produtil.datastore.FileProduct Class Reference

A subclass of Product that represents file delivery. More...

Detailed Description

A subclass of Product that represents file delivery.

This subclass of Product represents a file that is delivered by this workflow. The deliver() subroutine actually copies the file, and undeliver() deletes it. The produtil.fileop.remove_file() and produtil.fileop.deliver_file() are used for this purpose.

Definition at line 856 of file datastore.py.

Inheritance diagram for produtil.datastore.FileProduct:
produtil.datastore.Product produtil.datastore.Datum hwrf.regrib.GRIB1Product hwrf.regrib.GRIB2Product hwrf.tracker.CleanATCFSubsetProduct hwrf.tracker.RawATCFProduct

Public Member Functions

def undeliver
 Undoes the effect of deliver() More...
 
def deliver
 Delivers the file to a destination. More...
 
- Public Member Functions inherited from produtil.datastore.Product
def add_callback
 Adds a delivery callback function. More...
 
def has_callbacks (self)
 Returns True if this Product has any callback functions and False otherwise.
 
def call_callbacks
 Calls all delivery callback functions. More...
 
def check (self, kwargs)
 Asks the product to check its own availability and update the database. More...
 
def deliver (self, kwargs)
 Asks the Product to deliver itself. More...
 
def undeliver (self, kwargs)
 "Undelivers" a product. More...
 
def setavailable (self, val)
 Sets the availability to the specified value. More...
 
def is_available (self)
 Is the product available? More...
 
def validate (self)
 Validates this object's Datastore, prodname and category. More...
 
- Public Member Functions inherited from produtil.datastore.Datum
def __init__ (self, dstore, prodname, category, meta=None, cache=30, location=None, kwargs)
 Datum constructor. More...
 
def __enter__ (self)
 Acquires this object's thread lock. More...
 
def __exit__ (self, etype, evalue, traceback)
 Releases this object's thread lock. More...
 
def validate (self)
 Validates this object's Datastore, prodname and category. More...
 
def getid (self)
 Returns the database ID of this datum. More...
 
def getdatastore (self)
 Returns the datastore of this datum. More...
 
def transaction (self)
 Creates, but does not lock, a Transaction for this datum's datastore. More...
 
def getprodtype (self)
 Returns the product type of this Datum. More...
 
def getprodname (self)
 Returns the product name part of the database ID. More...
 
def getcategory (self)
 Returns the product category part of the database ID. More...
 
def getlocation (self)
 Returns the "location" field of this Datum's database entry. More...
 
def setlocation (self, v)
 Sets the "location" field of this Datum's database entry. More...
 
def __hash__ (self)
 Integer hash function. More...
 
def __str__ (self)
 Human-readable description of this Datum. More...
 
def __repr__ (self)
 Python code-like description of this Datum. More...
 
def __cmp__ (self, other)
 Compares two Datums' prodnames and categories. More...
 
def set_loc_avail (self, loc, avail)
 Sets the location and availability of this Datum in a single transaction. More...
 
def update (self)
 Discards all cached metadata and refreshes it from the Datastore. More...
 
def __getitem__ (self, k)
 Returns the value of the specified metadata key or raises KeyError. More...
 
def meta
 Return the value of a metadata key. More...
 
def get
 Alias for self.meta() Returns the value of the specified metadata key or returns default if it is unset. More...
 
def __setitem__ (self, k, v)
 Sets the value of the specified metadata key. More...
 
def __delitem__ (self, k)
 Deletes the specified metadata key, which must not be "available" or "location". More...
 
def __contains__ (self, k)
 Determines if a metadata key is set. More...
 
def iteritems (self)
 Iterates over all metadata (key,value) pairs for this Datum, including "available" and "location". More...
 

Public Attributes

 available
 

Additional Inherited Members

- Properties inherited from produtil.datastore.Product
 available
 Read-write property: is the product available? More...
 
- Properties inherited from produtil.datastore.Datum
 prodname = property(getprodname,None,None,)
 Read-only property, an alias for getprodname(): the product name part of the database ID. More...
 
 category = property(getcategory,None,None,)
 Read-only property, an alias for getcategory(), the category name part of the database ID. More...
 
 prodtype
 Read-only property, an alias for getprodtype(), the product type. More...
 
 did
 Read-only property, an alias for getid(). More...
 
 dstore
 Read-only property, an alias for getdatastore(), the Datastore in which this Datum resides. More...
 
 location
 Read-write property, an alias for getlocation() and setlocation(). More...
 

Member Function Documentation

def produtil.datastore.FileProduct.deliver (   self,
  location = None,
  frominfo = None,
  keep = True,
  logger = None,
  copier = None 
)

Delivers the file to a destination.

Delivers the file to a destination location specified. The origin is in the "frominfo" argument. Delivery is done by produtil.fileop.deliver_file. The keep, copier and logger arguments are passed on unmodified.

Parameters
locationThe new location.
frominfoWhere to get the file from.
keepIf True, the original file is always kept. If False, the original file may be moved to the destination instead of copied.
loggera logging.Logger for log messages
copierPassed to the copier argument of produtil.fileop.deliver_file()
Postcondition
The file is at the location specified, and the database location and availability are updated accordingly.

Definition at line 875 of file datastore.py.

Referenced by produtil.datastore.FileProduct.undeliver().

def produtil.datastore.FileProduct.undeliver (   self,
  delete = True,
  logger = None 
)

Undoes the effect of deliver()

Sets this Product's available attribute to False. If delete=True, will also delete the specified file.

Parameters
deleteif True, the file is deleted
loggera logging.Logger for log messages

Definition at line 863 of file datastore.py.


The documentation for this class was generated from the following file: