mixlib-install 2.1.7 → 2.1.8
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40fa6c0a0b63502b8c38218361ecff0c041ebbd7
|
4
|
+
data.tar.gz: e151caa4b979c2e561c5520d860bfc4e0f544e9a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4441ee64cfed4d6cc63ccf209def59e4f3866393b389d9cbd70c3211a7332e1d4b664a1e21ed972b6062d3bf423ec16686c18efb92dee48803d8f3c05726efcb
|
7
|
+
data.tar.gz: 8f7c097bd4c36ab4474dec1007d82da49b02d015be101575348cca832ed503e6063b5123ed3536c78cc9ac9779234859dd8283678d88841a8bfc67926649c7a3
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [2.1.8]
|
4
|
+
- Query performance optimizations
|
5
|
+
- Add ChefClientFeature support to the MSI install script
|
6
|
+
|
3
7
|
## [2.1.7]
|
4
8
|
- Add support for passing arguments to the MSI in install scripts
|
5
9
|
- Add platform version compatibility support for Windows (including desktop versions)
|
@@ -47,10 +47,23 @@ module Mixlib
|
|
47
47
|
end
|
48
48
|
|
49
49
|
#
|
50
|
-
# Gets available versions from Artifactory via AQL.
|
50
|
+
# Gets available versions from Artifactory via AQL. Returning
|
51
|
+
# simply the list of versions.
|
51
52
|
#
|
52
53
|
# @return [Array<String>] Array of available versions
|
53
54
|
def available_versions
|
55
|
+
# We are only including a single property, version and that exists
|
56
|
+
# under the properties in the following structure:
|
57
|
+
# "properties" => [ {"key"=>"omnibus.version", "value"=>"12.13.3"} ]
|
58
|
+
ver_list = versions.map { |i| extract_version_from_response(i) }
|
59
|
+
ver_list.uniq
|
60
|
+
end
|
61
|
+
|
62
|
+
#
|
63
|
+
# Get available versions from Artifactory via AQL. Returning the full API response
|
64
|
+
#
|
65
|
+
# @return [Array<Array<Hash>] Build records for available versions
|
66
|
+
def versions
|
54
67
|
items = get("/api/v1/#{options.channel}/#{omnibus_project}/versions")["results"]
|
55
68
|
|
56
69
|
# Filter out the partial builds if we are in :unstable channel
|
@@ -63,12 +76,7 @@ module Mixlib
|
|
63
76
|
# populated with the build record if "artifact.module.build" exists.
|
64
77
|
items.reject! { |i| i["artifacts"].nil? }
|
65
78
|
end
|
66
|
-
|
67
|
-
# We are only including a single property, version and that exists
|
68
|
-
# under the properties in the following structure:
|
69
|
-
# "properties" => [ {"key"=>"omnibus.version", "value"=>"12.13.3"} ]
|
70
|
-
items.map! { |i| i["properties"].first["value"] }
|
71
|
-
items.uniq
|
79
|
+
items
|
72
80
|
end
|
73
81
|
|
74
82
|
#
|
@@ -79,7 +87,7 @@ module Mixlib
|
|
79
87
|
# Get the list of builds from the REST api.
|
80
88
|
# We do this because a user in the readers group does not have
|
81
89
|
# permissions to run aql against builds.
|
82
|
-
builds =
|
90
|
+
builds = versions
|
83
91
|
|
84
92
|
if builds.nil?
|
85
93
|
raise NoArtifactsError, <<-MSG
|
@@ -87,30 +95,15 @@ Can not find any builds for #{options.product_name} in #{endpoint}.
|
|
87
95
|
MSG
|
88
96
|
end
|
89
97
|
|
90
|
-
#
|
91
|
-
#
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
# ]
|
97
|
-
# }
|
98
|
-
# First we sort based on started
|
99
|
-
builds["buildsNumbers"].sort_by! { |b| b["started"] }.reverse!
|
100
|
-
|
101
|
-
# Now check if the build is in the requested channel or not
|
102
|
-
# Note that if you do this for any channel other than :unstable
|
103
|
-
# it will run a high number of queries but it is fine because we
|
104
|
-
# are using artifactory only for :unstable channel
|
105
|
-
builds["buildsNumbers"].each do |build|
|
106
|
-
version = build["uri"].delete("/")
|
107
|
-
artifacts = artifacts_for_version(version)
|
108
|
-
|
109
|
-
return artifacts unless artifacts.empty?
|
110
|
-
end
|
98
|
+
# Sort by created data
|
99
|
+
# TODO: Shouldn't we sort by version?
|
100
|
+
builds.sort_by! { |b| b["created"] }.reverse!
|
101
|
+
version = extract_version_from_response(builds.first)
|
102
|
+
artifacts_for_version(version)
|
103
|
+
end
|
111
104
|
|
112
|
-
|
113
|
-
[]
|
105
|
+
def extract_version_from_response(response)
|
106
|
+
response["properties"].find { |item| item["key"] == "omnibus.version" }["value"]
|
114
107
|
end
|
115
108
|
|
116
109
|
#
|
@@ -149,9 +142,7 @@ Can not find any builds for #{options.product_name} in #{endpoint}.
|
|
149
142
|
http = Net::HTTP.new(uri.host, uri.port)
|
150
143
|
http.use_ssl = (uri.scheme == "https")
|
151
144
|
full_path = File.join(uri.path, url)
|
152
|
-
|
153
145
|
res = http.request(create_http_request(full_path))
|
154
|
-
|
155
146
|
res.value
|
156
147
|
JSON.parse(res.body)
|
157
148
|
end
|
@@ -107,10 +107,10 @@ set-alias install -value Install-Project
|
|
107
107
|
|
108
108
|
Function Install-ChefMsi($msi, $addlocal) {
|
109
109
|
if ($addlocal -eq "service") {
|
110
|
-
$p = Start-Process -FilePath "msiexec.exe" -ArgumentList "/qn /i $msi ADDLOCAL=`"ChefServiceFeature`"" -Passthru -Wait
|
110
|
+
$p = Start-Process -FilePath "msiexec.exe" -ArgumentList "/qn /i $msi ADDLOCAL=`"ChefClientFeature,ChefServiceFeature`"" -Passthru -Wait
|
111
111
|
}
|
112
112
|
ElseIf ($addlocal -eq "task") {
|
113
|
-
$p = Start-Process -FilePath "msiexec.exe" -ArgumentList "/qn /i $msi ADDLOCAL=`"ChefSchTaskFeature`"" -Passthru -Wait
|
113
|
+
$p = Start-Process -FilePath "msiexec.exe" -ArgumentList "/qn /i $msi ADDLOCAL=`"ChefClientFeature,ChefSchTaskFeature`"" -Passthru -Wait
|
114
114
|
}
|
115
115
|
ElseIf ($addlocal -eq "auto") {
|
116
116
|
$p = Start-Process -FilePath "msiexec.exe" -ArgumentList "/qn /i $msi" -Passthru -Wait
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mixlib-install
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thom May
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-12-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: artifactory
|