Bug 1304056 - [RFE] Provide a D-Bus API for collecting system facts
[RFE] Provide a D-Bus API for collecting system facts
Status: VERIFIED
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: subscription-manager (Show other bugs)
7.3
Unspecified Unspecified
unspecified Severity unspecified
: rc
: ---
Assigned To: Jiri Hnidek
John Sefler
: FutureFeature
Depends On:
Blocks: 1313485
  Show dependency treegraph
 
Reported: 2016-02-02 13:51 EST by Barnaby Court
Modified: 2018-01-12 05:31 EST (History)
4 users (show)

See Also:
Fixed In Version: subscription-manager-1.20.9-1
Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed:
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Github candlepin/subscription-manager/pull/1509 None None None 2017-06-13 16:22 EDT
Github candlepin/subscription-manager/pull/1742 None None None 2017-12-11 06:01 EST

  None (edit)
Description Barnaby Court 2016-02-02 13:51:15 EST
Provide a DBUS API for collecting system facts.
Comment 2 Dominik Perpeet 2016-09-21 09:52:01 EDT
This should also include signals when said facts (e.g. installed products, subscription status) change.
Comment 3 Dominik Perpeet 2016-09-21 09:53:42 EDT
Cockpit currently uses CLI subscription-manager, a DBUS API would be greatly preferred.
Comment 5 Shwetha Kallesh 2017-11-21 09:28:55 EST
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 07:55:26 EST
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 05:31:20 EST
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"
      )
   ]

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