RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1304056 - [RFE] Provide a D-Bus API for collecting system facts
Summary: [RFE] Provide a D-Bus API for collecting system facts
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: subscription-manager
Version: 7.3
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Jiri Hnidek
QA Contact: John Sefler
URL:
Whiteboard:
Depends On:
Blocks: 1313485
TreeView+ depends on / blocked
 
Reported: 2016-02-02 18:51 UTC by Barnaby Court
Modified: 2018-04-10 09:48 UTC (History)
4 users (show)

Fixed In Version: subscription-manager-1.20.9-1
Doc Type: No Doc Update
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-04-10 09:47:31 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github candlepin subscription-manager pull 1509 0 None closed Feature/dbus service 2020-06-10 09:50:15 UTC
Github candlepin subscription-manager pull 1742 0 None closed 1304056: Fix D-Bus path of com.redhat.RHSM1.Facts 2020-06-10 09:50:15 UTC
Red Hat Product Errata RHBA-2018:0681 0 None None None 2018-04-10 09:48:38 UTC

Description Barnaby Court 2016-02-02 18:51:15 UTC
Provide a DBUS API for collecting system facts.

Comment 2 Dominik Perpeet 2016-09-21 13:52:01 UTC
This should also include signals when said facts (e.g. installed products, subscription status) change.

Comment 3 Dominik Perpeet 2016-09-21 13:53:42 UTC
Cockpit currently uses CLI subscription-manager, a DBUS API would be greatly preferred.

Comment 5 Shwetha Kallesh 2017-11-21 14:28:55 UTC
Don't find dbus Facts service with the latest rhsm build

[root@dhcp35-10 ~]# subscription-manager version
server type: Red Hat Subscription Management
subscription management server: 2.2.0-1
subscription management rules: 5.26
subscription-manager: 1.20.5-1.el7


[root@dhcp35-10 ~]# busctl tree com.redhat.RHSM1
└─/com
  └─/com/redhat
    └─/com/redhat/RHSM1
      ├─/com/redhat/RHSM1/Attach
      ├─/com/redhat/RHSM1/Config
      ├─/com/redhat/RHSM1/Entitlement
      ├─/com/redhat/RHSM1/Products
      ├─/com/redhat/RHSM1/RegisterServer
      └─/com/redhat/RHSM1/Unregister

Comment 6 Shwetha Kallesh 2017-11-27 12:55:26 UTC
Access denied message when I try to call getfacts dbus API , marking as failed_qa

[root@dhcp35-10 ~]# subscription-manager version
server type: Red Hat Subscription Management
subscription management server: 2.2.0-1
subscription management rules: 5.26
subscription-manager: 1.20.5-1.el7

    [root@dhcp35-10 ~]#  busctl tree com.redhat.RHSM1.Facts
    └─/com
      └─/com/redhat
        └─/com/redhat/RHSM1
    [root@dhcp35-10 ~]# busctl call com.redhat.RHSM1 /com/redhat/RHSM1/Facts com.redhat.RHSM1.Facts GetFacts
    Access denied
    [root@dhcp35-10 ~]# whoami
    root

Comment 8 Shwetha Kallesh 2018-01-12 10:31:20 UTC
Marking bug as verified!!

[root@dell-per630-01 ~]# subscription-manager version
server type: Red Hat Subscription Management
subscription management server: 2.3.0-1
subscription management rules: 5.26
subscription-manager: 1.20.9-1.el7


[root@dell-per630-01 ~]# busctl tree com.redhat.RHSM1.Facts
└─/com
  └─/com/redhat
    └─/com/redhat/RHSM1
      └─/com/redhat/RHSM1/Facts


