org.edg.data.reptor.catalog
Interface ReplicaCatalog

All Known Implementing Classes:
ReplicaCatalogLrcOnlyImpl, ReplicaCatalogWithRliImpl

public interface ReplicaCatalog

Docu

Version:
$Id: ReplicaCatalog.java,v 1.27 2003/09/15 02:03:07 pkunszt Exp $
Author:
Gavin McCance

Method Summary
 void addAlias(java.net.URI guid, java.net.URI lfn)
          add an alias to the rmc
 void addCatalogEntry(java.net.URI guid, java.net.URI surl)
          Create a new mapping in the catalog.
 void addFileInfo(java.net.URI guid, java.net.URI surl, FileInfo info, boolean consistencyCheck)
          Add the file info to the file identified by an SURL.
 void addLfnSurlMapping(java.net.URI lfn, java.net.URI surl)
          Create a logical name to physical name mapping in the catalogs.
 boolean exists(java.net.URI uri)
          Given a URI, check if it is in the grid catalogs.
 java.util.Set getAllStorageFileNames(java.net.URI file)
          Returns the SURLs matching LFN or GUID in the RLS catalog; LRC and RLI.
 FileInfo getFileInfo(java.net.URI file)
          Get the file info of a given file.
 org.edg.data.rls.EdgLocalReplicaCatalog getLocalLRC()
           
 java.util.Set getLocalStorageFileNames(java.net.URI file)
          Returns the SURLs matching LFN or GUID in the local LRC only.
 java.util.Set getLogicalFileNames(java.net.URI uri)
          Retrieve all LFNs for a GUID, a SURL or an LFN.
 org.edg.data.rmc.EdgReplicaMetadataCatalog getRMC()
           
 java.net.URI getSurlForHost(java.net.URI guid, java.lang.String seHost)
           
 void removeAlias(java.net.URI guid, java.net.URI lfn)
          remove an alias from the rmc
 void removeCatalogEntry(java.net.URI guid, java.net.URI surl)
          remove an entry from the local replica catalog
 void removeLfnSurlMapping(java.net.URI lfn, java.net.URI surl)
          Remove a mapping from lfn to surl in the catalog.
 void removeMetadataCatalogEntry(java.net.URI guid, java.net.URI lfn)
          Remove an entry from the Metadata Catalog.
 java.net.URI translateToGuid(java.net.URI uri)
          Given a URI, find a guid that represents it, using the grid catalogs if needed.
 

Method Detail

exists

public boolean exists(java.net.URI uri)
               throws CatalogCommunicationException
Given a URI, check if it is in the grid catalogs. Note: If the URI is a GUID we check for it's existence in the replica location catalog.

Parameters:
uri - the uri to check for.
Returns:
true if the uri exists in the catalog.
CatalogCommunicationException

translateToGuid

public java.net.URI translateToGuid(java.net.URI uri)
                             throws CatalogCommunicationException,
                                    org.edg.data.util.InvalidFileTypeException,
                                    IllegalArgumentException,
                                    LfnDoesNotExistException,
                                    SurlDoesNotExistException,
                                    GUIDDoesNotExistException
Given a URI, find a guid that represents it, using the grid catalogs if needed.

Parameters:
uri - the LFN or SURL to retrieve the GUID of
Returns:
the GUID
Throws:
CatalogCommunicationException - if the there is a problem with the lookup
org.edg.data.util.InvalidFileTypeException
IllegalArgumentException
LfnDoesNotExistException
SurlDoesNotExistException
GUIDDoesNotExistException

getLogicalFileNames

public java.util.Set getLogicalFileNames(java.net.URI uri)
                                  throws CatalogCommunicationException,
                                         org.edg.data.util.InvalidFileTypeException,
                                         SurlDoesNotExistException,
                                         GUIDDoesNotExistException,
                                         IllegalArgumentException,
                                         LfnDoesNotExistException
Retrieve all LFNs for a GUID, a SURL or an LFN. Returns null if uri is null.

Parameters:
uri - the GUID, LFN or SURL to retrieve the LFNs of.
Returns:
a Set of LFN URIs, not containing the GUID.
Throws:
CatalogCommunicationException - if the there is a problem with the lookup.
org.edg.data.util.InvalidFileTypeException - If the uri is not a recognised scheme
SurlDoesNotExistException
GUIDDoesNotExistException
IllegalArgumentException
LfnDoesNotExistException

getAllStorageFileNames

public java.util.Set getAllStorageFileNames(java.net.URI file)
                                     throws CatalogCommunicationException,
                                            org.edg.data.util.InvalidFileTypeException,
                                            GUIDDoesNotExistException,
                                            SurlDoesNotExistException,
                                            LfnDoesNotExistException
Returns the SURLs matching LFN or GUID in the RLS catalog; LRC and RLI. If it gets passed an SURL, it returns all its replicas. (protocol prefixes like gsiftp are converted to 'srm'). Returns null if an invalid file type is specified.

Parameters:
file - the LFN or GUID or SURL to get all replica SURLs of. This should not be null
Returns:
a Set of SURL URI objects.
CatalogCommunicationException
org.edg.data.util.InvalidFileTypeException
GUIDDoesNotExistException
SurlDoesNotExistException
LfnDoesNotExistException

getLocalStorageFileNames

public java.util.Set getLocalStorageFileNames(java.net.URI file)
                                       throws CatalogCommunicationException,
                                              org.edg.data.util.InvalidFileTypeException,
                                              GUIDDoesNotExistException,
                                              LfnDoesNotExistException,
                                              SurlDoesNotExistException
Returns the SURLs matching LFN or GUID in the local LRC only. If it gets passed an SURL, it returns all its replicas. (protocol prefixes like gsiftp are converted to 'srm'). Returns null if an invalid file type is specified.

