mixlib-install 1.2.4 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +41 -0
- data/CHANGELOG.md +6 -2
- data/README.md +4 -15
- data/Rakefile +2 -12
- data/acceptance/.gitignore +7 -1
- data/acceptance/Gemfile +0 -8
- data/acceptance/README.md +6 -0
- data/acceptance/bourne/.acceptance/acceptance-cookbook/.gitignore +8 -0
- data/acceptance/{unstable → bourne}/.acceptance/acceptance-cookbook/metadata.rb +1 -0
- data/acceptance/bourne/.acceptance/acceptance-cookbook/recipes/destroy.rb +3 -0
- data/acceptance/bourne/.acceptance/acceptance-cookbook/recipes/provision.rb +11 -0
- data/acceptance/bourne/.acceptance/acceptance-cookbook/recipes/verify.rb +11 -0
- data/acceptance/bourne/inspec/verify.rb +3 -0
- data/acceptance/bourne/terraform/application.tf +78 -0
- data/acceptance/bourne/terraform/aws.tf +8 -0
- data/acceptance/bourne/terraform/variables.tf +27 -0
- data/acceptance/{current → powershell}/.acceptance/acceptance-cookbook/.gitignore +1 -1
- data/acceptance/{current → powershell}/.acceptance/acceptance-cookbook/metadata.rb +1 -0
- data/acceptance/powershell/.acceptance/acceptance-cookbook/recipes/destroy.rb +3 -0
- data/acceptance/powershell/.acceptance/acceptance-cookbook/recipes/provision.rb +12 -0
- data/acceptance/powershell/.acceptance/acceptance-cookbook/recipes/verify.rb +12 -0
- data/acceptance/powershell/inspec/verify.rb +3 -0
- data/acceptance/powershell/terraform/application.tf +89 -0
- data/acceptance/powershell/terraform/aws.tf +8 -0
- data/acceptance/powershell/terraform/variables.tf +16 -0
- data/ci/before-script.sh +31 -0
- data/ci/es-infrastructure.pem.enc +0 -0
- data/lib/mixlib/install.rb +0 -10
- data/lib/mixlib/install/backend.rb +2 -7
- data/lib/mixlib/install/backend/{artifactory.rb → package_router.rb} +52 -100
- data/lib/mixlib/install/generator/base.rb +1 -2
- data/lib/mixlib/install/generator/bourne.rb +1 -13
- data/lib/mixlib/install/generator/powershell.rb +2 -25
- data/lib/mixlib/install/generator/powershell/scripts/get_project_metadata.ps1.erb +1 -1
- data/lib/mixlib/install/options.rb +3 -17
- data/lib/mixlib/install/script_generator.rb +1 -0
- data/lib/mixlib/install/version.rb +1 -1
- data/mixlib-install.gemspec +4 -3
- metadata +51 -32
- data/acceptance/current/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -3
- data/acceptance/current/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -3
- data/acceptance/current/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -3
- data/acceptance/current/.kitchen.yml +0 -41
- data/acceptance/unstable/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/unstable/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -3
- data/acceptance/unstable/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -3
- data/acceptance/unstable/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -3
- data/acceptance/unstable/.kitchen.yml +0 -41
- data/config.ru +0 -7
- data/lib/mixlib/install/backend/bintray.rb +0 -298
- data/lib/mixlib/install/backend/omnitruck.rb +0 -75
- data/lib/mixlib/install/generator/bourne/scripts/artifactory_urls.sh.erb +0 -28
- data/lib/mixlib/install/generator/powershell/scripts/get_project_metadata_for_artifactory.ps1.erb +0 -75
@@ -1,75 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Patrick Wright (<patrick@chef.io>)
|
3
|
-
# Copyright:: Copyright (c) 2015 Chef, Inc.
|
4
|
-
# License:: Apache License, Version 2.0
|
5
|
-
#
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
# you may not use this file except in compliance with the License.
|
8
|
-
# You may obtain a copy of the License at
|
9
|
-
#
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
#
|
18
|
-
|
19
|
-
require "net/http"
|
20
|
-
require "json"
|
21
|
-
require "mixlib/install/artifact_info"
|
22
|
-
require "mixlib/install/backend/base"
|
23
|
-
|
24
|
-
module Mixlib
|
25
|
-
class Install
|
26
|
-
class Backend
|
27
|
-
class Omnitruck < Base
|
28
|
-
ENDPOINT = "https://omnitruck.chef.io/".freeze
|
29
|
-
|
30
|
-
def endpoint
|
31
|
-
@endpoint ||= ENV.fetch("OMNITRUCK_ENDPOINT", ENDPOINT)
|
32
|
-
end
|
33
|
-
|
34
|
-
def available_artifacts
|
35
|
-
# If we are querying a single platform we need to call metadata
|
36
|
-
# endpoint otherwise we need to call versions endpoint in omnitruck
|
37
|
-
if options.platform
|
38
|
-
build = omnitruck_get("metadata", p: options.platform,
|
39
|
-
pv: options.platform_version,
|
40
|
-
m: options.architecture,
|
41
|
-
v: options.product_version
|
42
|
-
)
|
43
|
-
ArtifactInfo.from_json(build,
|
44
|
-
platform: options.platform,
|
45
|
-
platform_version: options.platform_version,
|
46
|
-
architecture: options.architecture
|
47
|
-
)
|
48
|
-
else
|
49
|
-
builds = omnitruck_get("versions", v: options.product_version)
|
50
|
-
ArtifactInfo.from_metadata_map(builds)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
private
|
55
|
-
|
56
|
-
def omnitruck_get(resource, parameters)
|
57
|
-
uri = URI.parse(endpoint)
|
58
|
-
http = Net::HTTP.new(uri.host, uri.port)
|
59
|
-
http.use_ssl = (uri.scheme == "https")
|
60
|
-
|
61
|
-
path = "/#{options.channel}/#{options.product_name}/#{resource}"
|
62
|
-
full_path = [path, URI.encode_www_form(parameters)].join("?")
|
63
|
-
request = Net::HTTP::Get.new(full_path)
|
64
|
-
request["Accept"] = "application/json"
|
65
|
-
|
66
|
-
res = http.request(request)
|
67
|
-
|
68
|
-
# Raise if response is not 2XX
|
69
|
-
res.value
|
70
|
-
res.body
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
# artifactory_urls.sh
|
2
|
-
############
|
3
|
-
# This section sets up the information for a build to be installed from artifactory
|
4
|
-
# then uses $platform, $platform_version and $machine to select the correct
|
5
|
-
# version.
|
6
|
-
#
|
7
|
-
# Inputs:
|
8
|
-
# $platform:
|
9
|
-
# $platform_version:
|
10
|
-
# $machine:
|
11
|
-
#
|
12
|
-
# Outputs:
|
13
|
-
# $download_url:
|
14
|
-
# $sha256:
|
15
|
-
############
|
16
|
-
|
17
|
-
<% artifacts.each do |artifact| %>
|
18
|
-
artifact_info_dir="$tmp_dir/artifact_info/<%= File.join(artifact.platform, artifact.platform_version, artifact.architecture)%>"
|
19
|
-
mkdir -p $artifact_info_dir
|
20
|
-
touch "$artifact_info_dir/artifact_info"
|
21
|
-
echo "url <%= artifact.url%>" >> "$artifact_info_dir/artifact_info"
|
22
|
-
echo "sha256 <%= artifact.sha256%>" >> "$artifact_info_dir/artifact_info"
|
23
|
-
<% end %>
|
24
|
-
|
25
|
-
artifact_info_for_platform="$tmp_dir/artifact_info/$platform/$platform_version/$machine/artifact_info"
|
26
|
-
|
27
|
-
download_url=`awk '$1 == "url" { print $2 }' "$artifact_info_for_platform"`
|
28
|
-
sha256=`awk '$1 == "sha256" { print $2 }' "$artifact_info_for_platform"`
|
data/lib/mixlib/install/generator/powershell/scripts/get_project_metadata_for_artifactory.ps1.erb
DELETED
@@ -1,75 +0,0 @@
|
|
1
|
-
function Get-ProjectMetadata {
|
2
|
-
<#
|
3
|
-
.SYNOPSIS
|
4
|
-
Get metadata for a Chef Software, Inc. project
|
5
|
-
.DESCRIPTION
|
6
|
-
Get metadata for project
|
7
|
-
.EXAMPLE
|
8
|
-
iex (new-object net.webclient).downloadstring('https://omnitruck.chef.io/install.ps1'); Get-ProjectMetadata -project chef -channel stable
|
9
|
-
|
10
|
-
Gets the download url and SHA256 checksum for the latest stable release of Chef.
|
11
|
-
.EXAMPLE
|
12
|
-
iex (irm 'https://omnitruck.chef.io/install.ps1'); Get-ProjectMetadata -project chefdk -channel stable -version 0.8.0
|
13
|
-
|
14
|
-
Gets the download url, and SHA256 checksum for ChefDK 0.8.0.
|
15
|
-
#>
|
16
|
-
[cmdletbinding()]
|
17
|
-
param (
|
18
|
-
# Base url to retrieve metadata from.
|
19
|
-
[uri]$base_server_uri = '<%= base_url %>',
|
20
|
-
[string]
|
21
|
-
# Project to install
|
22
|
-
[string]
|
23
|
-
$project = 'chef',
|
24
|
-
# Version of the application to install
|
25
|
-
# This parameter is optional, if not supplied it will provide the latest version,
|
26
|
-
# and if an iteration number is not specified, it will grab the latest available iteration.
|
27
|
-
# Partial version numbers are also acceptable (using v=11
|
28
|
-
# will grab the latest 11.x client which matches the other flags).
|
29
|
-
[string]
|
30
|
-
$version,
|
31
|
-
# Release channel to install from
|
32
|
-
$channel = 'unstable',
|
33
|
-
# The following legacy switches are just aliases for the current channel
|
34
|
-
[switch]
|
35
|
-
$prerelease,
|
36
|
-
[switch]
|
37
|
-
$nightlies,
|
38
|
-
[validateset('auto', 'i386', 'x86_64')]
|
39
|
-
[string]
|
40
|
-
$architecture = 'auto'
|
41
|
-
)
|
42
|
-
|
43
|
-
# PowerShell is only on Windows ATM
|
44
|
-
$platform = 'windows'
|
45
|
-
Write-Verbose "Platform: $platform"
|
46
|
-
|
47
|
-
$platform_version = Get-PlatformVersion
|
48
|
-
Write-Verbose "Platform Version: $platform_version"
|
49
|
-
|
50
|
-
if ($architecture -eq 'auto') {
|
51
|
-
$architecture = Get-PlatformArchitecture
|
52
|
-
}
|
53
|
-
|
54
|
-
Write-Verbose "Architecture: $architecture"
|
55
|
-
Write-Verbose "Project: $project"
|
56
|
-
|
57
|
-
<% artifacts.each do |artifact| %>
|
58
|
-
$artifact_info_dir = "$($env:temp)/artifact_info/<%= File.join(artifact.platform, artifact.platform_version, artifact.architecture)%>"
|
59
|
-
New-Item -ItemType directory -Path $artifact_info_dir -force
|
60
|
-
New-Item -ItemType file "$($artifact_info_dir)/artifact_info" -force
|
61
|
-
"url <%= artifact.url%>" | out-file "$artifact_info_dir/artifact_info"
|
62
|
-
"sha256 <%= artifact.sha256%>" | out-file "$artifact_info_dir/artifact_info" -Append
|
63
|
-
<% end %>
|
64
|
-
|
65
|
-
$artifact_info_for_platform = Get-Content "$($env:temp)/artifact_info/$($platform)/$($platform_version)/$($architecture)/artifact_info"
|
66
|
-
|
67
|
-
$package_metadata = ($artifact_info_for_platform).trim() -split '\n' |
|
68
|
-
foreach { $hash = @{} } {$key, $value = $_ -split '\s+'; $hash.Add($key, $value)} {$hash}
|
69
|
-
|
70
|
-
Write-Verbose "Project details: "
|
71
|
-
foreach ($key in $package_metadata.keys) {
|
72
|
-
Write-Verbose "`t$key = $($package_metadata[$key])"
|
73
|
-
}
|
74
|
-
$package_metadata
|
75
|
-
}
|