Project

General

Profile

Bug #18868

unable to submit Parallels PSBM facts

Added by Tim Meusel over 4 years ago. Updated about 3 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
Facts
Target version:
Difficulty:
Triaged:
Bugzilla link:
Fixed in Releases:
Found in Releases:

Description

I operate many PSBM (Paralells Server for Bare Metall) nodes. This is a patched CentOS 6 based operating system from parallels. The facts are a bit different to a normal CentOS 6 machine. You can see an example here: https://github.com/theforeman/puppet-puppet/pull/487

I get a long error when I try to submit the facts to foreman:

2017-03-11 11:49:38 df26fb2c [app] [W] Action failed 
 | ActiveRecord::RecordInvalid: Validation failed: Minor version is not a number
...
2017-03-11 11:49:38 df26fb2c [app] [I]   Rendered api/v2/errors/standard_error.json.rabl within api/v2/layouts/error_layout (0.6ms) 
2017-03-11 11:49:38 df26fb2c [app] [I] Completed 500 Internal Server Error in 909ms (Views: 1.5ms | ActiveRecord: 354.1ms)

The full error message:
https://gist.github.com/bastelfreak/204cabf82f428b47c3881a30071dc6df

The facts are available here:
https://gist.github.com/bastelfreak/2c396428e3435aec77bb8bf998a16bb7#file-gistfile1-txt-L98

I had to trim some sensitive information, but I guess the os hash is the important one. I'm running the latest foreman on CentOS 7:

~ # rpm -qa | grep foreman
tfm-rubygem-foreman_hooks-0.3.13-1.fm1_14.el7.noarch
tfm-rubygem-foreman_column_view-0.3.0-1.fm1_14.el7.noarch
foreman-release-scl-3-1.el7.noarch
tfm-rubygem-foreman-tasks-core-0.1.1-1.fm1_14.el7.noarch
foreman-selinux-1.14.2-1.el7.noarch
foreman-1.14.2-1.el7.noarch
tfm-rubygem-puppetdb_foreman-2.0.0-1.fm1_14.el7.noarch
tfm-rubygem-foreman-tasks-0.8.6-1.fm1_14.el7.noarch
foreman-postgresql-1.14.2-1.el7.noarch
foreman-debug-1.14.2-1.el7.noarch
foreman-proxy-1.14.2-1.el7.noarch
~ #

And the packages on my puppetserver/foreman-proxy node:

~ # rpm -qa | grep foreman
foreman-postgresql-1.14.2-1.el7.noarch
tfm-rubygem-foreman-tasks-0.8.6-1.fm1_14.el7.noarch
tfm-rubygem-foreman_hooks-0.3.13-1.fm1_14.el7.noarch
tfm-rubygem-foreman-tasks-core-0.1.1-1.fm1_14.el7.noarch
foreman-selinux-1.14.2-1.el7.noarch
tfm-rubygem-puppetdb_foreman-2.0.0-1.fm1_14.el7.noarch
foreman-debug-1.14.2-1.el7.noarch
foreman-1.14.2-1.el7.noarch
foreman-proxy-selinux-1.14.2-1.el7.noarch
tfm-rubygem-foreman_column_view-0.3.0-1.fm1_14.el7.noarch
foreman-release-scl-3-1.el7.noarch
foreman-proxy-1.14.2-1.el7.noarch

I digged through my logs. I started with foreman 1.14.0. This bug was already present in that release and all upcoming. Let me know if you need any additional information

Associated revisions

Revision 65c0d142 (diff)
Added by Michael Moll over 4 years ago

Fixes #18868 - add Parallels PSBM version handling

History

#1 Updated by Anonymous over 4 years ago

  • Category set to Facts

could you try the following patch?

diff --git a/app/services/puppet_fact_parser.rb b/app/services/puppet_fact_parser.rb
index 0c1453d06..31c019054 100644
--- a/app/services/puppet_fact_parser.rb
+++ b/app/services/puppet_fact_parser.rb
@@ -28,6 +28,9 @@ class PuppetFactParser < FactParser
         orel.gsub!(/\-RELEASE\-p[0-9]+/, '')
       elsif os_name[/Solaris/i]
         orel.gsub!(/_u/, '.')
+      elsif os_name[/PSBM/i]
+        majorpsbm, minorpsbm = orel.split(".")
+        orel = majorpsbm + "." + minorpsbm
       end
       major, minor = orel.split('.', 2)
       major = major.to_s.gsub(/\D/, '')

#2 Updated by Tim Meusel over 4 years ago

Moin,
thanks for the quick patch! This is working very good. Facts are now properly submitted and the nodes are listed as "PSBM 2.6" in the foreman UI.

#3 Updated by Anonymous over 4 years ago

Allright. Would it be possible to get a full, unobfuscated output of "facter --json" from such an install (some install in a VM is sufficient)? Otherwise I'd have to mingle one from CentOS 6 facts and your gist to have a testset.

#4 Updated by Tim Meusel over 4 years ago

This should work: https://gist.github.com/bastelfreak/d755fe22dffbddd03e74228a4660c3e8

I removed a few mountpoints to make it more readable and replaced some critical information with "REMOVED". IP-Adresses got replaced with fake ones.But this should be a functional json. let me know if you need any additional information.

#5 Updated by The Foreman Bot over 4 years ago

  • Assignee set to Anonymous
  • Status changed from New to Ready For Testing
  • Pull request https://github.com/theforeman/foreman/pull/4369 added

#6 Updated by Anonymous over 4 years ago

  • Status changed from Ready For Testing to Closed
  • % Done changed from 0 to 100

#7 Updated by Ohad Levy over 4 years ago

  • Legacy Backlogs Release (now unused) set to 209

Also available in: Atom PDF