Pages

Tuesday, February 6, 2018

[curl] OpenBMC Control

List Control Objects
[curl]
curl -b cjar -k https://${bmc_ip}/xyz/openbmc_project/control/list

For example
[curl in Linux]
$ curl -b cjar -k https://192.168.88.38/xyz/openbmc_project/control/list
{
  "data": [
    "/xyz/openbmc_project/control/power_supply_redundancy",
    "/xyz/openbmc_project/control/host0/power_restore_policy",
    "/xyz/openbmc_project/control/minimum_ship_level_required",
    "/xyz/openbmc_project/control/host0",
    "/xyz/openbmc_project/control/host0/restriction_mode",
    "/xyz/openbmc_project/control/host0/boot",
    "/xyz/openbmc_project/control/host0/auto_reboot",
    "/xyz/openbmc_project/control/host0/boot/one_time",
    "/xyz/openbmc_project/control/host0/power_cap",
    "/xyz/openbmc_project/control/host0/TPMEnable"
  ],
  "message": "200 OK",
  "status": "ok"
}


Enumerate Control Objects
[curl]
curl -b cjar -k https://${bmc_ip}/xyz/openbmc_project/control/enumerate

For example
[curl in Linux]
$ curl -b cjar -k https://192.168.88.38/xyz/openbmc_project/control/enumerate
{
  "data": {
    "/xyz/openbmc_project/control/host0": {},
    "/xyz/openbmc_project/control/host0/TPMEnable": {
      "TPMEnable": 0
    },
    "/xyz/openbmc_project/control/host0/auto_reboot": {
      "AutoReboot": 1
    },
    "/xyz/openbmc_project/control/host0/boot": {
      "BootMode": "xyz.openbmc_project.Control.Boot.Mode.Modes.Regular",
      "BootSource": "xyz.openbmc_project.Control.Boot.Source.Sources.Default"
    },
    "/xyz/openbmc_project/control/host0/boot/one_time": {
      "BootMode": "xyz.openbmc_project.Control.Boot.Mode.Modes.Regular",
      "BootSource": "xyz.openbmc_project.Control.Boot.Source.Sources.Default",
      "Enabled": 1
    },
    "/xyz/openbmc_project/control/host0/power_cap": {
      "PowerCap": 0,
      "PowerCapEnable": 0
    },
    "/xyz/openbmc_project/control/host0/power_restore_policy": {
      "PowerRestorePolicy": "xyz.openbmc_project.Control.Power.RestorePolicy.Policy.AlwaysOff"
    },
    "/xyz/openbmc_project/control/host0/restriction_mode": {
      "RestrictionMode": "xyz.openbmc_project.Control.Security.RestrictionMode.Modes.None"
    },
    "/xyz/openbmc_project/control/minimum_ship_level_required": {
      "MinimumShipLevelRequired": 1
    },
    "/xyz/openbmc_project/control/power_supply_redundancy": {
      "PowerSupplyRedundancyEnabled": 1
    }
  },
  "message": "200 OK",
  "status": "ok"
}


Host Auto Reboot
[curl]
curl -b cjar -k https://${bmc_ip}/xyz/openbmc_project/control/host0/auto_reboot
Enable Host Auto Reboot
curl -b cjar -k -X PUT -H "Content-Type: application/json" -d '{"data": 1}' https//${bmc_ip}/xyz/openbmc_project/control/host0/auto_reboot/attr/AutoReboot
Disable Host Auto Reboot
curl -b cjar -k -X PUT -H "Content-Type: application/json" -d '{"data": 0}' https//${bmc_ip}/xyz/openbmc_project/control/host0/auto_reboot/attr/AutoReboot

For example
[curl in Linux]
$ curl -b cjar -k https://192.168.88.38/xyz/openbmc_project/control/host0/auto_rebot
{
  "data": {
    "AutoReboot": 1
  },
  "message": "200 OK",
  "status": "ok"
}
$ curl -b cjar -k -X PUT -H "Content-Type: application/json" -d '{"data": 0}' https//192.168.88.38/xyz/openbmc_project/control/host0/auto_reboot/attr/AutoReboot
{
  "data": null,
  "message": "200 OK",
  "status": "ok"
}
$ curl -b cjar -khttps://192.168.88.38/xyz/openbmc_project/control/host0/auto_reboot
{
  "data": {
    "AutoReboot": 0
  },
  "message": "200 OK",
  "status": "ok"
}


