<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram>
<source><![CDATA[client:Library
/queue:FIFO
keystone:Service
compute:Service
policy:Service

[c:default_auth_token]
client:unscoped_token, serviceCatalog=keystone.auth<user, creds>
[/c]

[c:get_tenants]
client:tenants=keystone.get_tenants<unscoped_token>
[/c]

[c:tenant_auth_token]
client:token, serviceCatalog=keystone.auth<user, creds, tenant>
[/c]

[c:do_something_in_compute]
client:endpoint=serviceCatalog['compute']
client:success=compute.do_something<token, instance_id>

compute:tenant = parse(url)
[c:auth_middleware]
compute:user, roles=keystone.validate<token, [tenant]>
[/c]
compute:instance=instance_get(instance_id)
[c:policy_middleware]
compute:action='do_something'
compute:target=instance
compute:success=policy.check_acl<user, target, action, roles>
[/c]
compute:execute something logic
[/c]]]></source>
<configuration>
<property name="actorWidth" value="25"/>
<property name="allowMessageProperties" value="false"/>
<property name="arrowSize" value="6"/>
<property name="colorizeThreads" value="true"/>
<property name="destructorWidth" value="30"/>
<property family="Dialog" name="font" size="12" style="0"/>
<property name="fragmentMargin" value="8"/>
<property name="fragmentPadding" value="10"/>
<property name="fragmentTextPadding" value="3"/>
<property name="glue" value="10"/>
<property name="headHeight" value="35"/>
<property name="headLabelPadding" value="5"/>
<property name="headWidth" value="100"/>
<property name="initialSpace" value="10"/>
<property name="leftMargin" value="5"/>
<property name="lineWrap" value="false"/>
<property name="lowerMargin" value="5"/>
<property name="mainLifelineWidth" value="8"/>
<property name="messageLabelSpace" value="3"/>
<property name="messagePadding" value="6"/>
<property name="noteMargin" value="6"/>
<property name="notePadding" value="6"/>
<property name="opaqueMessageText" value="false"/>
<property name="returnArrowVisible" value="true"/>
<property name="rightMargin" value="5"/>
<property name="selfMessageHorizontalSpace" value="15"/>
<property name="separatorBottomMargin" value="8"/>
<property name="separatorTopMargin" value="15"/>
<property name="shouldShadowParticipants" value="true"/>
<property name="spaceBeforeActivation" value="2"/>
<property name="spaceBeforeAnswerToSelf" value="10"/>
<property name="spaceBeforeConstruction" value="6"/>
<property name="spaceBeforeSelfMessage" value="7"/>
<property name="subLifelineWidth" value="6"/>
<property name="tc0" value="-1118482"/>
<property name="tc1" value="-256"/>
<property name="tc2" value="-65536"/>
<property name="tc3" value="-16776961"/>
<property name="tc4" value="-16711936"/>
<property name="tc5" value="-4144960"/>
<property name="tc6" value="-65281"/>
<property name="tc7" value="-14336"/>
<property name="tc8" value="-20561"/>
<property name="tc9" value="-12566464"/>
<property name="threadNumbersVisible" value="false"/>
<property name="threaded" value="true"/>
<property name="upperMargin" value="5"/>
<property name="verticallySplit" value="true"/>
</configuration>
</diagram>
