Software Repository Clients
Software Repository Clients
Two clients are available to populate the Software Repository (SR) service with Software Archives (SAs). The first client, named XML Client, is used to populate the SR with the list of SAs that an administrator want to have available in the infrastructure. The second client, named Etics Client, is used to populate the SR with all SAs resulting from the build process performed through Etics.
XML Client
The XML Client is a simple client used to interact with the SR. It provides a single operation that allows to upload SAs to the SR. Please notice that the removal of SAs are not allowed since this operation could compromise the set of dependencies existing among software packages.
How to use:
java org.gcube.vremanagement.softwarerepository.client.XMLClient xmlURL scope reportXMLFileName distributionXMLFileName
The semantic of the parameters is as follow:
- xmlURL: URL of the XML file reporting the Software Archives to store on the Software Repository. The syntax of such a file is reported below.
- scope: the application scope. The application must be one of the scope supported by the Software Repository and identifies which applications are allowed to use each SA.
- reportXMLFileName: the path of the file where the XMLClient logs the information about the submission operation. It is formatted in XML to facilitate programmatic parsing of it.
- distributionXMLFileName: the path of the file where the XMLClient reports the information about the submission operation. It is formatted in XML to facilitate programmatic parsing of it and it includes all information to download software packages from the SR.
Example: java XMLClient http://dlib25.isti.cnr.it/sr/list.xml /gcube/devsec report.xml distribution.xml
The xmlURL has to point to an XML file whose syntax and structure is reported below:
<Archives> <SoftwareArchive> <Class>Class</Class> <Name>Name</Name> <Version>1.0.0</Version> <URL>...</URL> <Description>Description</Description> </SoftwareArchive> <SoftwareArchive> <Class>MyClass</Class> <Name>MyName</Name> <Version>1.0.0</Version> <URL>...</URL> <Description>My Description</Description> </SoftwareArchive> </Archives>
An example of a portion of the reportXMLFileName file is reported below:
<Services> <Service> <URL> ..[URL of the SA uploaded to the SR]../org.gcube.metadata-management.metadatabroker-servicearchive-0.0.0-0.tar.gz </URL> <ID>cfa6d850-997e-11dd-b66d-82c61f8d0a26</ID> <ServiceClass>MetadataManagement</ServiceClass> <ServiceName>MetadataBroker</ServiceName> <ServiceVersion>1.00.00</ServiceVersion> <Status>WARNING</Status> <Operation>UPDATE</Operation> <Timestamp>1228443386548</Timestamp> <ReportURL> ..[URL of the detailed report produced by the SR]../report/05-12-2008/cfa6d850-997e-11dd-b66d-82c61f8d0a26_1228443386548.xml </ReportURL> </Service> </Services>
An example of a portion of the distributionXMLFileName file is reported below:
<Packages> <Package> <ServiceClass>ExternalSoftware</ServiceClass> <ServiceName>commons-pool</ServiceName> <ServiceVersion>1.03.00</ServiceVersion> <PackageName>commons-pool</PackageName> <PackageVersion>1.03.00</PackageVersion> <PackageDescription>Commons Pool provides an Object-pooling API</PackageDescription> <URL> ..[URL to download a SA from the SR]../ExternalSoftware/commons-pool/1/03/00/commons-pool/1.03.00/commons-pool-1.03.00.tar.gz </URL> </Package> </Packages>
Etics Client
The Etics Client has been designed to be used by ETICS after the build process. It can only interact with a Software Repository previously configured in ETICS mode. A SR in Etics mode skips some steps of the validation procedure normally performed by the SR since it is assumed that the same verification are performed by the Etics framework.
If you are not an Etics project administrator, you have to use the XMLClient to submit your own Software Archives.
How to use:
java org.gcube.vremanagement.softwarerepository.client.EticsClient SoftwareRepositoryEPR txtURL reportXMLFileName distributionXMLFileName scope[default:/gcube/devsec]
The semantic of the parameters is as follow:
- SoftwareRepositoryEPR':' the EPR of the Software Repository service, e.g. http://dlib05.isti.cnr.it:8080/wsrf/services/gcube/vremanagement/softwarerepository/SoftwareRepository
- txtURL: URL of the TXT file reporting the Software Archives to store on the Software Repository. For each SA the URL where to download it has to be specified. These URLs must be followed by a line-break and must contain "-servicearchive" in the name. Any other link reported in the TXT file is discarded if it is not compliant with the two described rules.
- reportXMLFileName: the path of the file where the XMLClient logs the information about the submission operation. It is formatted in XML to facilitate programmatic parsing of it.
- distributionXMLFileName: the path of the file where the XMLClient reports the information about the submission operation. It is formatted in XML to facilitate programmatic parsing of it and it includes all information to download software packages from the SR.
- scope: the application scope. The application must be one of the scope supported by the Software Repository and identifies which applications are allowed to use each SA. If omitted the /gcube/devsec scope will be used.
Example:
java org.gcube.vremanagement.softwarerepository.client.EticsClient http://dlib05.isti.cnr.it:8080/wsrf/services/gcube/vremanagement/softwarerepository/SoftwareRepository http://grids16.eng.it/BuildReport/builds/recent%20builds/org.gcube.HEAD/latest/packages.txt report.xml distribution.xml /gcube/devsec
An example of the produced report file can be accessed at [1]
An example of the produced distribution file can be accessed at [2]