Skip to main content

varianttests.run_live

LiveRunner Objects​

class LiveRunner()

prune_logging​

def prune_logging(scenarios) -> None

De bewaartermijn, na afloop van de hele run.

Aan het eind appendt niets meer, dus deze DELETE kan met niemand botsen en niemand wacht erop. Hij wist alleen regels ouder dan de termijn: die van de vorige run blijven staan, want bij het uitzoeken van een rode uitslag zijn ze het eerste wat je nodig hebt.

dax_probe​

def dax_probe(effective_user_name: str, model: str) -> int

Ask the notebook, as the service principal, to run DAX with impersonation.

The one thing documentation cannot answer: EffectiveUserName goes over XMLA, and whether the suite's service principal may impersonate there is a permission question about this tenant and this model. Reading DMVs already works from a notebook (DAG_Tabular does it), but that is a different right.

De workspace gaat mee bij naam, want zo wil het XMLA-endpoint hem: de URL is powerbi://api.powerbi.com/v1.0/myorg/<naam> en kent geen id. Precies daar liep sempy op stuk. Het kreeg van ons een id en ging de bijbehorende naam opzoeken via /v1.0/myorg/groups, vier keer 403 voor een service principal (build 1419, 1428, 1435, 1441), zonder ooit XMLA te bereiken. De naam staat in de configuratie, dus er valt niets op te zoeken.

Sinds build 1463 vraagt de probe ook naar het lidmaatschap van de rollen. Dat staat niet in de TMDL - getDefinition laat de members weg - maar de DMV's achter dezelfde XMLA-verbinding kennen ze wel. Of ze bij ons ook gevuld terugkomen is de vraag: er zijn meldingen van een lege TMSCHEMA_ROLE_MEMBERSHIPS terwijl de RLS gewoon werkt.

Deliberately not a scenario. It asserts nothing, touches no table and needs no reset; it prints what came back so a human can read it once and decide.