manageiq-smartstate 0.10.1 → 0.11.1

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
  SHA256:
3
- metadata.gz: 287bd411a014fb2fbf294e846486617f573730b3c14fa49a229e694f7e2dba74
4
- data.tar.gz: 865841e4d859e72c3f0a5231c5c55bd8b1ebb1b58f720657772683a7b731c1af
3
+ metadata.gz: f38cf89d288bc86350bd4f5ec8c36e815acb87bf4f17d0f360223678241819dd
4
+ data.tar.gz: a9f67154e219a04b871400d9a4113d9e68ddf7ba2a7b782a81660017f414fd14
5
5
  SHA512:
6
- metadata.gz: eaa83432959f0c5916064a88d01e894e8c4227ac85a1fee9744e7b83e1e153d617881651b822bd721692f8bc779c5e5652c73d001eb15dce74c986e48a234e3e
7
- data.tar.gz: 3b5afd09407165a3948e745a77036537fa588786611cf2b2d4673ea5f7f012a4a627b9142d3c4deef8dc82081067ab20826a023d50c96f13cd1718ce659811bf
6
+ metadata.gz: 33a04e5b561bd8fa5367354de7941642e8ca8912fc4bf59d5c9cc9d386898fc57268d49b975988c6b6c8a260b765ac00af65987e5dd9a14825a45227fa01c0bf
7
+ data.tar.gz: bffa12eaf9fb6c9572954a8e279d3e85da9b40ba690ccd0cf5d11c0218226ebf6517d03c0206c54507ac6f8a6313802c3e661ea3ca5e85f22e277d57c6c45b58
@@ -11,12 +11,14 @@ jobs:
11
11
  strategy:
12
12
  matrix:
13
13
  ruby-version:
14
- - '3.0'
15
14
  - '3.1'
15
+ - '3.3'
16
16
  env:
17
17
  CC_TEST_REPORTER_ID: "${{ secrets.CC_TEST_REPORTER_ID }}"
18
18
  steps:
19
19
  - uses: actions/checkout@v4
20
+ - name: Set up system
21
+ run: bin/before_install
20
22
  - name: Set up Ruby
21
23
  uses: ruby/setup-ruby@v1
22
24
  with:
@@ -26,6 +28,6 @@ jobs:
26
28
  - name: Run tests
27
29
  run: bundle exec rake
28
30
  - name: Report code coverage
29
- if: ${{ github.ref == 'refs/heads/master' && matrix.ruby-version == '3.1' }}
31
+ if: ${{ github.ref == 'refs/heads/master' && matrix.ruby-version == '3.3' }}
30
32
  continue-on-error: true
31
33
  uses: paambaati/codeclimate-action@v9
@@ -0,0 +1,8 @@
1
+ #!/bin/bash
2
+
3
+ if [ -n "$CI" ]; then
4
+ echo "== Installing system packages =="
5
+ sudo apt-get update
6
+ sudo apt-get install -y librpm-dev
7
+ echo
8
+ fi
@@ -33,6 +33,8 @@ class MiqOpenStackImage
33
33
 
34
34
  def miq_vm
35
35
  @miq_vm ||= begin
36
+ require "MiqVm/MiqVm"
37
+
36
38
  @temp_image_file = get_image_file
37
39
  hardware = "scsi0:0.present = \"TRUE\"\n"
38
40
  hardware += "scsi0:0.filename = \"#{@temp_image_file.path}\"\n"
@@ -161,6 +161,8 @@ class MiqOpenStackInstance
161
161
  def miq_vm
162
162
  raise "Instance: #{instance.id}, does not have snapshot reference." unless snapshot_image_id
163
163
  @miq_vm ||= begin
164
+ require "MiqVm/MiqVm"
165
+
164
166
  @temp_image_file = get_image_file(snapshot_image_id)
165
167
  hardware = "scsi0:0.present = \"TRUE\"\n"
166
168
  hardware += "scsi0:0.filename = \"#{@temp_image_file.path}\"\n"
@@ -63,7 +63,7 @@ module MiqSqlite3DB
63
63
  return if @type != "table" || @name[0..6] == "sqlite_" # Names beginning with sqlite_ are internal to engine