Host Boot
[curl]
curl -b cjar -k https://${bmc_ip}/xyz/openbmc_project/control/host0/boot
Set Host Boot Regular Mode
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.Control.Boot.Mode.Modes.Regular"}' https://${bmc_ip}/xyz/openbmc_project/control/host0/boot/attr/BootMode
Set Host Boot Setup Mode
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.Control.Boot.Mode.Modes.Setup"}' https://${bmc_ip}/xyz/openbmc_project/control/host0/boot/attr/BootMode
Set Host Boot Safe Mode
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.Control.Boot.Mode.Modes.Safe"}' https://${bmc_ip}/xyz/openbmc_project/control/host0/boot/attr/BootMode
Set Host Boot Source from Default
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.Control.Boot.Source.Sources.Default"}' https://${bmc_ip}/xyz/openbmc_project/control/host0/boot/attr/BootSource
Set Host Boot Source from Disk
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.Control.Boot.Source.Sources.Disk"}' https://${bmc_ip}/xyz/openbmc_project/control/host0/boot/attr/BootSource
Set Host Boot Source from ExternalMedia
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.Control.Boot.Source.Sources.ExternalMedia"}' https://${bmc_ip}/xyz/openbmc_project/control/host0/boot/attr/BootSource
Set Host Boot Source from Network
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.Control.Boot.Source.Sources.Network"}' https://${bmc_ip}/xyz/openbmc_project/control/host0/boot/attr/BootSource

For example
[curl in Linux]
$ curl -b cjar -k https://192.168.88.38/xyz/openbmc_project/control/host0/boot
{
  "data": {
    "BootMode": "xyz.openbmc_project.Control.Boot.Mode.Modes.Regular",
    "BootSource": "xyz.openbmc_project.Control.Boot.Source.Sources.Default"
  },
  "message": "200 OK",
  "status": "ok"
}
$ curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.oenbmc_project.Control.Boot.Mode.Modes.Safe"}' https://192.168.88.38/xyz/openbmc_project/control/host0/boot/attr/BootMode
{
  "data": null,
  "message": "200 OK",
  "status": "ok"
}
$ curl c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.Control.Boot.Source.Sources.Network"}' https://192.168.88.38/xyz/openbmc_project/control/host0/boot/attr/BootSource
{
  "data": null,
  "message": "200 OK",
  "status": "ok"
}
$ curl b cjar -k https://192.168.88.38/xyz/openbmc_project/control/host0/boot
{
  "data": {
    "BootMode": "xyz.openbmc_project.Control.Boot.Mode.Modes.Safe",
    "BootSource": "xyz.openbmc_project.Control.Boot.Source.Sources.Network"
  },
  "message": "200 OK",
  "status": "ok"
}


Host Boot One-Time
[curl]
curl -b cjar -k https://${bmc_ip}/xyz/openbmc_project/control/host0/boot/one_time
Set Host One-Time Boot Mode
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.Control.Boot.Mode.Modes.Regular"}' https://${bmc_ip}/xyz/openbmc_project/control/host0/boot/one_time/attr/BootMode
Set Host One-Time Boot Source
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.Control.Boot.Source.Sources.Default"}' https://${bmc_ip}/xyz/openbmc_project/control/host0/boot/one_time/attr/BootSource

For example
[curl in Linux]
$ curl -b cjar -k https://192.168.88.38/xyz/openbmc_project/control/host0/boot/one_time
{
  "data": {
    "BootMode": "xyz.openbmc_project.Control.Boot.Mode.Modes.Regular",
    "BootSource": "xyz.openbmc_project.Control.Boot.Source.Sources.Default",
    "Enabled": 1
  },
  "message": "200 OK",
  "status": "ok"
}
$ curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.oenbmc_project.Control.Boot.Mode.Modes.Regular"}' https://192.168.88.38/xyz/openbmc_project/control/host0/boot/one_time/attr/BootMode
{
  "data": null,
  "message": "200 OK",
  "status": "ok"
}
$ curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.oenbmc_project.Control.Boot.Source.Sources.Default"}' https://192.168.88.38/xyz/openbmc_project/control/host0/boot/one_time/attr/BootSource
{
  "data": null,
  "message": "200 OK",
  "status": "ok"
}


