mixlib-install 2.1.7 → 2.1.8
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
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
|