64
64
  @columns = []
65
65
  sql = @sql.gsub(/[\n\r]/, "")
66
- re1 = /\s*CREATE\s+TABLE\s+(\w+)\s*\((.*)\)\s*/
66
+ re1 = /\s*CREATE\s+TABLE\s+'?(\w+)'?\s*\((.*)\)\s*/
67
67
  m = re1.match(sql)
68
68
  tname = m[1].to_s.chomp
69
69
  raise "Inconsistent Table Name" if tname != @name
@@ -1,5 +1,5 @@
1
1
  module ManageIQ
2
2
  module Smartstate
3
- VERSION = "0.10.1".freeze
3
+ VERSION = "0.11.1".freeze
4
4
  end
5
5
  end
@@ -6,7 +6,7 @@ require 'metadata/linux/MiqConaryPackages'
6
6
 
7
7
  module MiqLinux
8
8
  class Packages
9
- attr_accessor :fs
9
+ attr_accessor :fs, :packages
10
10
  #
11
11
  # Debian based packageing.
12
12
  #
@@ -155,9 +155,13 @@ module MiqLinux
155
155
  #
156
156
  def procRPM(dbDir)
157
157
  $log.debug "Processing RPM package database"
158
- rpmp = MiqRpmPackages.new(@fs, File.join(dbDir, "Packages"))
159
- rpmp.each { |p| @packages << p }
160
- rpmp.close
158
+
159
+ rpmp = MiqRpmPackages.new(@fs, dbDir)
160
+ begin
161
+ rpmp.each { |p| @packages << p }
162
+ ensure
163
+ rpmp.close
164
+ end
161
165
  end
162
166
 
163
167
  #
