add an nexus api example snippet to check for a component existence
This commit is contained in:
		
							parent
							
								
									c12829cd83
								
							
						
					
					
						commit
						e7ddf7a981
					
				
							
								
								
									
										54
									
								
								README.md
								
								
								
								
							
							
						
						
									
										54
									
								
								README.md
								
								
								
								
							|  | @ -13,7 +13,7 @@ This will: | |||
|   * Setup an Active Directory LDAP user authentication source (when `config_authentication='ldap'` is set inside the `provision-nexus.sh` file). | ||||
|   * For more details look inside the [provision/provision-nexus](provision/provision-nexus) directory. | ||||
| * Setup nginx as a Nexus HTTPS proxy and static file server. | ||||
| * Test the installed repositories by [using and publishing to them](provision/test.sh). | ||||
| * Test the installed repositories by using and publishing to them (see the `use-*` files). | ||||
| 
 | ||||
| **NB** If you are new to Groovy, be sure to check the [Groovy Learn X in Y minutes page](https://learnxinyminutes.com/docs/groovy/). | ||||
| 
 | ||||
|  | @ -44,6 +44,58 @@ one of the example accounts, e.g. `alice.doe` and password `password`). | |||
| **NB** nginx is setup with a self-signed certificate that you have to trust before being | ||||
| able to access the local Nexus home page. | ||||
| 
 | ||||
| # Notes | ||||
| 
 | ||||
| ## Check for a component existence | ||||
| 
 | ||||
| With bash, [HTTPie](https://httpie.org/) and [jq](https://stedolan.github.io/jq/): | ||||
| 
 | ||||
| ```bash | ||||
| function nexus-component-exists { | ||||
|   [ \ | ||||
|     "$( | ||||
|       http \ | ||||
|         get \ | ||||
|         https://nexus.example.com/service/siesta/rest/beta/search \ | ||||
|         "repository==$1" \ | ||||
|         "name==$2" \ | ||||
|         "version==$3" \ | ||||
|       | jq -r .items[].name)" == "$2" \ | ||||
|   ] | ||||
| } | ||||
| 
 | ||||
| if nexus-component-exists npm-hosted hello-world 1.0.0; then | ||||
|   echo 'component exists' | ||||
| else | ||||
|   echo 'component does not exists' | ||||
| fi | ||||
| ``` | ||||
| 
 | ||||
| With PowerShell: | ||||
| 
 | ||||
| ```powershell | ||||
| function Test-NexusComponent { | ||||
|   param( | ||||
|     [string]$repository, | ||||
|     [string]$name, | ||||
|     [string]$version) | ||||
|   $items = (Invoke-RestMethod ` | ||||
|     -Method Get ` | ||||
|     -Uri https://nexus.example.com/service/siesta/rest/beta/search ` | ||||
|     -Body @{ | ||||
|       repository = $repository | ||||
|       name = $name | ||||
|       version = $version | ||||
|     }).items | ||||
|   $items.Count -and ($items.name -eq $name) | ||||
| } | ||||
| 
 | ||||
| if (Test-NexusComponent npm-hosted hello-world 1.0.0) { | ||||
|   Write-Host 'component exists' | ||||
| } else { | ||||
|   Write-Host 'component does not exists' | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| # Troubleshooting | ||||
| 
 | ||||
|  |  | |||
|  | @ -7,11 +7,14 @@ config_fqdn=$(hostname --fqdn) | |||
| cat <<EOF | ||||
| nexus is running at: | ||||
| 
 | ||||
|    http://localhost:8081 | ||||
|    https://$config_fqdn | ||||
| 
 | ||||
| use the admin/admin123 credentials to login. | ||||
| 
 | ||||
| the api browser at: | ||||
| 
 | ||||
|    https://$config_fqdn/swagger-ui/ | ||||
| 
 | ||||
| the logs are at: | ||||
| 
 | ||||
|    /opt/nexus/nexus3/log/ | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue