sailfishdell / sailfish Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
Hi, I was using EventSequencer tool to post events payloads to sailfish simulator, but the current version from master (2020/01/28) I am getting 404 response when I post events:
- FAIL, POST command failed, status code 404 returned, error is b'Could not find URL: /redfish/v1/TelemetryService/Actions/TelemetryService.SubmitTestMetricReport\n'
ReportSequence: 5
-- 151 submit_test_event(http://127.0.0.1:10001/redfish/v1/TelemetryService/Actions/TelemetryService.SubmitTestMetricReport)
-- URL----> http://127.0.0.1:10001/redfish/v1/TelemetryService/Actions/TelemetryService.SubmitTestMetricReport
-- Payload----> {'@odata.type': '#MetricReport.v1_0_2.MetricReport', 'Id': 'ThermalSensor', 'MetricName': 'ThermalSensor', 'ReportSequence': 5, 'MetricReportDefinition': {'@odata.id': '/redfish/v1/TelemetryService/MetricReportDefinitions/ThermalSensor'}, 'MetricValues': [{'MetricId': 'HealthState', 'MetricValue': 'OK', 'Timestamp': '2019-05-28T18:16:09.072000000Z', 'Oem': {'Dell': {'@odata.type': '#Thermal.v1_0_2.Thermal', 'Label': 'CPU1 Temp', 'ContextID': 'iDRAC.Embedded.1#CPU1Temp'}}}, {'MetricId': 'CurrentState', 'MetricValue': 'Enabled', 'Timestamp': '2019-05-28T18:16:09.072000000Z', 'Oem': {'Dell': {'@odata.type': '#Thermal.v1_0_2.Thermal', 'Label': 'CPU1 Temp', 'ContextID': 'iDRAC.Embedded.1#CPU1Temp'}}}, {'MetricId': 'CurrentReading', 'MetricValue': '67', 'Timestamp': '2019-05-28T18:16:09.072000000Z', 'Oem': {'Dell': {'@odata.type': '#Thermal.v1_0_2.Thermal', 'Label': 'CPU1 Temp', 'ContextID': 'iDRAC.Embedded.1#CPU1Temp'}}}]}
-- <Response [404]>
Is the address /redfish/v1/TelemetryService/Actions/TelemetryService.SubmitTestMetricReport
no longer working?
Thanks,
Rodrigo.
There are 2 issues related to SSE:
data:
in the beginning of a new SSE stream event. See below how it was before and how it is now.data: {
data: "@odata.type": "#MetricReport.v1_0_2.MetricReport",
data: "Id": "ThermalSensor",
data: "MetricName": "ThermalSensor",
data: "MetricReportDefinition": {
data: "@odata.id": "/redfish/v1/TelemetryService/MetricReportDefinitions/ThermalSensor"
data: },
data: "MetricValues": [
data: {
data: "MetricId": "HealthState",
data: "MetricValue": "OK",
data: "Oem": {
data: "Dell": {
data: "@odata.type": "#Thermal.v1_0_2.Thermal",
data: "ContextID": "iDRAC.Embedded.1#CPU1Temp",
data: "Label": "CPU1 Temp"
data: }
data: },
data: "Timestamp": "2019-05-28T18:16:09.072000000Z"
data: },
data: {
data: "MetricId": "CurrentState",
data: "MetricValue": "Enabled",
data: "Oem": {
data: "Dell": {
data: "@odata.type": "#Thermal.v1_0_2.Thermal",
data: "ContextID": "iDRAC.Embedded.1#CPU1Temp",
data: "Label": "CPU1 Temp"
data: }
data: },
data: "Timestamp": "2019-05-28T18:16:09.072000000Z"
data: },
data: {
data: "MetricId": "CurrentReading",
data: "MetricValue": "67",
data: "Oem": {
data: "Dell": {
data: "@odata.type": "#Thermal.v1_0_2.Thermal",
data: "ContextID": "iDRAC.Embedded.1#CPU1Temp",
data: "Label": "CPU1 Temp"
data: }
data: },
data: "Timestamp": "2019-05-28T18:16:09.072000000Z"
data: }
data: ],
data: "ReportSequence": 5
data: }
Now:
{
data: "Data": {
data: "@odata.type": "#MetricReport.v1_0_2.MetricReport",
data: "Id": "ThermalSensor",
data: "MetricName": "ThermalSensor",
data: "MetricReportDefinition": {
data: "@odata.id": "/redfish/v1/TelemetryService/MetricReportDefinitions/ThermalSensor"
data: },
data: "MetricValues": [
data: {
data: "MetricId": "HealthState",
data: "MetricValue": "OK",
data: "Oem": {
data: "Dell": {
data: "@odata.type": "#Thermal.v1_0_2.Thermal",
data: "ContextID": "iDRAC.Embedded.1#CPU1Temp",
data: "Label": "CPU1 Temp"
data: }
data: },
data: "Timestamp": "2019-05-28T18:16:09.072000000Z"
data: },
data: {
data: "MetricId": "CurrentState",
data: "MetricValue": "Enabled",
data: "Oem": {
data: "Dell": {
data: "@odata.type": "#Thermal.v1_0_2.Thermal",
data: "ContextID": "iDRAC.Embedded.1#CPU1Temp",
data: "Label": "CPU1 Temp"
data: }
data: },
data: "Timestamp": "2019-05-28T18:16:09.072000000Z"
data: },
data: {
data: "MetricId": "CurrentReading",
data: "MetricValue": "67",
data: "Oem": {
data: "Dell": {
data: "@odata.type": "#Thermal.v1_0_2.Thermal",
data: "ContextID": "iDRAC.Embedded.1#CPU1Temp",
data: "Label": "CPU1 Temp"
data: }
data: },
data: "Timestamp": "2019-05-28T18:16:09.072000000Z"
data: }
data: ],
data: "ReportSequence": 5
data: }
data: }
Note that SSE events need to have a data:
each new line.
Hi I am having a regression issue related to Event Subscriptions. The following sequence is not forwarding any payloads:
$ git clone https://github.com/superchalupa/sailfish.git
$ cd sailfish
$ git checkout 1751275877eb7ed6fa5077c00722377d5524be96
$ cp redfish-mockup.yaml redfish.yaml
$ cp redfish-mockup-logging.yaml redfish-logging.yaml
$ go run ./cmd/sailfish/main.go ./cmd/sailfish/logging.go ./cmd/sailfish/sdnotify.go ./cmd/sailfish/without-spacemonkey.go ./cmd/sailfish/with-mockup.go -l http::8443
Logs:
CRIT[05-17|14:20:30] Action running! module=ec fn=github.com/superchalupa/sailfish/src/actionhandler.StartService.func2 caller=handler.go:129
CRIT[05-17|14:20:30] URI module=ec uri=/redfish/v1/TelemetryService/Actions/TelemetryService.SubmitTestMetricReport fn=github.com/superchalupa/sailfish/src/actionhandler.StartService.func2 caller=handler.go:141
CRIT[05-17|14:20:30] handler module=ec handler=0x91bf80 fn=github.com/superchalupa/sailfish/src/actionhandler.StartService.func2 caller=handler.go:145
$ git clone https://github.com/DMTF/Redfish-Event-Listener
$ cd Redfish-Event-Listener
$ (...) configure config.ini to update [SystemInformation], [SubsciptionDetails] and [ServerInformation] sections
$ python RedfishEventListener_v1.py
$ curl -H "Content-Type: application/json" -X POST http://Administrator:password@localhost:8443/redfish/v1/TelemetryService/Actions/TelemetryService.SubmitTestMetricReport -d "{\"EventTimestamp\": \"2019-05-14 10:18:10.232853\", \"MetricName\": \"ThermalStatus\", \"MetricValues\": [{\"MetricDefinition\": \"Inlet Temp\", \"MetricId\": \"Health\", \"MetricProperty\": \"/redfish/v1/Chassis/System.Embedded.1/Thermal/InletTemp\", \"MetricValue\": \"OK\", \"Timestamp\": \"2019-05-14T13:18:10.236Z\" }, { \"MetricDefinition\": \"Inlet Temp\", \"MetricId\": \"Reading\", \"MetricProperty\": \"/redfish/v1/Chassis/System.Embedded.1/Thermal/InletTemp\", \"MetricValue\": \"15\", \"Timestamp\": \"2019-05-14T13:18:10.236Z\" }]}"
{"EventTimestamp":"2019-05-14 10:18:10.232853","MetricName":"ThermalStatus","MetricValues":[{"MetricDefinition":"Inlet Temp","MetricId":"Health","MetricProperty":"/redfish/v1/Chassis/System.Embedded.1/Thermal/InletTemp","MetricValue":"OK","Timestamp":"2019-05-14T13:18:10.236Z"},{"MetricDefinition":"Inlet Temp","MetricId":"Reading","MetricProperty":"/redfish/v1/Chassis/System.Embedded.1/Thermal/InletTemp","MetricValue":"15","Timestamp":"2019-05-14T13:18:10.236Z"}]}
The same scenario was working if I replace the commit from sailfish with this commit 147c130:
$ git clone https://github.com/superchalupa/sailfish.git
$ cd sailfish
$ git checkout 147c130531b0a78a41208fd745734269b4f23ab4
$ cp redfish-mockup.yaml redfish.yaml
$ cp redfish-mockup-logging.yaml redfish-logging.yaml
$ go run ./cmd/sailfish/main.go ./cmd/sailfish/logging.go ./cmd/sailfish/sdnotify.go ./cmd/sailfish/without-spacemonkey.go ./cmd/sailfish/with-mockup.go -l http::8443
Logs:
WARN[05-17|14:21:33] ERROR POSTING module=event_service err="Post http://10.26.103.19:1444: EOF" fn=github.com/superchalupa/sailfish/src/ocp/eventservice.makePOST.func1 caller=entrypoint.go:218
CRIT[05-17|14:21:42] Action running! module=ec fn=github.com/superchalupa/sailfish/src/actionhandler.StartService.func2 caller=handler.go:129
CRIT[05-17|14:21:42] URI module=ec uri=/redfish/v1/TelemetryService/Actions/TelemetryService.SubmitTestMetricReport fn=github.com/superchalupa/sailfish/src/actionhandler.StartService.func2 caller=handler.go:141
CRIT[05-17|14:21:42] handler module=ec handler=0x905fd0 fn=github.com/superchalupa/sailfish/src/actionhandler.StartService.func2 caller=handler.go:145
WARN[05-17|14:21:42] ERROR POSTING module=event_service err="Post http://10.26.103.19:1444: EOF" fn=github.com/superchalupa/sailfish/src/ocp/eventservice.makePOST.func1 caller=entrypoint.go:218
It looks like the commit from "JIT-120888 More eventing fixes, forcing each event into a seperate PO" added a regression issue and its causing EventSubscription to not foward the events to its subscribed listeners.
Before this commit I was able to subscribe and get the payloads from sailfish just fine.
Could you please take a look?
Thanks,
Rodrigo.
The following scenario works:
$ git clone https://github.com/DMTF/Redfish-Mockup-Server.git
$ git clone https://github.com/superchalupa/sailfish.git
$ cd Redfish-Mockup-Server
$ python3 redfishMockupServer.py -D ../sailfish/Mockup-Datasets/Server-PowerEdge-C6320 -H 0.0.0.0 -p 8443
$ curl -H "Content-Type: application/json" -X POST http://Administrator:password@localhost:8443/redfish/v1/TelemetryService/Actions/TelemetryService.SubmitTestMetricReport -d "{\"EventTimestamp\": \"2019-05-14 10:18:10.232853\", \"MetricName\": \"ThermalStatus\", \"MetricValues\": [{\"MetricDefinition\": \"Inlet Temp\", \"MetricId\": \"Health\", \"MetricProperty\": \"/redfish/v1/Chassis/System.Embedded.1/Thermal/InletTemp\", \"MetricValue\": \"OK\", \"Timestamp\": \"2019-05-14T13:18:10.236Z\" }, { \"MetricDefinition\": \"Inlet Temp\", \"MetricId\": \"Reading\", \"MetricProperty\": \"/redfish/v1/Chassis/System.Embedded.1/Thermal/InletTemp\", \"MetricValue\": \"15\", \"Timestamp\": \"2019-05-14T13:18:10.236Z\" }]}"
curl http://localhost:8443/redfish/v1/TelemetryService/MetricReports/ThermalStatus
{
"@odata.context": "/redfish/v1/$metadata#MetricReport.MetricReport",
"@odata.id": "/redfish/v1/TelemetryService/MetricReports/ThermalStatus",
"@odata.type": "#MetricReport.v1_0_0.MetricReport",
"Id": "ThermalStatus",
"MetricReportDefinition": {
"@odata.id": "/redfish/v1/TelemetryService/MetricReportDefinitions/ThermalStatus"
},
"MetricValues": [
{
"MetricDefinition": "Inlet Temp",
"MetricId": "Health",
"MetricProperty": "/redfish/v1/Chassis/System.Embedded.1/Thermal/InletTemp",
"MetricValue": "OK",
"Timestamp": "2019-05-14T13:18:10.236Z"
},
{
"MetricDefinition": "Inlet Temp",
"MetricId": "Reading",
"MetricProperty": "/redfish/v1/Chassis/System.Embedded.1/Thermal/InletTemp",
"MetricValue": "15",
"Timestamp": "2019-05-14T13:18:10.236Z"
}
],
"Name": "ThermalStatus",
"Timestamp": "2019-05-17T14:28:49-75"
}
As above, I was able to update my MetricReports by posting some events using Redfish-Mockup-Server. The same scenario does not seem to be working when I use sailfish as the server:
$ cd sailfish
$ cp redfish-mockup.yaml redfish.yaml
$ cp redfish-mockup-logging.yaml redfish-logging.yaml
$ go run ./cmd/sailfish/main.go ./cmd/sailfish/logging.go ./cmd/sailfish/sdnotify.go ./cmd/sailfish/without-spacemonkey.go ./cmd/sailfish/with-mockup.go -l http::8443
$ curl -H "Content-Type: application/json" -X POST http://Administrator:password@localhost:8443/redfish/v1/TelemetryService/Actions/TelemetryService.SubmitTestMetricReport -d "{\"EventTimestamp\": \"2019-05-14 10:18:10.232853\", \"MetricName\": \"ThermalStatus\", \"MetricValues\": [{\"MetricDefinition\": \"Inlet Temp\", \"MetricId\": \"Health\", \"MetricProperty\": \"/redfish/v1/Chassis/System.Embedded.1/Thermal/InletTemp\", \"MetricValue\": \"OK\", \"Timestamp\": \"2019-05-14T13:18:10.236Z\" }, { \"MetricDefinition\": \"Inlet Temp\", \"MetricId\": \"Reading\", \"MetricProperty\": \"/redfish/v1/Chassis/System.Embedded.1/Thermal/InletTemp\", \"MetricValue\": \"15\", \"Timestamp\": \"2019-05-14T13:18:10.236Z\" }]}"
{"EventTimestamp":"2019-05-14 10:18:10.232853","MetricName":"ThermalStatus","MetricValues":[{"MetricDefinition":"Inlet Temp","MetricId":"Health","MetricProperty":"/redfish/v1/Chassis/System.Embedded.1/Thermal/InletTemp","MetricValue":"OK","Timestamp":"2019-05-14T13:18:10.236Z"},{"MetricDefinition":"Inlet Temp","MetricId":"Reading","MetricProperty":"/redfish/v1/Chassis/System.Embedded.1/Thermal/InletTemp","MetricValue":"15","Timestamp":"2019-05-14T13:18:10.236Z"}]}
$ curl http://localhost:8443/redfish/v1/TelemetryService/MetricReports/ThermalStatus
Could not find URL: /redfish/v1/TelemetryService/MetricReports/ThermalStatus
Could you please take a look and see that MetricReports is updated with the events sent to sailfish as they are when using Redfish-Mockup-Server?
Thanks in advance,
Rodrigo.
I tried building in simulation mode and it crashes with a missing config file:
cwikj@p5540:~/go/src/github.com/superchalupa/sailfish$ sh scripts/build-simulation.sh
+ find cmd/sailfish -type d
+ binaries=cmd/sailfish
+ TAGS=ec mockup
+ go build -tags simulation ec mockup github.com/superchalupa/sailfish/cmd/sailfish
+ echo
+ set +x
-e BUILD SUCCESS. binary ready: sailfish
cwikj@p5540:~/go/src/github.com/superchalupa/sailfish$ ./sailfish -l https::8443 -l pprof:localhost:6060
registering redfishresourceproperty with gob
Could not read config file: Config File "redfish" Not Found in "[/home/cwikj/go/src/github.com/superchalupa/sailfish /etc]"
If I copy redfish-simulation.yaml
to redfish.yaml
it appears to run. Is this correct?
When testing July 8th sailfish, we noticed that the payload generated by TelemetryService.SubmitTestMetricReport is an Alert Event containing a MetricReport as content of OEM property instead of a MetricReport.
The goal of SumitTestMetricReport is to generate MetricReport payloads for testing purposes.
See below the payload from our testing:
{
"Context": "Public",
"EventType": "Alert",
"MemberId": "60376dbe-cf2d-40d4-8064-5e0a9fc1d364",
"[email protected]": 0,
"MessageId": "TS00",
"Oem": {
"@odata.type": "#MetricReport.v1_0_2.MetricReport",
"Id": "ThermalSensor",
"MetricName": "ThermalSensor",
"MetricReportDefinition": {
"@odata.id": "/redfish/v1/TelemetryService/MetricReportDefinitions/ThermalSensor"
},
"MetricValues": [
{
"MetricId": "HealthState",
"MetricValue": "OK",
"Oem": {
"Dell": {
"@odata.type": "#Thermal.v1_0_2.Thermal",
"ContextDisplayName": "CPU1 Temp",
"ContextID": "iDRAC.Embedded.1#CPU1Temp"
}
},
"Timestamp": "2019-05-28T18:23:08.283000000Z"
}
],
"ReportSequence": 145
},
"OriginOfCondition": "/redfish/v1/TelmetryService/MetricReports/ThermalSensor"
}
The expected response would be the MetricReport direct, as below:
{
"@odata.type": "#MetricReport.v1_0_2.MetricReport",
"Id": "ThermalSensor",
"MetricName": "ThermalSensor",
"MetricReportDefinition": {
"@odata.id": "/redfish/v1/TelemetryService/MetricReportDefinitions/ThermalSensor"
},
"MetricValues": [
{
"MetricId": "HealthState",
"MetricValue": "OK",
"Oem": {
"Dell": {
"@odata.type": "#Thermal.v1_0_2.Thermal",
"ContextDisplayName": "CPU1 Temp",
"ContextID": "iDRAC.Embedded.1#CPU1Temp"
}
},
"Timestamp": "2019-05-28T18:23:08.283000000Z"
}
],
"ReportSequence": 145
}
On iDRACs I am able to use expand queries to avoid opening multiple URLs and have all the payload data in a single response. Example:
On sailfish, it seems this expand command is not working and I am not able to get the contents of the subscribed resource and I have to open the address in another request to see the contents:
Response:
{
"[email protected]": 1,
"Name": "Event Subscriptions Collection",
"@odata.id": "/redfish/v1/EventService/Subscriptions",
"@odata.type": "#EventDestinationCollection.EventDestinationCollection",
"@odata.context": "/redfish/v1/$metadata#EventDestinationCollection.EventDestinationCollection",
"Description": "List of Event subscriptions",
"Members": [
{
"@odata.id": "/redfish/v1/EventService/Subscriptions/0f6075d9-169f-4c21-8ce2-6c814665fb6a"
}
]
}
Is there a way to have this behaviour simulated in sailfish to get a response that would look like an actual iDRAC?
Thanks,
Rodrigo.
When sending telemetry metrics, subscription returns the payload, but sse does not. SSE only returns events, missing all metric reports sent.
I had to change the code with the following to enable metric reports:
diff --git a/src/http_redfish_sse/rfsse_handler.go b/src/http_redfish_sse/rfsse_handler.go
index 6eb1c66..da9171d 100644
--- a/src/http_redfish_sse/rfsse_handler.go
+++ b/src/http_redfish_sse/rfsse_handler.go
@@ -42,10 +42,10 @@ func (rh *RedfishSSEHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
requestLogger.Info("Trying to start RedfishSSE Stream for request.", "context", rfSubContext)
l, err := rh.d.EventWaiter.Listen(ctx, func(event eh.Event) bool {
- if event.EventType() != eventservice.ExternalRedfishEvent {
- return false
+ if event.EventType() != eventservice.ExternalRedfishEvent || event.EventType() != eventservice.ExternalMetricEvent {
+ return true
}
- return true
+ return false
})
if err != nil {
requestLogger.Crit("Could not create an event waiter.", "err", err)
@@ -121,11 +121,12 @@ func (rh *RedfishSSEHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
// TODO: we should encode to output rather than buffering internally in a string
fmt.Fprintf(w, "id: %d\n", evt.Id)
fmt.Fprintf(w, "data: %s\n\n", d)
- } else {
+ }
+ if evt, ok := event.Data().(eventservice.MetricReportData); ok {
// Handle metric reports
// TODO: find a better way to unify these
// sucks that we have to handle these two separately, but for now have to do it this way
- d, err := json.MarshalIndent(event.Data(), "data: ", " ")
+ d, err := json.MarshalIndent(evt.Data, "data: ", " ")
if err != nil {
requestLogger.Error("MARSHAL SSE (metric report) FAILED", "err", err, "data", event.Data(), "event", event)
return
Note that I also had to change how the MetricReportData was marshaled, because the code as it was it was sending the payload with and extra "Data {}" at the root level of the json.
The etcd-io/bbolt
has already renamed it’s import path from "github.com/etcd-io/bbolt" to "go.etcd.io/bbolt".
As README of etcd-io/bbolt
v1.3.2 said, downstream repos should use "go.etcd.io/bbolt" to get or import etcd-io/bbolt
.
To start using Bolt, install Go and run go get:
>$ go get go.etcd.io/bbolt/...
This will retrieve the library and install the bolt command line utility into your $GOBIN path.
Importing bbolt
To use bbolt as an embedded key-value store, import as:
>import bolt "go.etcd.io/bbolt"
…
But sailfishdell/sailfish
still used the old path:
https://github.com/sailfishdell/sailfish/blob/master/go.mod#L7
github.com/etcd-io/bbolt v1.3.2"
When you use the old path "github.com/etcd-io/bbolt" to import the etcd-io/bbolt
, it will be very easy to reintroduce etcd-io/bbolt
through the import statements "import go.etcd.io/bbolt" in the go source file of etcd-io/bbolt
.
https://github.com/etcd-io/bbolt/blob/v1.3.2/cursor_test.go#L14
package bbolt_test
import (
bolt "go.etcd.io/bbolt"
…
)
The "go.etcd.io/bbolt" and "github.com/etcd-io/bbolt" are the same repos. This will work in isolation, bring about potential risks and problems.
Replace all the old import paths, change "github.com/etcd-io/bbolt"
to "go.etcd.io/bbolt"
.
Where did you import it: https://github.com/sailfishdell/sailfish/search?q=github.com%2Fetcd-io%2Fbbolt&unscoped_q=github.com%2Fetcd-io%2Fbbolt
When subscribing to SSE, MetricReports are sent in the same format as Events. See example payload below
id: 69
data: {
data: "Id": "69",
data: "@odata.context": "/redfish/v1/$metadata#Event.Event",
data: "@odata.type": "#Event.v1_1_0.Event",
data: "Name": "Event Array",
data: "Events": [
data: {
data: "EventType": "Alert",
data: "MessageId": "TST100",
data: "OriginOfCondition": "/redfish/v1/TelmetryService/MetricReports/FanSensor",
data: "Oem": {
data: "@odata.type": "#MetricReport.v1_0_2.MetricReport",
data: "Id": "FanSensor",
data: "MetricName": "FanSensor",
data: "MetricReportDefinition": {
data: "@odata.id": "/redfish/v1/TelemetryService/MetricReportDefinitions/FanSensor"
data: },
data: "MetricValues": [
data: {
data: "MetricId": "HealthState",
data: "MetricValue": "OK",
data: "Oem": {
data: "Dell": {
data: "@odata.type": "#Thermal.v1_0_2.Thermal",
data: "ContextDisplayName": "Chassis Fan1A",
data: "ContextID": "0x17||Fan.Embedded.1A"
data: }
data: },
data: "Timestamp": "2019-05-28T18:19:51.043000000Z"
data: },
data: {
data: "MetricId": "CurrentReading",
data: "MetricValue": "16",
data: "Oem": {
data: "Dell": {
data: "@odata.type": "#Thermal.v1_0_2.Thermal",
data: "ContextDisplayName": "System Board Inlet Temp",
data: "ContextID": "iDRAC.Embedded.1#SystemBoardInletTemp"
data: }
data: },
data: "Timestamp": "2019-05-28T18:19:51.043000000Z"
data: }
data: ],
data: "ReportSequence": 80
data: }
data: },
data: {
data: "EventType": "ResourceAdded",
data: "MessageId": "TST100",
data: "OriginOfCondition": "/redfish/v1/TelemetryService/MetricReports/ThermalSensor"
data: }
data: ]
data: }
Expected format, as specified in DMTF's DSP0266_1.7.0.pdf (12.5.1.2. Metric report SSE stream), would be as below:
id: 69
data:{
data: "@odata.type": "#MetricReport.v1_0_2.MetricReport",
data: "Id": "FanSensor",
data: "MetricName": "FanSensor",
data: "MetricReportDefinition": {
data: "@odata.id": "/redfish/v1/TelemetryService/MetricReportDefinitions/FanSensor"
data: },
data: "MetricValues": [
data: {
data: "MetricId": "HealthState",
data: "MetricValue": "OK",
data: "Oem": {
data: "Dell": {
data: "@odata.type": "#Thermal.v1_0_2.Thermal",
data: "ContextDisplayName": "Chassis Fan1A",
data: "ContextID": "0x17||Fan.Embedded.1A"
data: }
data: },
data: "Timestamp": "2019-05-28T18:19:51.043000000Z"
data: },
data: {
data: "MetricId": "CurrentReading",
data: "MetricValue": "16",
data: "Oem": {
data: "Dell": {
data: "@odata.type": "#Thermal.v1_0_2.Thermal",
data: "ContextDisplayName": "System Board Inlet Temp",
data: "ContextID": "iDRAC.Embedded.1#SystemBoardInletTemp"
data: }
data: },
data: "Timestamp": "2019-05-28T18:19:51.043000000Z"
data: }
data: ],
data: "ReportSequence": 80
data:}
Will this Cover Hp ILo and Dell IDRAC redfish support with api?
Hi,
I'm trying to PATCH a metric report definition like redfish/v1/TelemetryService/MetricReportDefinitions/CPUSensor to change RecurrenceInterval and MetricReportDefinitionEnabled values
{
"Schedule": {
"RecurrenceInterval": "T90"
},
"MetricReportDefinitionEnabled": false
}
I'm able to do this PATCH resquest to RedfishMockupServer, but the sailfish always returns HTTP 401 - Unauthorized using Administrator/password basic auth header.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.