@@ -0,0 +1,151 @@
1
+ require 'binary_struct'
2
+ require 'manageiq/gems/pending'
3
+ require 'util/miq-hash_struct'
4
+ require 'db/MiqBdb/MiqBdb'
5
+ require 'miq_unicode'
6
+
7
+ class MiqRpmPackages
8
+ class Bdb < MiqRpmPackages
9
+ using ManageIQ::UnicodeString
10
+
11
+ #
12
+ # The data types we support.
13
+ #
14
+ RPM_INT32_TYPE = 4
15
+ RPM_STRING_TYPE = 6
16
+ RPM_STRING_ARRAY_TYPE = 8
17
+ RPM_I18NSTRING_TYPE = 9
18
+
19
+ #
20
+ # The things we care about.
21
+ #
22
+ NAME = 1000
23
+ VERSION = 1001
24
+ RELEASE = 1002
25
+ SUMMARY = 1004
26
+ DESCRIPTION = 1005
27
+ BUILDTIME = 1006
28
+ INSTALLTIME = 1008
29
+ VENDOR = 1011
30
+ GROUP = 1016
31
+ URL = 1020
32
+ ARCH = 1022
33
+ REQUIRES = 1049
34
+
35
+ TAGIDS = {
36
+ 1000 => "name",
37
+ 1001 => "version",
38
+ 1002 => "release",
39
+ 1004 => "summary",
40
+ 1005 => "description",
41
+ 1006 => "buildtime",
42
+ 1008 => "installtime",
43
+ 1011 => "vendor",
44
+ 1016 => "category", # group
45
+ 1020 => "url",
46
+ 1022 => "arch",
47
+ 1049 => "depends", # requires
48
+ }
49
+
50
+ #
51
+ # Nubbers on disk are in network byte order.
52
+ #
53
+ RPML_HEADER = BinaryStruct.new([
54
+ 'N', 'num_index',
55
+ "N", 'num_data'
56
+ ])
57
+ RPML_HEADER_LEN = RPML_HEADER.size
58
+
59
+ ENTRY_INFO = BinaryStruct.new([
60
+ 'N', 'tag',
61
+ 'N', 'ttype',
62
+ 'N', 'offset',
63
+ 'N', 'count'
64
+ ])
65
+ ENTRY_INFO_LEN = ENTRY_INFO.size
66
+
67
+ def initialize(fs, dbFile)
68
+ @pkgDb = MiqBerkeleyDB::MiqBdb.new(dbFile, fs)
69
+ # Pre-read all pages into the bdb cache, as we will be processing all of them anyway.
70
+ @pkgDb.readAllPages
71
+ end
72
+
73
+ def each
74
+ @pkgDb.each_value do |v|
75
+ next if v.length <= RPML_HEADER_LEN
76
+
77
+ hdr = RPML_HEADER.decode(v)
78
+
79
+ offset = RPML_HEADER_LEN + (ENTRY_INFO_LEN * hdr['num_index'])
80
+ if v.length != offset + hdr['num_data']
81
+ $log.debug "record length = #{v.length}"
82
+ $log.debug "num_index = #{hdr['num_index']}"
83
+ $log.debug "num_data = #{hdr['num_data']}"
84
+ $log.error "Invalid or corrupt RPM database record"
85
+ next
86
+ end
87
+
88
+ data = v[offset, hdr['num_data']]
89
+ pkg = {}
90
+
91
+ eis = ENTRY_INFO.decode(v[RPML_HEADER_LEN..-1], hdr['num_index'])
92
+ eis.each do |ei|
93
+ tag = TAGIDS[ei['tag']]
94
+ next if tag.nil?
95
+ pkg[tag] = getVal(data, ei)
96
+ pkg[tag] = convert(tag, pkg[tag])
97
+ end
98
+ pkg['installed'] = true unless pkg.empty?
99
+ yield(MiqHashStruct.new(pkg))
100
+ end
101
+ end # def each
102
+
103
+ def close
104
+ @pkgDb.close
105
+ end
106
+
107
+ private
108
+
109
+ def time_tag?(tag)
110
+ ['installtime', 'buildtime'].include?(tag)
111
+ end
112
+
113
+ def convert(tag, val)
114
+ time_tag?(tag) ? Time.at(val).utc : val
115
+ end
116
+
117
+ def getVal(data, ei)
118
+ case ei['ttype']
119
+ when RPM_INT32_TYPE then return(getInt32Val(data, ei['offset']))
120
+ when RPM_STRING_TYPE then return(getStringVal(data, ei['offset']))
121
+ when RPM_STRING_ARRAY_TYPE then return(getStringArray(data, ei['offset'], ei['count']).join("\n"))
122
+ when RPM_I18NSTRING_TYPE then return(getStringArray(data, ei['offset'], ei['count']).join("\n").AsciiToUtf8)
123
+ else
124
+ $log.warn "MiqRpmPackages.getVal: unsupported data type: #{ei['ttype']}"
125
+ return("")
126
+ end
127
+ end
128
+
129
+ def getInt32Val(data, offset)
130
+ (data[offset, 4].unpack("N").first)
131
+ end
132
+
133
+ def getStringVal(data, offset)
134
+ eos = data.index(0.chr, offset) - offset
135
+ (data[offset, eos])
136
+ end
137
+
138
+ def getStringArray(data, offset, count)
139
+ ra = []
140
+ cpos = offset
141
+
142
+ count.times do
143
+ s = getStringVal(data, cpos)
144
+ ra << s
145
+ cpos += (s.length + 1)
146
+ end
147
+ ra.uniq!
148
+ (ra)
149
+ end
150
+ end
151
+ end
@@ -0,0 +1,58 @@
1
+ require "tmpdir"
2
+
3
+ class MiqRpmPackages
4
+ class Sqlite < MiqRpmPackages
5
+ def initialize(fs, dbFile)
6
+ require "rpm"
7
+
8
+ @fs = fs
9
+ @db_file_path = dbFile
10
+
11
+ @rpmdb_tempdir = nil
12
+ @rpmdb_path = nil
13
+
14
+ if fs.nil?
15
+ @rpmdb_path = @db_file_path
16
+ else
17
+ @rpmdb_tempdir = Dir.mktmpdir("rpmdb-")
18
+ rpmdb_dir = File.join(@rpmdb_tempdir, RPM['_dbpath'])
19
+ FileUtils.mkdir_p(rpmdb_dir)
20
+
21
+ rpmdb_tempfile = File.open(File.join(rpmdb_dir, "rpmdb.sqlite"), "wb")
22
+ rpmdb_file = fs.fileOpen(@db_file_path, "r")
23
+
24
+ loop do
25
+ chunk = rpmdb_file.read(4_096)
26
+ break if chunk.nil?
27
+
28
+ rpmdb_tempfile.write(chunk)
29
+ end
30
+
31
+ rpmdb_tempfile.close
32
+ rpmdb_file.close
33
+
34
+ @rpmdb_path = rpmdb_tempfile.path
35
+ end
36
+ end
37
+
38
+ def each
39
+ RPM.transaction(@rpmdb_tempdir) do |ts|
40
+ ts.each do |pkg|
41
+ tagids = %w[name version release summary description buildtime vendor arch installtime]
42
+
43
+ result = tagids.each_with_object({}) { |tag, obj| obj[tag] = pkg[tag.to_sym] }
44
+ # These have different tag names for the tagid
45
+ result["category"] = pkg[:group]
46
+ result["depends"] = pkg[:requirename]&.join("\n")
47
+ result["installed"] = true unless result.empty?
48
+
49
+ yield MiqHashStruct.new(result)
50
+ end
51
+ end
52
+ end
53
+
54
+ def close
55
+ FileUtils.rm_rf(@rpmdb_tempdir) if @rpmdb_tempdir
56
+ end
57
+ end
58
+ end
@@ -1,152 +1,29 @@
1
- require 'binary_struct'
2
- require 'manageiq/gems/pending'
3
- require 'util/miq-hash_struct'
4
- require 'db/MiqBdb/MiqBdb'
5
- require 'miq_unicode'
6
1
 