Host Power Cap
[curl]
curl -b cjar -k https://${bmc_ip}/xyz/openbmc_project/control/host0/power_cap
Set Watt Limit to PowerCap
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "<Watts>"}' https://${bmc_ip}/xyz/openbmc_project/control/host0/power_cap/attr/PowerCap
Enable PowerCap
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": 1}' https://${bmc_ip}/xyz/openbmc_project/control/host0/power_cap/attr/PowerCapEnable
Disable PowerCap
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": 0}' https://${bmc_ip}/xyz/openbmc_project/control/host0/power_cap/attr/PowerCapEnable

For example
[curl in Linux]
$ curl -b cjar -k https://192.168.88.38/xyz/openbmc_project/control/host0/power_cap
{
  "data": {
    "PowerCap": 0,
    "PowerCapEnable": 0
  },
  "message": "200 OK",
  "status": "ok"
}
$ curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "800"} https://192.168.88.38/xyz/openbmc_project/control/host0/power_cap/attr/PowerCap
{
  "data": null,
  "message": "200 OK",
  "status": "ok"
}
$ curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": 1}' https://192.168.88.38/xyz/openbmc_project/control/host0/power_cap/attr/PowerCapEnab
le {
  "data": null,
  "message": "200 OK",
  "status": "ok"
}
$ curl b cjar -k https://192.168.88.38/xyz/openbmc_project/control/host0/power_cap
{
  "data": {
    "PowerCap": 800,
    "PowerCapEnable": 1
  },
  "message": "200 OK",
  "status": "ok"
}


Host Power Restore Policy
[curl]
curl -b cjar -k https://${bmc_ip}/xyz/openbmc_project/control/host0/power_restore_policy
Set Policy to Always On
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.Control.Power.RestorePolicy.Policy.AlwaysOn"}' https://${bmc_ip}/xyz/openbmc_project/control/host0/power_restore_policy/attr/PowerRestorePolicy
Set Policy to Always Off
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.Control.Power.RestorePolicy.Policy.AlwaysOff"}' https://${bmc_ip}/xyz/openbmc_project/control/host0/power_restore_policy/attr/PowerRestorePolicy
Set Policy to Restore
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.Control.Power.RestorePolicy.Policy.Restore"}' https://${bmc_ip}/xyz/openbmc_project/control/host0/power_restore_policy/attr/PowerRestorePolicy

For example
[curl in Linux]
$ curl -b cjar -k https://192.168.88.38/xyz/openbmc_project/control/host0/power_restore_policy
{
  "data": {
    "PowerRestorePolicy": "xyz.openbmc_project.Control.Power.RestorePolicy.Policy.AlwaysOff"
  },
  "message": "200 OK",
  "status": "ok"
}
$ curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.ControlPower.RestorePolicy.Policy.AlwaysOn"}' https://192.168.88.38/xyz/openbmc_project/control/host0/power_restore_policy/attr/PowerRestorePolicy
{
  "data": null,
  "message": "200 OK",
  "status": "ok"
}
$ curl -b cjar -k https://192.168.88.38/xyz/openbmc_project/control/host0/power_restore_policy
{
  "data": {
    "PowerRestorePolicy": "xyz.openbmc_project.Control.Power.RestorePolicy.Policy.AlwaysOn"
  },
  "message": "200 OK",
  "status": "ok"
}


Host Restriction Mode
[curl]
curl -b cjar -k https://${bmc_ip}/xyz/openbmc_project/control/host0/restriction_mode
No restriction
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.Control.Security.RestrictionMode.Modes.None"}' https://${bmc_ip}/xyz/openbmc_project/control/host0/restriction_mode/attr/RestrictionMode
Allow In The Whitelist
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.Control.Security.RestrictionMode.Modes.Whitelist"}' https://${bmc_ip}/xyz/openbmc_project/control/host0/restriction_mode/attr/RestrictionMode
Prevent In The Blacklist
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.openbmc_project.Control.Security.RestrictionMode.Modes.Blacklist"}' https://${bmc_ip}/xyz/openbmc_project/control/host0/restriction_mode/attr/RestrictionMode

