Difference between revisions of "Upload of new Software"

From Gcube Wiki
Jump to: navigation, search
(Managed Software Types)
(Software Upload Wizard)
Line 6: Line 6:
 
==Managed Software Types==
 
==Managed Software Types==
 
''SUW'' currently manages 6 defined software types and 1 special use case.
 
''SUW'' currently manages 6 defined software types and 1 special use case.
 +
 +
In most cases the user has to provide:
 +
* List of maven dependencies: groupId, artifactId and artifact version
 +
* Data for deliverables generation
 +
** Maintainers list: First and Last name, email, organization
 +
** List of software changes: ticket number and modification description
 +
** Software usage notes: installation notes, configuration notes, descriptive list of software dependencies , uninstallation notes
 +
** License
  
 
===Web Application===
 
===Web Application===
Line 11: Line 19:
 
Third party applications are supported.
 
Third party applications are supported.
  
 +
'''Wizard input''':
 +
* If working under production scope: Third Party software  [isThirdParty].
 +
* Service data: Service Name [serviceName], Description [serviceDescription], Version (Proposed: 1.0.0) [serviceVersion].
 +
* Web app package data: WebApp Package Name [packageName], Description [packageDescription], Version [packageVersion], entrypoints [entrypointList].
 +
* Web app package files:
 +
** War archive: mandatory, only one allowed
 +
** Install script: optional, more than one allowed
 +
** Uninstall script: optional, more than one allowed
 +
** Misc file: optional, more than one allowed
  
Wizard output:
+
'''Wizard output''':
 
* Provided war archive registered on a maven repository as primary artifact.
 
* Provided war archive registered on a maven repository as primary artifact.
 
* Newly generated Service Archive registered on a maven repository as an artifact with classifier ''servicearchive''.
 
* Newly generated Service Archive registered on a maven repository as an artifact with classifier ''servicearchive''.
Line 21: Line 38:
 
Third party libraries are supported.
 
Third party libraries are supported.
  
====Wizard input====
+
'''Wizard input''':
* Third party selection [isThirdParty].
+
* If working under production scope: Third party software [isThirdParty].
 
* Service data: Service Name [serviceName], Service Description [serviceDescription], Service Version [serviceVersion - default 1.0.0].
 
* Service data: Service Name [serviceName], Service Description [serviceDescription], Service Version [serviceVersion - default 1.0.0].
 
* If not third party software user enters Service Class [serviceClass].
 
* If not third party software user enters Service Class [serviceClass].
Line 32: Line 49:
 
** Misc file: optional, more than one allowed
 
** Misc file: optional, more than one allowed
  
====Wizard output====
+
'''Wizard output''':
 
* Jar archive registered on a maven repository as a primary artifact.
 
* Jar archive registered on a maven repository as a primary artifact.
 
** If multiple jars are provided by the user, these are repackaged into a single archive.
 
** If multiple jars are provided by the user, these are repackaged into a single archive.
Line 53: Line 70:
 
===gCube Plugin===
 
===gCube Plugin===
 
A gCube Plugin is a a set of software components that extends the functionalities of a gCube component.
 
A gCube Plugin is a a set of software components that extends the functionalities of a gCube component.
 +
 +
'''Wizard input''':
 +
* Software data: Software Name [softwareName], Description [softwareDescription], Version [softwareVersion], Service class [serviceClass]
 +
* Patch Target Service data: Service class [targetServiceClass], Service Name [targetServiceName], Service Version [targetServiceVersion], Package Name [targetPackageName], Package Version [targetPackageVersion].
 +
* Plugin files:
 +
** Jar Archive: mandatory, only one allowed
 +
** Install script: optional, more than one allowed
 +
** Uninstall script: optional, more than one allowed
 +
** Reboot script: optional, more than one allowed
 +
** Misc file: optional, more than one allowed
 +
 +
'''Wizard output'''
 +
* The user-uploaded jar archive is registered on the maven target repository as a primary artifact
 +
* A Software archive with a single package containing all user provided files and generated files is registered on the maven target repository with classifier ''servicearchive''
 +
* Newly created Service Profile is registered on the IS
  
 
===gCube WebService===
 
===gCube WebService===
 +
TODO
  
 
===Software Registration===
 
===Software Registration===
 
This Wizard allows the user to register on the Software Gateway any software that is currently uploaded on any infrastructure Maven repository by providing the maven coordinates of the artifact.
 
This Wizard allows the user to register on the Software Gateway any software that is currently uploaded on any infrastructure Maven repository by providing the maven coordinates of the artifact.
  