7
- # RPM Specification located at: http://jrpm.sourceforge.net/rpmspec/index.html
8
-
9
- class MiqRpmPackages
10
- using ManageIQ::UnicodeString
11
-
12
- #
13
- # The data types we support.
14
- #
15
- RPM_INT32_TYPE = 4
16
- RPM_STRING_TYPE = 6
17
- RPM_STRING_ARRAY_TYPE = 8
18
- RPM_I18NSTRING_TYPE = 9
19
2
 
20
- #
21
- # The things we care about.
22
- #
23
- NAME = 1000
24
- VERSION = 1001
25
- RELEASE = 1002
26
- SUMMARY = 1004
27
- DESCRIPTION = 1005
28
- BUILDTIME = 1006
29
- INSTALLTIME = 1008
30
- VENDOR = 1011
31
- GROUP = 1016
32
- URL = 1020
33
- ARCH = 1022
34
- REQUIRES = 1049
35
-
36
- TAGIDS = {
37
- 1000 => "name",
38
- 1001 => "version",
39
- 1002 => "release",
40
- 1004 => "summary",
41
- 1005 => "description",
42
- 1006 => "buildtime",
43
- 1008 => "installtime",
44
- 1011 => "vendor",
45
- 1016 => "category", # group
46
- 1020 => "url",
47
- 1022 => "arch",
48
- 1049 => "depends", # requires
49
- }
3
+ # RPM Specification located at: http://jrpm.sourceforge.net/rpmspec/index.html
50
4
 
51
- #
52
- # Nubbers on disk are in network byte order.
53
- #
54
- RPML_HEADER = BinaryStruct.new([
55
- 'N', 'num_index',
56
- "N", 'num_data'
57
- ])
58
- RPML_HEADER_LEN = RPML_HEADER.size
5
+ require_relative "MiqRpmPackages/Bdb"
6
+ require_relative "MiqRpmPackages/Sqlite"
59
7
 
60
- ENTRY_INFO = BinaryStruct.new([
61
- 'N', 'tag',
62
- 'N', 'ttype',
63
- 'N', 'offset',
64
- 'N', 'count'
65
- ])
66
- ENTRY_INFO_LEN = ENTRY_INFO.size
8
+ class MiqRpmPackages
9
+ class << self
10
+ private
67
11
 
68
- def initialize(fs, dbFile)
69
- @pkgDb = MiqBerkeleyDB::MiqBdb.new(dbFile, fs)
70
- # Pre-read all pages into the bdb cache, as we will be processing all of them anyway.
71
- @pkgDb.readAllPages
12
+ alias orig_new new
72
13
  end