For example
[curl in Linux]
$ curl -b cjar -k https://192.168.88.38/xyz/openbmc_project/control/host0/restriction_mode
{
  "data": {
    "RestrictionMode": "xyz.openbmc_project.Control.Security.RestrictionMode.Modes.None"
  },
  "message": "200 OK",
  "status": "ok"
}
$ curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": "xyz.oenbmc_project.Control.Security.RestrictionMode.Modes.Blacklist"}' https://192.168.88.38/xyz/openbmc_project/control/host0/restriction_mode/attr/RestrictionMode
{
  "data": null,
  "message": "200 OK",
  "status": "ok"
}
$ curl b cjar -k https://192.168.88.38/xyz/openbmc_project/control/host0/restriction_mode
{
  "data": {
    "RestrictionMode": "xyz.openbmc_project.Control.Security.RestrictionMode.Modes.Blacklist"
  },
  "message": "200 OK",
  "status": "ok"
}


Host TPM Enable
[curl]
curl -b cjar -k https://${bmc_ip}/xyz/openbmc_project/control/host0/TPMEnable
Enable Host TPM
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": 1}' https://${bmc_ip}/xyz/openbmc_project/control/host0/TPMEnable/attr/TPMEnable
Disable Host TPM
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": 0}' https://${bmc_ip}/xyz/openbmc_project/control/host0/TPMEnable/attr/TPMEnable

For example
[curl in Linux]
$ curl -b cjar -k https://192.168.88.38/xyz/openbmc_project/control/host0/TPMEnable
{
  "data": {
    "TPMEnable": 0
  },
  "message": "200 OK",
  "status": "ok"
}
$ curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": 1}' ttps://192.168.88.38/xyz/openbmc_project/control/host0/TPMEnable/attr/TPMEnable
{
  "data": null,
  "message": "200 OK",
  "status": "ok"
}
$ curl b cjar -k https://192.168.88.38/xyz/openbmc_project/control/host0/TPMEnable
{
  "data": {
    "TPMEnable": 1
  },
  "message": "200 OK",
  "status": "ok"
}


Minimum Ship Level Required
[curl]
curl -b cjar -k https://${bmc_ip}/xyz/openbmc_project/control/minimum_ship_level_required
Enable
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": 1}' https://${bmc_ip}/xyz/openbmc_project/control/minimum_ship_level_required/attr/MinimumShipLevelRequired
Disable
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": 0}' https://${bmc_ip}/xyz/openbmc_project/control/minimum_ship_level_required/attr/MinimumShipLevelRequired

For example
[curl in Linux]
$ curl -b cjar -k https://192.168.88.38/xyz/openbmc_project/control/minimum_ship_level_required
{
  "data": {
    "MinimumShipLevelRequired": 1
  },
  "message": "200 OK",
  "status": "ok"
}


Power Supply Redundancy
[curl]
curl -b cjar -k https://${bmc_ip}/xyz/openbmc_project/control/power_supply_redundancy
Enable
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": 1}' https://${bmc_ip}/xyz/openbmc_project/control/power_supply_redundancy/attr/PowerSupplyRedundancyEnabled
Disable
curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": 0}' https://${bmc_ip}/xyz/openbmc_project/control/power_supply_redundancy/attr/PowerSupplyRedundancyEnabled

For example
[curl in Linux]
$ curl -b cjar -k https://192.168.88.38/xyz/openbmc_project/control/power_supply_redundancy
{
  "data": {
    "PowerSupplyRedundancyEnabled": 1
  },
  "message": "200 OK",
  "status": "ok"
}
$ curl -c cjar -b cjar -k -H "Content-Type: application/json" -X PUT -d '{"data": 0}' https://192.168.88.38/xz/openbmc_project/control/power_supply_redundancy/attr/PowerSupplyRedundancyEnabled
{
  "data": null,
  "message": "200 OK",
  "status": "ok"
}
$ curl b cjar -k https://192.168.88.38/xyz/openbmc_project/control/power_supply_redundancy
{
  "data": {
    "PowerSupplyRedundancyEnabled": 0
  },
  "message": "200 OK",
  "status": "ok"
}




Last Updated: 23-02-2018

No comments:

Post a Comment