Wizard output:
+
'''Wizard input''':
 +
* Maven artifact coordinates.
 +
 
 +
'''Wizard output''':
 
* Newly createad Service Profile registered on the IS.
 
* Newly createad Service Profile registered on the IS.
  
Line 65: Line 101:
 
===Web Application===
 
===Web Application===
 
====Service Profile====
 
====Service Profile====
 +
<pre>
 +
if ( [isThirdParty] )
 +
Service->Name:[serviceName]
 +
Service->Description:[serviceDescription]
 +
Service->Version: [serviceVersion]
 +
Service->Class: WebApp
 +
 +
WebApp package
 +
Package->Name: [packageName]
 +
Package->Description: [packageDescription]
 +
Package->Version: [packageVersion]
 +
Package->Type: webapplication
 +
Package->Requirement: Target platform: Tomcat 6.0
 +
Package->Requirement: GHN Requirement: Java1.6
 +
 +
 +
if ( ![isThirdParty] && scope infrastructure == "\d4science.research-infrastructures.eu")
 +
 +
Service->Name:[serviceName]
 +
Service->Description:[serviceDescription]
 +
Service->Version: [serviceVersion]
 +
Service->Class: WebApp
 +
 +
WebApp package
 +
Package->Name: [packageName]
 +
Package->Description: [packageDescription]
 +
Package->Version: [packageVersion]
 +
Package->Type: webapplication
 +
Package->Requirement: Target platform: Tomcat 6.0
 +
Package->Requirement: GHN Requirement: Java1.6
 +
 +
 +
if ( ![isThirdParty] && scope infrastructure == "\gcube")
 +
 +
Service->Name:[serviceName]
 +
Service->Description:[serviceDescription]
 +
Service->Version: [serviceVersion]
 +
Service->Class: WebApp
 +
 +
WebApp package
 +
Package->Name: [packageName]
 +
Package->Description: [packageDescription]
 +
Package->Version: [packageVersion]-SNAPSHOT
 +
Package->Type: webapplication
 +
Package->Requirement: Target platform: Tomcat 6.0
 +
Package->Requirement: GHN Requirement: Java1.6
 +
</pre>
  
 
====pom.xml====
 
====pom.xml====
 +
<pre>
 +
if (third party software)
  
 +
artifactId: [packageName]
 +
groupId: org.gcube.externals
 +
version: [packageVersion]
 +
 +
if (non third party && scope infrastructure == "\d4science.research-infrastructures.eu")
 +
 +
artifactId: [packageName]
 +
groupId: org.gcube.webapps
 +
version: [packageVersion]
 +
 +
if (non third party && scope infrastructure == "\gcube")
 +
 +
artifactId: [packageName]
 +
groupId: org.gcube.webapps
 +
version: [packageVersion]-SNAPSHOT
 +
</pre>
 
===Library===
 
===Library===
 
====Service Profile====
 
====Service Profile====
 +
<pre>
 +
if ([isThirdParty])
 +
 +
Service->Name = [ serviceName ]
 +
Service->Description = [ serviceDescription ]
 +
Service->Version = [ serviceVersion ]
 +
Service->Class = External
 +
 +
One and only Software Package
 +
Package->Name = [ packageName ]
 +
Package->Description = [ packageDescription ]
 +
Package->Version = [ packageVersion ]
 +
Package->Type = "library"
 +
 +
if (![isThirdParty] && scope infrastructure == "\d4science.research-infrastructures.eu")
 +
 +
Service->Name = [ serviceName ]
 +
Service->Description = [ serviceDescription ]
 +
Service->Version = [ serviceVersion ]
 +
Service->Class = [ serviceClass ]
 +
 +
One and only Software Package
 +
Package->Name = [ packageName ]
 +
Package->Description = [ packageDescription ]
 +
Package->Version = [ packageVersion ]
 +
Package->Type = "library"
 +
 +
if (![isThirdParty] && scope infrastructure == "\gcube")
 +
 +
Service->Name = [ serviceName ]
 +
Service->Description = [ serviceDescription ]
 +
Service->Version = [ serviceVersion ]
 +
Service->Class = [ serviceClass ]
 +
 +
One and only Software Package
 +
Package->Name = [ packageName ]
 +
Package->Description = [ packageDescription ]
 +
Package->Version = [ packageVersion ]-SNAPSHOT
 +
Package->Type = "library"
 +
</pre>
  
 
====pom.xml====
 
====pom.xml====
 +
<pre>
 +
If (third party software)
 +
artifactId: [packageName]
 +
groupId: org.gcube.externals
 +
