Source code for q2_cores.SymXchange.queries.poweron_query

import logging
import uuid
from typing import Type

from lxml.builder import E, ElementMaker
from q2_cores.SymXchange.models import namespaces
from q2_cores.SymXchange.models import Credentials, DeviceInformation
from q2_cores.SymXchange.queries.base_query import SymXchangeBaseQuery


[docs] class PoweronQuery(SymXchangeBaseQuery): def __init__( self, logger: logging.Logger, rg_name: str, rg_state: str, rg_usrchr_params: list, rg_usrnum_params: list, credentials: Type[Credentials], device_info: DeviceInformation, mock_response_string: str = None, mock_failure: bool = False, ): self.rg_name = rg_name.strip() self.rg_state = rg_state.strip() self.rg_usrchr_params = rg_usrchr_params or [] self.rg_usrnum_params = rg_usrnum_params or [] super().__init__( logger, credentials, device_info, mock_response_string, mock_failure ) @property def service(self) -> str: return "poweron"
[docs] def build(self) -> str: poweron = ElementMaker( namespace=namespaces.SYMXCHANGE_POWERON, nsmap={"pow": namespaces.SYMXCHANGE_POWERON}, ) # User chr parameters user_params = [] for i, param in enumerate(self.rg_usrchr_params, start=1): user_params.append(E.RGUserChr(E.ID(str(i)), E.Value(param.strip()))) # User num parameters for i, param in enumerate(self.rg_usrnum_params, start=1): user_params.append(E.RGUserNum(E.ID(str(i)), E.Value(str(param)))) execute_poweron = poweron.executePowerOn( E.Request( self.create_credentials(), self.create_device_info(), E.Header(E.MessageID(str(uuid.uuid4())), E.RGState(self.rg_state)), E.Body( E.File(self.rg_name), E.RGSession("1"), E.UserDefinedParameters(*user_params), ), ) ) envelope = self.create_envelope(execute_poweron) return super().serialize(envelope)