Difference between revisions of "Software Repository Clients"

From Gcube Wiki
Jump to: navigation, search
(Etics Client)
 
(25 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
== Software Repository Clients ==
 
== Software Repository Clients ==
  
To submit Software Archive to Software Repository 2 clients are available.
+
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.
  
=== Etics Client ===
+
=== 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.
  
This is normally used by ETICS after the build process.
+
'''How to use:'''
This client can work only with Software Repository properly configured in ETICS mode. This means that some check on Software Repository are skypped.
+
  
You '''should''' use XML client to submit you own Software Archive.
+
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.
  
'''Usage:'''
+
'''Example:'''
 +
java  XMLClient  http://dlib25.isti.cnr.it/sr/list.xml  /gcube/devsec  report.xml  distribution.xml
  
java  org.gcube.vremanagement.softwarerepository.client.EticsClient  ''SoftwareRepositoryEPR'' ''txtURL''  ''ReportXMLfile''  ''distributionFileName''  ''scope[default:/gcube/devsec]''
+
The ''xmlURL'' has to point to an XML file whose syntax and structure is reported below:
 +
<source lang=xml>
 +
<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>
 +
</source>
  
 +
An example of a portion of the ''reportXMLFileName'' file is reported below:
 +
<source lang=xml>
 +
<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>
 +
</source>
  
'''where'''
+
An example of a portion of the ''distributionXMLFileName'' file is reported below:
 +
<source lang=xml>
 +
<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>
 +
</source>
  
  
''SoftwareRepositoryEPR'' is the Software Repository EPR of the service
+
=== Etics Client ===
ex.  http://dlib05.isti.cnr.it:8080/wsrf/services/gcube/vremanagement/softwarerepository/SoftwareRepository
+
  
''txtURL'' is the URL of the txt file with le list of URLs of Software Archive's to store on Software Repository.
+
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.  
The txt must cointains an URL for each row. Each row is analized and only the one with "-servicearchive" contained in the filename will be submitted to Software Repository.
+
  
''Reportfile'' is path of an xml file where the report informations of submission are written.  
+
If you are not an Etics project administrator, you have to use the XMLClient to submit your own Software Archives.
  
''distributionFileName'' is a path of an xml file where the information for distribution site are written.
+
'''How to use:'''
  
''scope'' the scope where the Software Repository is running. If omitted /gcube/devsec scope will be used.
+
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:'''
  
An example of the usage of this this client is:
+
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
  
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 [http://grids16.eng.it/repository_recent_builds/org.gcube.HEAD/BUILD_319/certification.xml]
  
 
+
An example of the produced distribution file can be accessed at [http://grids16.eng.it/repository_recent_builds/org.gcube.HEAD/BUILD_319/distribution.xml]
 
+
An example of the produced report file can be found here: http://grids16.eng.it/repository_recent_builds/org.gcube.HEAD/BUILD_319/certification.xml
+
 
+
An example of the produced report file can be found here: http://grids16.eng.it/repository_recent_builds/org.gcube.HEAD/BUILD_319/distribution.xml
+
 
+
=== XML Client ===
+

Latest revision as of 20:21, 9 December 2008

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  1. SoftwareRepositoryEPR':' the EPR of the Software Repository service, e.g. http://dlib05.isti.cnr.it:8080/wsrf/services/gcube/vremanagement/softwarerepository/SoftwareRepository
  2. 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.
  3. 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.
  4. 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.
  5. 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]