version: [packageVersion]
 +
if (non third party && scope infrastructure == "\d4science.research-infrastructures.eu")
 +
artifactId: [packageName]
 +
groupId: org.gcube.[serviceClass]
 +
version: [packageVersion]
 +
if (non third party && scope infrastructure == "\gcube")
 +
artifactId: [packageName]
 +
groupId: org.gcube.[serviceClass]
 +
version: [packageVersion]-SNAPSHOT
 +
</pre>
  
 
===AnySoftware===
 
===AnySoftware===
Line 97: Line 252:
  
 
====pom.xml====
 
====pom.xml====
 
 
TODO: Rules applied for the generation of the Service Profile and pom.xml files
 

Revision as of 12:07, 29 October 2012

SoftwareUploadWizard (SUW) widget allows a Resource Management Portlet super user to create a new Service resource through a step-by-step wizard.

Software Upload Wizard

TODO: Where SUW can be found in Resource Management Portlet and link to ResourceManagementPortlet user guide page

Managed Software Types

SUW currently manages 6 defined software types and 1 special use case.

In most cases the user has to provide:

  • List of maven dependencies: groupId, artifactId and artifact version
  • Data for deliverables generation
    • Maintainers list: First and Last name, email, organization
    • List of software changes: ticket number and modification description
    • Software usage notes: installation notes, configuration notes, descriptive list of software dependencies , uninstallation notes
    • License

Web Application

A java application utilizing web browser technologies to accomplish one or more tasks over a network, through a web browser.
Third party applications are supported.

Wizard input:

  • If working under production scope: Third Party software [isThirdParty].
  • Service data: Service Name [serviceName], Description [serviceDescription], Version (Proposed: 1.0.0) [serviceVersion].
  • Web app package data: WebApp Package Name [packageName], Description [packageDescription], Version [packageVersion], entrypoints [entrypointList].
  • Web app package files:
    • War archive: mandatory, only one allowed
    • Install script: optional, more than one allowed
    • Uninstall script: optional, more than one allowed
    • Misc file: optional, more than one allowed

Wizard output:

  • Provided war archive registered on a maven repository as primary artifact.
  • Newly generated Service Archive registered on a maven repository as an artifact with classifier servicearchive.
  • Newly createad Service Profile registered on the IS.

Library

A collection of reusable java software packages.
Third party libraries are supported.

Wizard input:

  • If working under production scope: Third party software [isThirdParty].
  • Service data: Service Name [serviceName], Service Description [serviceDescription], Service Version [serviceVersion - default 1.0.0].
  • If not third party software user enters Service Class [serviceClass].
  • Package data: package description [packageName], package description [packageDescription], package version [packageVersion].
  • Package files:
    • Jar archive: mandatory, more than one allowed
    • Install script: optional, more than one allowed
    • Uninstall script: optional, more than one allowed
    • Misc file: optional, more than one allowed

Wizard output:

  • Jar archive registered on a maven repository as a primary artifact.
    • If multiple jars are provided by the user, these are repackaged into a single archive.
  • Newly generated Service Archive, containing all the provided jars, registered on a maven repository with classifier servicearchive.
  • Newly createad Service Profile registered on the IS.

AnySoftware

TODO

gCube Patch

One or more bug fixes for a gCube component.

Wizard input:

  • User provided Patch archive ("tar.gz" archive): must include in the root directory a file named apply.sh and must not include on the root directory files names as the generated deliverables (README, INSTALL, etc.).

Wizard output:

  • A new tar.gz archive is generated including all the files provided with the user uploaded Patch archive, the generated deliverables (Service profile,README, INSTALL, etc.) and the service profile.
  • The generated tar.gz is uploaded on a maven repository with classifier servicearchive.

gCube Plugin

A gCube Plugin is a a set of software components that extends the functionalities of a gCube component.

Wizard input:

  • Software data: Software Name [softwareName], Description [softwareDescription], Version [softwareVersion], Service class [serviceClass]
  • Patch Target Service data: Service class [targetServiceClass], Service Name [targetServiceName], Service Version [targetServiceVersion], Package Name [targetPackageName], Package Version [targetPackageVersion].
  • Plugin files:
    • Jar Archive: mandatory, only one allowed
    • Install script: optional, more than one allowed
    • Uninstall script: optional, more than one allowed
    • Reboot script: optional, more than one allowed
    • Misc file: optional, more than one allowed

Wizard output

  • The user-uploaded jar archive is registered on the maven target repository as a primary artifact
  • A Software archive with a single package containing all user provided files and generated files is registered on the maven target repository with classifier servicearchive
  • Newly created Service Profile is registered on the IS

