def set_power_state(self, desired_state):
        """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
            """
        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.")
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