73
14
 
74
- def each
75
- @pkgDb.each_value do |v|
76
- next if v.length <= RPML_HEADER_LEN
77
-
78
- hdr = RPML_HEADER.decode(v)
79
-
80
- offset = RPML_HEADER_LEN + (ENTRY_INFO_LEN * hdr['num_index'])
81
- if v.length != offset + hdr['num_data']
82
- $log.debug "record length = #{v.length}"
83
- $log.debug "num_index = #{hdr['num_index']}"
84
- $log.debug "num_data = #{hdr['num_data']}"
85
- $log.error "Invalid or corrupt RPM database record"
86
- next
87
- end
88
-
89
- data = v[offset, hdr['num_data']]
90
- pkg = {}
91
-
92
- eis = ENTRY_INFO.decode(v[RPML_HEADER_LEN..-1], hdr['num_index'])
93
- eis.each do |ei|
94
- tag = TAGIDS[ei['tag']]
95
- next if tag.nil?
96
- pkg[tag] = getVal(data, ei)
97
- pkg[tag] = convert(tag, pkg[tag])
15
+ def self.new(fs, dbDir)
16
+ if self == MiqRpmPackages
17
+ if fs.fileExists?(File.join(dbDir, "Packages"))
18
+ MiqRpmPackages::Bdb.new(fs, File.join(dbDir, "Packages"))
19
+ elsif fs.fileExists?(File.join(dbDir, "rpmdb.sqlite"))
20
+ MiqRpmPackages::Sqlite.new(fs, File.join(dbDir, "rpmdb.sqlite"))
21
+ else
22
+ raise ArgumentError, "Invalid RPM database"
98
23
  end
99
- pkg['installed'] = true unless pkg.empty?
100
- yield(MiqHashStruct.new(pkg))
101
- end
102
- end # def each
103
-
104
- def close
105
- @pkgDb.close
106
- end
107
-
108
- private
109
-
110
- def time_tag?(tag)
111
- ['installtime', 'buildtime'].include?(tag)
112
- end
113
-
114
- def convert(tag, val)
115
- time_tag?(tag) ? Time.at(val).utc : val
116
- end
117
-
118
- def getVal(data, ei)
119
- case ei['ttype']
120
- when RPM_INT32_TYPE then return(getInt32Val(data, ei['offset']))
121
- when RPM_STRING_TYPE then return(getStringVal(data, ei['offset']))
122
- when RPM_STRING_ARRAY_TYPE then return(getStringArray(data, ei['offset'], ei['count']).join("\n"))
123
- when RPM_I18NSTRING_TYPE then return(getStringArray(data, ei['offset'], ei['count']).join("\n").AsciiToUtf8)
124
24
  else
125
- $log.warn "MiqRpmPackages.getVal: unsupported data type: #{ei['ttype']}"
126
- return("")
127
- end
128
- end
129
-
130
- def getInt32Val(data, offset)
131
- (data[offset, 4].unpack("N").first)
132
- end
133
-
134
- def getStringVal(data, offset)
135
- eos = data.index(0.chr, offset) - offset
136
- (data[offset, eos])
137
- end
138
-
139
- def getStringArray(data, offset, count)
140
- ra = []
141
- cpos = offset
142
-
143
- count.times do
144
- s = getStringVal(data, cpos)
145
- ra << s
146
- cpos += (s.length + 1)
25
+ orig_new(fs, dbDir)
147
26
  end
148
- ra.uniq!
149
- (ra)
150
27
  end
151
28
  end # class MiqRPM
152
29
 
@@ -56,12 +56,12 @@ module FindClassMethods
56
56
 
57
57
  while (file = paths.shift)
58
58
  depth = depths.shift
59
- yield file.dup.taint
59
+ yield file.dup
60
60
  next if max_depth && depth + 1 > max_depth
61
61
 
62
62
  get_dir_entries(file).each do |f|
63
63
  f = File.join(file, f)
64
- paths.unshift f.untaint
64
+ paths.unshift f
65
65
  depths.unshift depth + 1
66
66
  end
