All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Jones <proclivis@gmail.com>
To: Ed Tanous <ed@tanous.net>
Cc: Ed Tanous <edtanous@google.com>,
	OpenBMC Maillist <openbmc@lists.ozlabs.org>
Subject: Re: Query Sensor
Date: Thu, 13 Jan 2022 14:16:01 -0700	[thread overview]
Message-ID: <AB057B30-4E65-4958-BDB9-0EDF4771C5B7@gmail.com> (raw)
In-Reply-To: <CACWQX82gK7O-qNrFJxi3q70ejdXJLULCPxBi=8+jtZvZNj8t8w@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 5525 bytes --]

Ed,

What translates the redfish query into a dbus query?

Mike

Sent from my iPad

> On Jan 11, 2022, at 7:04 PM, Ed Tanous <ed@tanous.net> wrote:
> 
> 
> 
> 
>> On Tue, Jan 11, 2022 at 9:53 AM Mike Jones <proclivis@gmail.com> wrote:
>> Ed,
>> 
>> So to be sure I understand, dbus-sensors implements the dbus services for each sensor type, and the requests I made were serviced by one of these.
> 
> Correct.
> 
>> 
>> 
>> The interface is defined by yaml files in phosphor-dbus-interfaces.
> 
> Yep.
> 
>> 
>> 
>> phosphor-dbus- interfaces generates c++ base classes, and dbus-sensors probably have c++ classes inheriting from them.
> 
> 
> For various technical and social reasons which I’ve detailed in mail to this list in the past, dbus-sensors doesn’t depend directly on phosphor-dbus-interfaces, nor rely on the generated code. It instead generates code from c++ template expansion in sdbusplus.
> 
>> 
>> 
>> These interfaces are not Redfish interfaces.
> 
> Correct.
> 
>> 
>> 
>> When WebUI fetches sensor values, is it using these interfaces, or is there another Redfish layer involved that translates the query? Or perhaps Redfish only matters for things like a PSU?
> 
> 
> Depends on which webui you’re talking about, there are two.
> 
> Phosphor-webui (ie the “old” one) goes directly to dbus through the rest-dbus abstraction in bmcweb.  This was very good for initial prototyping (aside from a port to c++, the code largely hasn’t changed since it was written) but not great at keeping a consistent or standardized API.
> 
> Webui-vue (ie, the new one) relies on Redfish directly, which in-effect makes a very nice Redfish gui, and minimizes the chance that the dbus interfaces are correct, but redfish is broken.  It also keeps us standard compliant, so in theory webui-vue could be used on another non-openbmc project in the future.
> 
> Ed
> 
>> 
>> 
>> Mike
>> 
>> 
>> Sent from my iPad
>> 
>> > On Jan 11, 2022, at 10:22 AM, Ed Tanous <edtanous@google.com> wrote:
>> > 
>> > On Tue, Jan 11, 2022 at 9:17 AM Mike Jones <proclivis@gmail.com> wrote:
>> >> 
>> >> This is how to do it:
>> >> 
>> >> dbus-send --system --print-reply \
>> >> 
>> >> --dest=xyz.openbmc_project.Hwmon-5a446562b1a2e55ef11da905907088a187a66b71eb7a1f29187594c05bb8fd9a.Hwmon1 \
>> >> 
>> >> /xyz/openbmc_project/sensors/temperature/lm75temp \
>> >> 
>> >> org.freedesktop.DBus.Properties.Get string:xyz.openbmc_project.Sensor.Value string:Value \
>> >> 
>> >> double:
>> >> 
>> >> 
>> >> It is not clear to me why the second parameter string:Value
>> >> 
>> >> 
>> >> I guessed on that and it works. Perhaps xyz…Sensor.Value is the Property name, and properties have values, so the second parameter says get the Value of a property whose name ends in .Value.\
>> > 
>> > For better or worse, the term "Value" is overloaded in both the
>> > interface name, yz.openbmc_project.Sensor.Value, and the property name
>> > within the interface, Value.  That's why you see it twice in this
>> > case.  They are distinct things within the request that just happen to
>> > share a name.  Docs for the interface and property are here:
>> > https://github.com/openbmc/phosphor-dbus-interfaces/blob/e0674c894ed36a2e8cf96207907a531d2f514054/yaml/xyz/openbmc_project/Sensor/Value.interface.yaml#L24
>> > 
>> > Happy to see you figured it out.
>> > 
>> >> 
>> >> 
>> >> To test that, I tried string:MaxValue, and that works.
>> >> 
>> >> 
>> >> I confirmed with this:
>> >> 
>> >> 
>> >> busctl introspect xyz.openbmc_project.Hwmon-5a446562b1a2e55ef11da905907088a187a66b71eb7a1f29187594c05bb8fd9a.Hwmon1 /xyz/openbmc_project/sensors/temperature/lm75temp
>> >> 
>> >> 
>> >> A very useful command.
>> >> 
>> >> 
>> >> Also useful:
>> >> 
>> >> 
>> >> dbus-send --system --print-reply \
>> >> 
>> >> --dest=xyz.openbmc_project.ObjectMapper /\
>> >> 
>> >> xyz/openbmc_project/object_mapper \
>> >> 
>> >> xyz.openbmc_project.ObjectMapper.GetSubTree \
>> >> 
>> >> string:"/" int32:0 array:string:"xyz.openbmc_project.Sensor.Value"
>> >> 
>> >> 
>> >> 
>> >> Mike
>> >> 
>> >> 
>> >> Sent from my iPad
>> >> 
>> >> On Jan 10, 2022, at 4:50 PM, Ed Tanous <edtanous@google.com> wrote:
>> >> 
>> >> On Mon, Jan 10, 2022 at 3:47 PM Mike Jones <proclivis@gmail.com> wrote:
>> >> 
>> >> 
>> >> Hi,
>> >> 
>> >> 
>> >> I could not find an example of a sensor query in the docs. I assume something like this:
>> >> 
>> >> 
>> >> dbus-send --system --print-reply \
>> >> 
>> >> 
>> >> --dest=xyz.openbmc_project.Hwmon-5a446562b1a2e55ef11da905907088a187a66b71eb7a1f29187594c05bb8fd9a.Hwmon1 \
>> >> 
>> >> 
>> >> /xyz/openbmc_project/sensors/temperature/lm75temp
>> >> 
>> >> 
>> >> xyz.openbmc_project.Sensor.Property.Get xyz.openbmc_project.Sensor.Value \
>> >> 
>> >> 
>> >> double:
>> >> 
>> >> 
>> >> 
>> >> I don't have an example offhand, but the interface you're looking for
>> >> in the bolded area is
>> >> org.freedesktop.DBus.Properties.Get
>> >> 
>> >> Stack overflow for essentially the same question with an example:
>> >> https://stackoverflow.com/questions/48648952/set-get-property-using-dbus-send
>> >> 
>> >> 
>> >> With the bold interface replaced with something correct.
>> >> 
>> >> 
>> >> Can some one give me an example, and a url about how to query properties?
>> >> 
>> >> 
>> >> Mike
>> >> 
>> >> 
>> >> Sent from my iPad
> -- 
> -Ed

[-- Attachment #2: Type: text/html, Size: 8977 bytes --]

  reply	other threads:[~2022-01-13 21:16 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-11 17:16 Query Sensor Mike Jones
2022-01-11 17:22 ` Ed Tanous
2022-01-11 17:52   ` Mike Jones
2022-01-12  2:04     ` Ed Tanous
2022-01-13 21:16       ` Mike Jones [this message]
2022-01-28 18:30         ` Ed Tanous
  -- strict thread matches above, loose matches on Subject: below --
2022-01-10 23:47 Mike Jones
2022-01-10 23:50 ` Ed Tanous
2022-01-11  0:07   ` Mike

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AB057B30-4E65-4958-BDB9-0EDF4771C5B7@gmail.com \
    --to=proclivis@gmail.com \
    --cc=ed@tanous.net \
    --cc=edtanous@google.com \
    --cc=openbmc@lists.ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.