code: def set_power_state(self, desired_state):
          
          rn_array = [self.helper.service_profile,
               ManagedObject(NamingId.LS_POWER).MakeRn()]
          try:
              ls_power = ucs_helper.get_managed_object(self.helper.handle,
                                    LsPower.ClassId(),
                                    {LsPower.DN: UcsUtils.MakeDn(rn_array)})
              if not ls_power:
                  raise exception.UcsOperationError("set_power_state",
                            "Failed to get power MO,"
                            " configure valid service-profile.")
              else:
                  ls_power_set = self.helper.handle.SetManagedObject(
                                      ls_power,
                                      LsPower.ClassId(),
                                      {LsPower.STATE: desired_state},
                                      dumpXml=YesOrNo.TRUE
                                      )
                  if ls_power_set:
                      power = ls_power_set.pop()
                      return power.getattr(LsPower.STATE)
                  else:
                      return states.ERROR
          except Exception as ex:
              raise exception.UcsOperationError("set_power_state",
                    "Failed to get power MO,"
                    "configure valid servie-profile.")
docs: Set power state of this node
  
              :param node: Ironic node one of :class:`ironic.db.models.Node`
              :raises: InvalidParameterValue if required seamicro parameters are
                  missing.
              :raises: UcsOperationError  on an error from UcsHandle Client.
              :returns: Power state of the given node