[root@dell-per630-01 ~]#   busctl introspect com.redhat.RHSM1.Facts /com/redhat/RHSM1/Facts
NAME                                TYPE      SIGNATURE RESULT/VALUE FLAGS
com.redhat.RHSM1.Facts              interface -         -            -
.GetFacts                           method    -         a{ss}        -
org.freedesktop.DBus.Introspectable interface -         -            -
.Introspect                         method    -         s            -
[root@dell-per630-01 ~]# dbus-send --system --print-reply --dest='com.redhat.RHSM1.Facts' \
>         '/com/redhat/RHSM1/Facts' com.redhat.RHSM1.Facts.GetFacts
method return time=1515752852.549317 sender=:1.459 -> destination=:1.464 serial=9 reply_serial=2
   array [
      dict entry(
         string "dmi.system.uuid"
         string "4C4C4544-005A-3010-804B-B4C04F4E3232"
      )
      dict entry(
         string "distribution.name"
         string "Red Hat Enterprise Linux Server"
      )
      dict entry(
         string "proc_cpuinfo.common.siblings"
         string "8"
      )
      dict entry(
         string "lscpu.l1d_cache"
         string "32K"
      )
      dict entry(
         string "dmi.chassis.manufacturer"
         string "Dell Inc."
      )
      dict entry(
         string "net.interface.em1.ipv6_address.link_list"
         string "fe80::ba2a:72ff:feda:9f5b"
      )
      dict entry(
         string "net.interface.em4.mac_address"
         string "B8:2A:72:DA:9F:5E"
      )
      dict entry(
         string "lscpu.l1i_cache"
         string "32K"
      )
      dict entry(
         string "dmi.slot.type:slotbuswidth"
         string "x16"
      )
      dict entry(
         string "dmi.baseboard.version"
         string "A00"
      )
      dict entry(
         string "dmi.memory.error_correction_type"
         string "Multi-bit ECC"
      )
      dict entry(
         string "dmi.processor.type"
         string "Central Processor"
      )
      dict entry(
         string "dmi.chassis.thermal_state"
         string "Safe"
      )
      dict entry(
         string "proc_cpuinfo.common.flags"
         string "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm xsaveopt cqm_llc cqm_occup_llc dtherm ida arat pln pts"
      )
      dict entry(
         string "proc_cpuinfo.common.wp"
         string "yes"
      )
      dict entry(
         string "cpu.core(s)_per_socket"
         string "8"
      )
      dict entry(
         string "distribution.version"
         string "7.5"
      )
      dict entry(
         string "proc_cpuinfo.common.cpu_family"
         string "6"
      )
      dict entry(
         string "network.ipv4_address"
         string "10.16.184.92"
      )
      dict entry(
         string "dmi.bios.bios_revision"
         string "2.0"
      )
      dict entry(
         string "dmi.system.version"
         string "Not Specified"
      )
      dict entry(
         string "lscpu.virtualization"
         string "VT-x"
      )
      dict entry(
         string "net.interface.em1.ipv4_broadcast"
         string "10.16.187.255"
      )
      dict entry(
         string "net.interface.em1.ipv6_address.link"
         string "fe80::ba2a:72ff:feda:9f5b"
      )
      dict entry(
         string "net.interface.em1.ipv4_netmask"
         string "22"
      )
      dict entry(
         string "proc_cpuinfo.common.fpu"
         string "yes"
      )
      dict entry(
         string "dmi.bios.address"
         string "0xf0000"
      )
      dict entry(
         string "lscpu.bogomips"
         string "4799.50"
      )
      dict entry(
         string "proc_cpuinfo.common.model_name"
         string "Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz"
      )
      dict entry(
         string "net.interface.em1.ipv4_netmask_list"
         string "22"
      )
      dict entry(
         string "dmi.memory.data_width"
         string " "
      )
      dict entry(
         string "net.interface.em2.mac_address"
         string "B8:2A:72:DA:9F:5C"
      )
      dict entry(
         string "net.interface.em1.ipv6_netmask.global"
         string "64"
      )
      dict entry(
         string "dmi.chassis.boot-up_state"
         string "Safe"
      )
      dict entry(
         string "network.ipv6_address"
         string "fe80::ba2a:72ff:feda:9f5b, 2620:52:0:10bb:ba2a:72ff:feda:9f5b"
      )
      dict entry(
         string "dmi.processor.serial_number"
         string "Not Specified"
      )
      dict entry(
         string "lscpu.l3_cache"
         string "20480K"
      )
      dict entry(
         string "network.fqdn"
         string "dell-per630-01.khw.lab.eng.bos.redhat.com"
      )
      dict entry(
         string "dmi.processor.l1_cache_handle"
         string "0x0703"
      )
      dict entry(
         string "dmi.memory.bank_locator"
         string "Not Specified"
      )
      dict entry(
         string "net.interface.lo.ipv4_broadcast_list"
         string "Unknown"
      )
      dict entry(
         string "cpu.cpu(s)"
         string "16"
      )
      dict entry(
         string "network.hostname"
         string "dell-per630-01.khw.lab.eng.bos.redhat.com"
      )
      dict entry(
         string "dmi.system.manufacturer"
         string "Dell Inc."
      )
      dict entry(
         string "dmi.baseboard.manufacturer"
         string "Dell Inc."
      )
      dict entry(
         string "net.interface.lo.ipv6_address.host"
         string "::1"
      )
      dict entry(
         string "uname.version"
         string "#1 SMP Thu Dec 28 09:18:16 EST 2017"
      )
      dict entry(
         string "uname.sysname"
         string "Linux"
      )
      dict entry(
         string "dmi.processor.upgrade"
         string ""
      )
      dict entry(
         string "net.interface.em1.ipv6_netmask.link_list"
         string "64"
      )
      dict entry(
         string "lscpu.core(s)_per_socket"
         string "8"
      )
      dict entry(
         string "dmi.chassis.version"
         string "Not Specified"
      )
      dict entry(
         string "lscpu.model_name"
         string "Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz"
      )
      dict entry(
         string "proc_cpuinfo.common.cache_alignment"
         string "64"
      )
      dict entry(
         string "dmi.bios.runtime_size"
         string "64 KB"
      )
      dict entry(
         string "dmi.processor.part_number"
         string "Not Specified"
      )
      dict entry(
         string "dmi.memory.speed"
         string "  (ns)"
      )
      dict entry(
         string "net.interface.em1.ipv4_address"
         string "10.16.184.92"
      )
      dict entry(
         string "proc_cpuinfo.common.model"
         string "63"
      )
      dict entry(
         string "dmi.memory.total_width"
         string " "
      )
      dict entry(
         string "lscpu.numa_node0_cpu(s)"
         string "0,2,4,6,8,10,12,14"
      )
      dict entry(
         string "dmi.chassis.security_status"
         string "Unknown"
      )
      dict entry(
         string "lscpu.numa_node1_cpu(s)"
         string "1,3,5,7,9,11,13,15"
      )
      dict entry(
         string "net.interface.em1.ipv6_address.global"
         string "2620:52:0:10bb:ba2a:72ff:feda:9f5b"
      )
      dict entry(
         string "dmi.processor.l3_cache_handle"
         string "0x0705"
      )
      dict entry(
         string "lscpu.cpu_max_mhz"
         string "3200.0000"
      )
      dict entry(
         string "lscpu.cpu_mhz"
         string "1965.820"
      )
      dict entry(
         string "dmi.system.product_name"
         string "PowerEdge R630"
      )
      dict entry(
         string "dmi.processor.version"
         string "Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz"
      )
      dict entry(
         string "cpu.topology_source"
         string "kernel /sys cpu sibling lists"
      )
      dict entry(
         string "dmi.memory.form_factor"
         string "Unknown"
      )
      dict entry(
         string "dmi.bios.rom_size"
         string "16384 KB"
      )
      dict entry(
         string "net.interface.em1.mac_address"
         string "B8:2A:72:DA:9F:5B"
      )
      dict entry(
         string "dmi.memory.type"
         string "Unknown"
      )
      dict entry(
         string "dmi.connector.internal_reference_designator"
         string "Not Specified"
      )
      dict entry(
         string "lscpu.stepping"
         string "2"
      )
      dict entry(
         string "dmi.slot.designation"
         string "PCIe Slot 1"
      )
      dict entry(
         string "dmi.connector.internal_connector_type"
         string "None"
      )
      dict entry(
         string "dmi.bios.relase_date"
         string "02/12/2016"
      )
      dict entry(
         string "dmi.memory.serial_number"
         string "Not Specified"
      )
      dict entry(
         string "uname.machine"
         string "x86_64"
      )
      dict entry(
         string "proc_cpuinfo.common.fpu_exception"
         string "yes"
      )
      dict entry(
         string "net.interface.em3.mac_address"
         string "B8:2A:72:DA:9F:5D"
      )
      dict entry(
         string "dmi.processor.l2_cache_handle"
         string "0x0704"
      )
      dict entry(
         string "cpu.cpu_socket(s)"
         string "2"
      )
      dict entry(
         string "uname.release"
         string "3.10.0-826.el7.x86_64"
      )
      dict entry(
         string "system.certificate_version"
         string "3.2"
      )
      dict entry(
         string "lscpu.socket(s)"
         string "2"
      )
      dict entry(
         string "lscpu.flags"
         string "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm xsaveopt cqm_llc cqm_occup_llc dtherm ida arat pln pts"
      )
      dict entry(
         string "dmi.processor.family"
         string "Xeon"
      )
      dict entry(
         string "dmi.memory.manufacturer"
         string "Not Specified"
      )
      dict entry(
         string "net.interface.em1.ipv4_broadcast_list"
         string "10.16.187.255"
      )
      dict entry(
         string "system.default_locale"
         string "en_US.UTF-8"
      )
      dict entry(
         string "distribution.id"
         string "Maipo"
      )
      dict entry(
         string "dmi.memory.assettag"
         string "Not Specified"
      )
      dict entry(
         string "dmi.memory.location"
         string "System Board Or Motherboard"
      )
      dict entry(
         string "lscpu.numa_node(s)"
         string "2"
      )
      dict entry(
         string "lscpu.vendor_id"
         string "GenuineIntel"
      )
      dict entry(
         string "virt.is_guest"
         string "False"
      )
      dict entry(
         string "net.interface.em1.ipv4_address_list"
         string "10.16.184.92"
      )
      dict entry(
         string "net.interface.lo.ipv6_netmask.host_list"
         string "128"
      )
      dict entry(
         string "lscpu.cpu_op-mode(s)"
         string "32-bit, 64-bit"
      )
      dict entry(
         string "dmi.processor.socket_designation"
         string "CPU2"
      )
      dict entry(
         string "dmi.system.family"
         string "Not Specified"
      )
      dict entry(
         string "dmi.bios.vendor"
         string "Dell Inc."
      )
      dict entry(
         string "dmi.connector.external_connector_type"
         string "RJ-45"
      )
      dict entry(
         string "proc_cpuinfo.common.clflush_size"
         string "64"
      )
      dict entry(
         string "dmi.chassis.type"
         string "Rack Mount Chassis"
      )
      dict entry(
         string "dmi.slot.type:slottype"
         string ""
      )
      dict entry(
         string "net.interface.lo.ipv6_netmask.host"
         string "128"
      )
      dict entry(
         string "proc_cpuinfo.common.vendor_id"
         string "GenuineIntel"
      )
      dict entry(
         string "net.interface.p3p2.mac_address"
         string "A0:36:9F:47:B8:F6"
      )
      dict entry(
         string "dmi.chassis.lock"
         string "Present"
      )
      dict entry(
         string "lscpu.thread(s)_per_core"
         string "1"
      )
      dict entry(
         string "dmi.system.serial_number"
         string "4Z0KN22"
      )
      dict entry(
         string "dmi.slot.current_usage"
         string "Available"
      )
      dict entry(
         string "dmi.processor.status"
         string "Populated:Enabled"
      )
      dict entry(
         string "proc_cpuinfo.common.cache_size"
         string "20480 KB"
      )
      dict entry(
         string "proc_cpuinfo.common.address_sizes"
         string "46 bits physical, 48 bits virtual"
      )
      dict entry(
         string "net.interface.lo.ipv4_broadcast"
         string "Unknown"
      )
      dict entry(
         string "lscpu.on-line_cpu(s)_list"
         string "0-15"
      )
      dict entry(
         string "dmi.memory.locator"
         string "B9"
      )
      dict entry(
         string "dmi.chassis.asset_tag"
         string "Not Specified"
      )
      dict entry(
         string "net.interface.lo.ipv4_address_list"
         string "127.0.0.1"
      )
      dict entry(
         string "net.interface.lo.ipv4_netmask_list"
         string "8"
      )
      dict entry(
         string "dmi.system.status"
         string "No errors detected"
      )
      dict entry(
         string "proc_cpuinfo.common.stepping"
         string "2"
      )
      dict entry(
         string "net.interface.lo.ipv4_netmask"
         string "8"
      )
      dict entry(
         string "net.interface.em1.ipv6_netmask.global_list"
         string "64"
      )
      dict entry(
         string "virt.host_type"
         string "Not Applicable"
      )
      dict entry(
         string "dmi.memory.use"
         string "System Memory"
      )
      dict entry(
         string "lscpu.cpu(s)"
         string "16"
      )
      dict entry(
         string "lscpu.byte_order"
         string "Little Endian"
      )
      dict entry(
         string "memory.memtotal"
         string "82203184"
      )
      dict entry(
         string "dmi.bios.version"
         string "2.0.1"
      )
      dict entry(
         string "proc_cpuinfo.common.cpu_cores"
         string "8"
      )
      dict entry(
         string "dmi.slot.slotlength"
         string "Long"
      )
      dict entry(
         string "dmi.chassis.serial_number"
         string "4Z0KN22"
      )
      dict entry(
         string "lscpu.cpu_min_mhz"
         string "1200.0000"
      )
      dict entry(
         string "proc_cpuinfo.common.microcode"
         string "0x3b"
      )
      dict entry(
         string "dmi.meta.cpu_socket_count"
         string "2"
      )
      dict entry(
         string "dmi.chassis.power_supply_state"
         string "Safe"
      )
      dict entry(
         string "dmi.baseboard.product_name"
         string "0CNCJW"
      )
      dict entry(
         string "dmi.connector.port_type"
         string "Network Port"
      )
      dict entry(
         string "proc_cpuinfo.common.cpuid_level"
         string "15"
      )
      dict entry(
         string "dmi.memory.part_number"
         string "Not Specified"
      )
      dict entry(
         string "dmi.connector.external_reference_designator"
         string "2"
      )
      dict entry(
         string "lscpu.architecture"
         string "x86_64"
      )
      dict entry(
         string "lscpu.model"
         string "63"
      )
      dict entry(
         string "dmi.memory.maximum_capacity"
         string "1536 GB"
      )
      dict entry(
         string "net.interface.lo.ipv6_address.host_list"
         string "::1"
      )
      dict entry(
         string "net.interface.em1.ipv6_netmask.link"
         string "64"
      )
      dict entry(
         string "net.interface.p3p1.mac_address"
         string "A0:36:9F:47:B8:F4"
      )
      dict entry(
         string "proc_cpuinfo.common.power_management"
         string ""
      )
      dict entry(
         string "lscpu.cpu_family"
         string "6"
      )
      dict entry(
         string "memory.swaptotal"
         string "4194300"
      )
      dict entry(
         string "dmi.memory.size"
         string "8192 MB"
      )
      dict entry(
         string "net.interface.lo.ipv4_address"
         string "127.0.0.1"
      )
      dict entry(
         string "dmi.processor.voltage"
         string "1.3 V"
      )
      dict entry(
         string "cpu.thread(s)_per_core"
         string "1"
      )
      dict entry(
         string "net.interface.em1.ipv6_address.global_list"
         string "2620:52:0:10bb:ba2a:72ff:feda:9f5b"
      )
      dict entry(
         string "dmi.baseboard.serial_number"
         string ".4Z0KN22.CN747514870090."
      )
      dict entry(
         string "dmi.memory.error_information_handle"
         string "Not Provided"
      )
      dict entry(
         string "uname.nodename"
         string "dell-per630-01.khw.lab.eng.bos.redhat.com"
      )
      dict entry(
         string "distribution.version.modifier"
         string "beta"
      )
      dict entry(
         string "dmi.memory.array_handle"
         string "0x1000"
      )
      dict entry(
         string "dmi.system.sku_number"
         string "SKU=NotProvided;ModelName=PowerEdge R630"
      )
      dict entry(
         string "dmi.processor.asset_tag"
         string "Not Specified"
      )
      dict entry(
         string "lscpu.l2_cache"
         string "256K"
      )
      dict entry(
         string "dmi.system.wake-up_type"
         string "Power Switch"
      )
   ]

Comment 11 errata-xmlrpc 2018-04-10 09:47:31 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2018:0681


Note You need to log in before you can comment on or make changes to this bug.