gCube WebService

TODO

Software Registration

This Wizard allows the user to register on the Software Gateway any software that is currently uploaded on any infrastructure Maven repository by providing the maven coordinates of the artifact.

Wizard input:

  • Maven artifact coordinates.

Wizard output:

  • Newly createad Service Profile registered on the IS.

Deliverables creation rules

Web Application

Service Profile

if ( [isThirdParty] )
	Service->Name:[serviceName]
	Service->Description:[serviceDescription]
	Service->Version: [serviceVersion]
	Service->Class: WebApp

	WebApp package
		Package->Name: [packageName]
		Package->Description: [packageDescription]
		Package->Version: [packageVersion]
		Package->Type: webapplication
		Package->Requirement: Target platform: Tomcat 6.0
		Package->Requirement: GHN Requirement: Java1.6

	
if ( ![isThirdParty] && scope infrastructure == "\d4science.research-infrastructures.eu")
	
	Service->Name:[serviceName]
	Service->Description:[serviceDescription]
	Service->Version: [serviceVersion]
	Service->Class: WebApp

	WebApp package
		Package->Name: [packageName]
		Package->Description: [packageDescription]
		Package->Version: [packageVersion]
		Package->Type: webapplication
		Package->Requirement: Target platform: Tomcat 6.0
		Package->Requirement: GHN Requirement: Java1.6


if ( ![isThirdParty] && scope infrastructure == "\gcube")

	Service->Name:[serviceName]
	Service->Description:[serviceDescription]
	Service->Version: [serviceVersion]
	Service->Class: WebApp
	
	WebApp package
		Package->Name: [packageName]
		Package->Description: [packageDescription]
		Package->Version: [packageVersion]-SNAPSHOT
		Package->Type: webapplication
		Package->Requirement: Target platform: Tomcat 6.0
		Package->Requirement: GHN Requirement: Java1.6

pom.xml

if (third party software)

	artifactId:	[packageName]
	groupId: 	org.gcube.externals
	version:	[packageVersion]

if (non third party && scope infrastructure == "\d4science.research-infrastructures.eu")

	artifactId:	[packageName]
	groupId: 	org.gcube.webapps
	version:	[packageVersion]

if (non third party && scope infrastructure == "\gcube")

	artifactId:	[packageName]
	groupId: 	org.gcube.webapps
	version:	[packageVersion]-SNAPSHOT

Library

Service Profile

if ([isThirdParty])

	Service->Name 		= [ serviceName ]
	Service->Description 	= [ serviceDescription ]
	Service->Version 	= [ serviceVersion ]
	Service->Class 		= External

	One and only Software Package
		Package->Name		= [ packageName ]
		Package->Description	= [ packageDescription ]
		Package->Version	= [ packageVersion ]
		Package->Type		= "library"

if (![isThirdParty] && scope infrastructure == "\d4science.research-infrastructures.eu")

	Service->Name 		= [ serviceName ]
	Service->Description 	= [ serviceDescription ]
	Service->Version 	= [ serviceVersion ]
	Service->Class 		= [ serviceClass ]

	One and only Software Package
		Package->Name		= [ packageName ]
		Package->Description	= [ packageDescription ]
		Package->Version	= [ packageVersion ]
		Package->Type		= "library"

if (![isThirdParty] && scope infrastructure == "\gcube")

	Service->Name 		= [ serviceName ]
	Service->Description 	= [ serviceDescription ]
	Service->Version 	= [ serviceVersion ]
	Service->Class 		= [ serviceClass ]

	One and only Software Package
		Package->Name		= [ packageName ]
		Package->Description	= [ packageDescription ]
		Package->Version	= [ packageVersion ]-SNAPSHOT
		Package->Type		= "library"

pom.xml

If (third party software)
	artifactId: 	[packageName]
	groupId: 	org.gcube.externals
	version: 	[packageVersion]
if (non third party && scope infrastructure == "\d4science.research-infrastructures.eu")
	artifactId: 	[packageName]
	groupId: 	org.gcube.[serviceClass]
	version: 	[packageVersion]
if (non third party && scope infrastructure == "\gcube")
	artifactId: 	[packageName]
	groupId: 	org.gcube.[serviceClass]
	version: 	[packageVersion]-SNAPSHOT

AnySoftware

Service Profile

pom.xml

gCube Patch

Service Profile

pom.xml

gCube Plugin

Service Profile

pom.xml

gCube WebService

Service Profile

pom.xml

Software Registration

Service Profile

pom.xml