67
67
  end
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.add_dependency "activesupport"
23
+ spec.add_dependency "activesupport", ">= 7.0.8", "<8.0"
24
24
  spec.add_dependency "awesome_spawn", "~> 1.5"
25
25
  spec.add_dependency "azure-armrest", "~> 0.9"
26
26
  spec.add_dependency "binary_struct", "~> 2.1"
@@ -28,6 +28,7 @@ Gem::Specification.new do |spec|
28
28
  spec.add_dependency "linux_block_device", "~>0.2.1"
29
29
  spec.add_dependency "manageiq-password", "< 2"
30
30
  spec.add_dependency "memory_buffer", ">=0.1.0"
31
+ spec.add_dependency "rpm2", "~>0.1.0"
31
32
  spec.add_dependency "rufus-lru", "~>1.0.3"
32
33
  spec.add_dependency "sys-uname", "~>1.2.1"
33
34
  spec.add_dependency "uuidtools", "~>2.1"
data/renovate.json CHANGED
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
- "extends": [
4
- "config:recommended"
5
- ]
3
+ "inheritConfig": true,
4
+ "inheritConfigRepoName": "manageiq/renovate-config"
6
5
  }
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: manageiq-smartstate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.11.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ManageIQ Developers
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-09-19 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activesupport
@@ -16,14 +15,20 @@ dependencies:
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: '0'
18
+ version: 7.0.8
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '8.0'
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
23
25
  requirements:
24
26
  - - ">="
25
27
  - !ruby/object:Gem::Version
26
- version: '0'
28
+ version: 7.0.8
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '8.0'
27
32
  - !ruby/object:Gem::Dependency
28
33
  name: awesome_spawn
29
34
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +127,20 @@ dependencies:
122
127
  - - ">="
123
128
  - !ruby/object:Gem::Version
124
129
  version: 0.1.0
130
+ - !ruby/object:Gem::Dependency
131
+ name: rpm2
132
+ requirement: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "~>"
135
+ - !ruby/object:Gem::Version
136
+ version: 0.1.0
137
+ type: :runtime
138
+ prerelease: false
139
+ version_requirements: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: 0.1.0
125
144
  - !ruby/object:Gem::Dependency
126
145
  name: rufus-lru
127
146
  requirement: !ruby/object:Gem::Requirement
@@ -305,7 +324,6 @@ dependencies:
305
324
  - !ruby/object:Gem::Version
306
325
  version: 2.3.1
307
326
  description: ManageIQ SmartState Analysis
308
- email:
309
327
  executables: []
310
328
  extensions: []
311
329
  extra_rdoc_files: []
@@ -323,6 +341,7 @@ files:
323
341
  - LICENSE.txt
324
342
  - README.md
325
343
  - Rakefile
344
+ - bin/before_install
326
345
  - bin/console
327
346
  - bin/setup
328
347
  - lib/MiqContainerGroup/MiqContainerGroup.rb
@@ -553,6 +572,8 @@ files:
553
572
  - lib/metadata/linux/LinuxUtils.rb
554
573
  - lib/metadata/linux/MiqConaryPackages.rb
555
574
  - lib/metadata/linux/MiqRpmPackages.rb
575
+ - lib/metadata/linux/MiqRpmPackages/Bdb.rb
576
+ - lib/metadata/linux/MiqRpmPackages/Sqlite.rb
556
577
  - lib/metadata/util/event_log_filter.rb
557
578
  - lib/metadata/util/find_class_methods.rb
558
579
  - lib/metadata/util/md5deep.rb
@@ -579,7 +600,6 @@ homepage: https://github.com/ManageIQ/manageiq-smartstate
579
600
  licenses:
580
601
  - Apache-2.0
581
602
  metadata: {}
582
- post_install_message:
583
603
  rdoc_options: []
584
604
  require_paths:
585
605
  - lib
@@ -594,8 +614,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
594
614
  - !ruby/object:Gem::Version
595
615
  version: '0'
596
616
  requirements: []
597
- rubygems_version: 3.4.20
598
- signing_key:
617
+ rubygems_version: 3.6.7
599
618
  specification_version: 4
600
619
  summary: ManageIQ SmartState Analysis
601
620
  test_files: []