Parameters:
file - the LFN or GUID or SURL to get all replica SURLs of. This should not be null
Returns:
a Set of SURL URI objects.
CatalogCommunicationException
org.edg.data.util.InvalidFileTypeException
GUIDDoesNotExistException
LfnDoesNotExistException
SurlDoesNotExistException

addCatalogEntry

public void addCatalogEntry(java.net.URI guid,
                            java.net.URI surl)
                     throws CatalogCommunicationException,
                            SurlExistsException,
                            org.edg.data.util.InvalidFileTypeException
Create a new mapping in the catalog. If the guid already exists, all of the logical names are also updated with this mapping.

Parameters:
guid - the guid to add
surl - the surl it is mapped to
Throws:
CatalogCommunicationException - on failure
SurlExistsException - surl already exists
org.edg.data.util.InvalidFileTypeException

addLfnSurlMapping

public void addLfnSurlMapping(java.net.URI lfn,
                              java.net.URI surl)
                       throws org.edg.data.util.InvalidFileTypeException,
                              CatalogCommunicationException,
                              LfnExistsException,
                              SurlDoesNotExistException,
                              GUIDDoesNotExistException,
                              IllegalArgumentException,
                              LfnDoesNotExistException
Create a logical name to physical name mapping in the catalogs. If the lfn already exists but for a different GUID, an exception is thrown. If it is a new lfn, the mappings of all replicas to the surl are also updated.

Parameters:
lfn -
surl -
Throws:
org.edg.data.util.InvalidFileTypeException
CatalogCommunicationException
LfnExistsException
SurlDoesNotExistException
GUIDDoesNotExistException
IllegalArgumentException
LfnDoesNotExistException

removeLfnSurlMapping

public void removeLfnSurlMapping(java.net.URI lfn,
                                 java.net.URI surl)
                          throws CatalogCommunicationException,
                                 SurlDoesNotExistException,
                                 LfnDoesNotExistException
Remove a mapping from lfn to surl in the catalog. If other LFN mappings are around, it does not affect the operation - a GUID will always be there and it may have any number of LFN aliases.

Parameters:
lfn -
surl -
Throws:
CatalogCommunicationException - on failure
SurlDoesNotExistException
LfnDoesNotExistException

removeMetadataCatalogEntry

public void removeMetadataCatalogEntry(java.net.URI guid,
                                       java.net.URI lfn)
                                throws CatalogCommunicationException
Remove an entry from the Metadata Catalog.

Parameters:
guid - The guid for the metadata catalog mapping to remove
lfn - The alias for the mapping to remove
Throws:
CatalogCommunicationException

removeCatalogEntry

public void removeCatalogEntry(java.net.URI guid,
                               java.net.URI surl)
                        throws CatalogCommunicationException,
                               GUIDDoesNotExistException,
                               IllegalArgumentException
remove an entry from the local replica catalog

Parameters:
guid -
surl -
Throws:
CatalogCommunicationException
GUIDDoesNotExistException
IllegalArgumentException

addAlias

public void addAlias(java.net.URI guid,
                     java.net.URI lfn)
              throws org.edg.data.util.InvalidFileTypeException,
                     CatalogCommunicationException,
                     LfnExistsException
add an alias to the rmc

Parameters:
guid -
lfn -
Throws:
CatalogCommunicationException
org.edg.data.util.InvalidFileTypeException
LfnExistsException

removeAlias

public void removeAlias(java.net.URI guid,
                        java.net.URI lfn)
                 throws org.edg.data.util.InvalidFileTypeException,
                        CatalogCommunicationException
remove an alias from the rmc

Parameters:
guid -
lfn -
Throws:
CatalogCommunicationException
org.edg.data.util.InvalidFileTypeException

addFileInfo

public void addFileInfo(java.net.URI guid,
                        java.net.URI surl,
                        FileInfo info,
                        boolean consistencyCheck)
                 throws CatalogCommunicationException,
                        org.edg.data.util.InvalidFileTypeException,
                        InvalidInfoException,
                        GUIDDoesNotExistException
Add the file info to the file identified by an SURL. The file info will be updated if it already exists! Implement it here with RLS attributes.

Parameters:
surl - an SURL.
guid - the GUID.
info -
Throws:
CatalogCommunicationException - if file does not exist.
org.edg.data.util.InvalidFileTypeException
InvalidInfoException
GUIDDoesNotExistException

getSurlForHost

public java.net.URI getSurlForHost(java.net.URI guid,
                                   java.lang.String seHost)
                            throws CatalogCommunicationException,
                                   GUIDDoesNotExistException
CatalogCommunicationException
GUIDDoesNotExistException

getFileInfo

public FileInfo getFileInfo(java.net.URI file)
                     throws CatalogCommunicationException,
                            org.edg.data.util.InvalidFileTypeException,
                            SurlDoesNotExistException,
                            LfnDoesNotExistException
Get the file info of a given file. It can be a surl, lfn or guid. The SEInfo object will only be filled if the file is a surl, i.e. its host is a recognized SE host. Returns null if file does not exist.

Parameters:
file - SURL, GUID or LFN.
Returns:
FileInfo object
Throws:
CatalogCommunicationException - if file is not valid or if it does not exist.
org.edg.data.util.InvalidFileTypeException
SurlDoesNotExistException
LfnDoesNotExistException

getLocalLRC

public org.edg.data.rls.EdgLocalReplicaCatalog getLocalLRC()
                                                    throws CatalogCommunicationException
CatalogCommunicationException

getRMC

public org.edg.data.rmc.EdgReplicaMetadataCatalog getRMC()
                                                  throws CatalogCommunicationException
CatalogCommunicationException