<?xml version="1.0" encoding="UTF-8"?>
<con:testCase id="6f28c996-2784-4730-8902-f514dce66d3c" discardOkResults="false" failOnError="true" failTestCaseOnErrors="true" keepSession="false" name="RBAC case1" searchProperties="true" timeout="0" xmlns:con="http://eviware.com/soapui/config">
  <con:settings>
    <con:setting id="6f28c996-2784-4730-8902-f514dce66d3cfileName">RBAC-case1</con:setting>
  </con:settings>
  <con:savedRecentRuns>1</con:savedRecentRuns>
  <con:testStep type="restrequest" name="login" id="be7c616a-0c6a-4f1b-a53e-d89fee1e53f2">
    <con:settings/>
    <con:config service="TiEM UI API" resourcePath="/api/v1/user/login" methodName="POST" xsi:type="con:RestRequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <con:restRequest name="login" id="1462dff4-0950-4f59-a435-496c868230e2" mediaType="application/json" postQueryString="false">
        <con:settings>
          <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting>
        </con:settings>
        <con:endpoint>http://172.16.4.134:4100</con:endpoint>
        <con:request>{
  "userName" : "admin",
  "userPassword" : "admin"
}</con:request>
        <con:originalUri>http://172.16.4.134/api/v1/user/login</con:originalUri>
        <con:assertion type="Valid HTTP Status Codes" id="155fd46f-3811-4c1a-b5f4-be86f7253481" name="Valid HTTP Status Codes">
          <con:settings/>
          <con:configuration>
            <codes>200</codes>
          </con:configuration>
        </con:assertion>
        <con:assertion type="DataAndMetadataAssertion" id="a8c25f94-6beb-4707-853e-ca72715b7a1c" name="Smart Assertion">
          <con:configuration xsi:type="con:DataAndMetadataAssertion">
            <con:mode>Received Data</con:mode>
            <con:elements>
              <con:path>$['code']</con:path>
              <con:element>code</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>true</con:enabled>
              <con:expectedValue>0</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>true</con:numberType>
              <con:expectedDataType>2</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['message']</con:path>
              <con:element>message</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>true</con:enabled>
              <con:expectedValue>OK</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['token']</con:path>
              <con:element>token</con:element>
              <con:operatorId>9</con:operatorId>
              <con:enabled>true</con:enabled>
              <con:expectedValue>7b0bc8ab-e66b-4cf3-9ada-d9ec39549646</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['userId']</con:path>
              <con:element>userId</con:element>
              <con:operatorId>9</con:operatorId>
              <con:enabled>true</con:enabled>
              <con:expectedValue>yD8pMBfUR4e8SV2TqPtRZQ</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['tenantId']</con:path>
              <con:element>tenantId</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>true</con:enabled>
              <con:expectedValue>admin</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:originalMessage>{"code":0,"message":"OK","data":{"token":"7b0bc8ab-e66b-4cf3-9ada-d9ec39549646","userId":"yD8pMBfUR4e8SV2TqPtRZQ","tenantId":"admin"}}</con:originalMessage>
          </con:configuration>
        </con:assertion>
        <con:credentials>
          <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile>
          <con:authType>No Authorization</con:authType>
        </con:credentials>
        <con:jmsConfig JMSDeliveryMode="PERSISTENT"/>
        <con:parameters/>
        <con:environmentSpec>
          <con:entry environmentId="145614f2-3764-4b2c-aea1-428a3da9b4e7">
            <con:authProfile>Inherit From Parent</con:authProfile>
          </con:entry>
          <con:entry environmentId="0348fa2a-7106-45b2-8fa8-793ec5904838">
            <con:authProfile>Inherit From Parent</con:authProfile>
          </con:entry>
        </con:environmentSpec>
      </con:restRequest>
    </con:config>
  </con:testStep>
  <con:testStep type="restrequest" name="cluster" id="6749d2a9-d85e-44b6-b4da-8fedd6dc9819">
    <con:settings/>
    <con:config service="TiEM UI API" resourcePath="/api/v1/clusters/" methodName="GET" xsi:type="con:RestRequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <con:restRequest name="cluster" id="f985b04d-12b3-4c64-8a6f-5def9b90bb6e" mediaType="application/json">
        <con:settings>
          <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;entry key="Authorization" value="Bearer ${login#Response#$['data']['token']}" xmlns="http://eviware.com/soapui/config"/></con:setting>
        </con:settings>
        <con:endpoint>http://172.16.4.134:4100</con:endpoint>
        <con:request/>
        <con:originalUri>http://172.16.4.134/api/v1/clusters/</con:originalUri>
        <con:assertion type="Valid HTTP Status Codes" id="bd829bab-2de5-44c4-9df8-59be59877fd4" name="Valid HTTP Status Codes">
          <con:settings/>
          <con:configuration>
            <codes>200</codes>
          </con:configuration>
        </con:assertion>
        <con:assertion type="DataAndMetadataAssertion" id="8d25e5b7-71e8-472a-a086-b5afc76c9087" name="Smart Assertion">
          <con:configuration xsi:type="con:DataAndMetadataAssertion">
            <con:mode>Received Data</con:mode>
            <con:elements>
              <con:path>$['code']</con:path>
              <con:element>code</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>0</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>true</con:numberType>
              <con:expectedDataType>2</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['message']</con:path>
              <con:element>message</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>OK</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['clusterId']</con:path>
              <con:element>clusterId</con:element>
              <con:operatorId>9</con:operatorId>
              <con:enabled>true</con:enabled>
              <con:expectedValue>dNP4olKcQ721S6gk1eX9pw</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['tags'][0]</con:path>
              <con:element>0</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>tag1</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['tls']</con:path>
              <con:element>tls</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>false</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>3</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['status']</con:path>
              <con:element>status</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>Running</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['role']</con:path>
              <con:element>role</con:element>
              <con:operatorId>9</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue xsi:nil="true"/>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['copies']</con:path>
              <con:element>copies</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>0</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>true</con:numberType>
              <con:expectedDataType>2</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['exclusive']</con:path>
              <con:element>exclusive</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>false</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>3</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['cpuArchitecture']</con:path>
              <con:element>cpuArchitecture</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>X86_64</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['alertUrl']</con:path>
              <con:element>alertUrl</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>172.16.6.104:10044</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['grafanaUrl']</con:path>
              <con:element>grafanaUrl</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>172.16.6.104:10043</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['maintainStatus']</con:path>
              <con:element>maintainStatus</con:element>
              <con:operatorId>9</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue xsi:nil="true"/>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['maintainWindow']</con:path>
              <con:element>maintainWindow</con:element>
              <con:operatorId>9</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue xsi:nil="true"/>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['intranetConnectAddresses'][0]</con:path>
              <con:element>0</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>172.16.6.102:10000</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['extranetConnectAddresses'][0]</con:path>
              <con:element>0</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>172.16.6.102:10000</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['whitelist']</con:path>
              <con:element>whitelist</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>[]</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>4</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['cpuUsage']['total']</con:path>
              <con:element>total</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>100</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>true</con:numberType>
              <con:expectedDataType>2</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['cpuUsage']['used']</con:path>
              <con:element>used</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>50</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>true</con:numberType>
              <con:expectedDataType>2</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['cpuUsage']['usageRate']</con:path>
              <con:element>usageRate</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>0.5</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>true</con:numberType>
              <con:expectedDataType>2</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['memoryUsage']['total']</con:path>
              <con:element>total</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>100</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>true</con:numberType>
              <con:expectedDataType>2</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['memoryUsage']['used']</con:path>
              <con:element>used</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>50</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>true</con:numberType>
              <con:expectedDataType>2</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['memoryUsage']['usageRate']</con:path>
              <con:element>usageRate</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>0.5</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>true</con:numberType>
              <con:expectedDataType>2</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['storageUsage']['total']</con:path>
              <con:element>total</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>100</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>true</con:numberType>
              <con:expectedDataType>2</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['storageUsage']['used']</con:path>
              <con:element>used</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>50</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>true</con:numberType>
              <con:expectedDataType>2</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['storageUsage']['usageRate']</con:path>
              <con:element>usageRate</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>0.5</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>true</con:numberType>
              <con:expectedDataType>2</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['backupFileUsage']['total']</con:path>
              <con:element>total</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>100</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>true</con:numberType>
              <con:expectedDataType>2</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['backupFileUsage']['used']</con:path>
              <con:element>used</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>50</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>true</con:numberType>
              <con:expectedDataType>2</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['backupFileUsage']['usageRate']</con:path>
              <con:element>usageRate</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>0.5</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>true</con:numberType>
              <con:expectedDataType>2</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['createTime']</con:path>
              <con:element>createTime</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>2021-12-21T12:50:40.177528916+08:00</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['updateTime']</con:path>
              <con:element>updateTime</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>2021-12-21T12:51:25.360098316+08:00</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['deleteTime']</con:path>
              <con:element>deleteTime</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>0001-01-01T00:00:00Z</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['page']['page']</con:path>
              <con:element>page</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>0</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>true</con:numberType>
              <con:expectedDataType>2</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['page']['pageSize']</con:path>
              <con:element>pageSize</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>0</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>true</con:numberType>
              <con:expectedDataType>2</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['page']['total']</con:path>
              <con:element>total</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>1</con:expectedValue>
              <con:caseSensitive>true</con:caseSensitive>
              <con:numberType>true</con:numberType>
              <con:expectedDataType>2</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['userId']</con:path>
              <con:element>userId</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>l_CfTmx3ScOPXTQqr3mLeg</con:expectedValue>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['clusterName']</con:path>
              <con:element>clusterName</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>tidb-test</con:expectedValue>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['clusterType']</con:path>
              <con:element>clusterType</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>TiDB</con:expectedValue>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['clusterVersion']</con:path>
              <con:element>clusterVersion</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>v4.0.12</con:expectedValue>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:elements>
              <con:path>$['data']['clusters'][0]['dbUser']</con:path>
              <con:element>dbUser</con:element>
              <con:operatorId>1</con:operatorId>
              <con:enabled>false</con:enabled>
              <con:expectedValue>root</con:expectedValue>
              <con:numberType>false</con:numberType>
              <con:expectedDataType>1</con:expectedDataType>
            </con:elements>
            <con:originalMessage>{"code":0,"message":"OK","data":{"clusters":[{"clusterId":"dNP4olKcQ721S6gk1eX9pw","userId":"l_CfTmx3ScOPXTQqr3mLeg","clusterName":"tidb-test","clusterType":"TiDB","clusterVersion":"v4.0.12","dbUser":"root","tags":["tag1"],"tls":false,"status":"Running","role":"","copies":0,"exclusive":false,"cpuArchitecture":"X86_64","alertUrl":"172.16.6.104:10044","grafanaUrl":"172.16.6.104:10043","maintainStatus":"","maintainWindow":"","intranetConnectAddresses":["172.16.6.102:10000"],"extranetConnectAddresses":["172.16.6.102:10000"],"whitelist":[],"cpuUsage":{"total":100,"used":50,"usageRate":0.5},"memoryUsage":{"total":100,"used":50,"usageRate":0.5},"storageUsage":{"total":100,"used":50,"usageRate":0.5},"backupFileUsage":{"total":100,"used":50,"usageRate":0.5},"createTime":"2021-12-21T12:50:40.177528916+08:00","updateTime":"2021-12-21T12:51:25.360098316+08:00","deleteTime":"0001-01-01T00:00:00Z"}]},"page":{"page":0,"pageSize":0,"total":1}}</con:originalMessage>
          </con:configuration>
        </con:assertion>
        <con:credentials>
          <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile>
          <con:authType>No Authorization</con:authType>
        </con:credentials>
        <con:jmsConfig JMSDeliveryMode="PERSISTENT"/>
        <con:parameters>
          <con:entry key="clusterType" value=""/>
          <con:entry key="clusterTag" value=""/>
          <con:entry key="clusterName" value=""/>
          <con:entry key="pageSize" value=""/>
          <con:entry key="clusterId" value=""/>
          <con:entry key="page" value=""/>
          <con:entry key="clusterStatus" value=""/>
        </con:parameters>
        <con:environmentSpec>
          <con:entry environmentId="145614f2-3764-4b2c-aea1-428a3da9b4e7">
            <con:authProfile>Inherit From Parent</con:authProfile>
          </con:entry>
          <con:entry environmentId="0348fa2a-7106-45b2-8fa8-793ec5904838">
            <con:authProfile>Inherit From Parent</con:authProfile>
          </con:entry>
        </con:environmentSpec>
      </con:restRequest>
    </con:config>
  </con:testStep>
  <con:testStep type="restrequest" name="createRole" id="07cece85-7643-4fb3-ad1d-a8ca500f8398">
    <con:settings/>
    <con:config service="TiEM UI API" methodName="POST" resourcePath="/api/v1/rbac/role/{role}" xsi:type="con:RestRequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <con:restRequest name="createRole" id="0a25d2ff-4bee-4c53-a524-47893497c632" mediaType="application/json" postQueryString="false">
        <con:settings>
          <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;entry key="Authorization" value="Bearer ${login#Response#$['data']['token']}" xmlns="http://eviware.com/soapui/config"/></con:setting>
        </con:settings>
        <con:encoding>UTF-8</con:encoding>
        <con:endpoint>http://172.16.4.134:4100</con:endpoint>
        <con:request>{
  "role" : "testRole"
}</con:request>
        <con:originalUri>http://172.16.4.134/api/v1/rbac/role/</con:originalUri>
        <con:assertion type="Valid HTTP Status Codes" id="33415f00-0f4f-4725-84a5-193f1c12c0d5" name="Valid HTTP Status Codes">
          <con:settings/>
          <con:configuration>
            <codes>200</codes>
          </con:configuration>
        </con:assertion>
        <con:assertion type="Response SLA Assertion" id="290d2109-f2d2-4ca7-be3e-d71e1278aa2d" name="Response SLA">
          <con:configuration>
            <SLA>400</SLA>
          </con:configuration>
        </con:assertion>
        <con:credentials>
          <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile>
          <con:authType>No Authorization</con:authType>
        </con:credentials>
        <con:jmsConfig JMSDeliveryMode="PERSISTENT"/>
        <con:parameters>
          <con:entry key="clusterId" value=""/>
        </con:parameters>
      </con:restRequest>
    </con:config>
  </con:testStep>
  <con:testStep type="restrequest" name="addPermission" id="6c8d5db0-eaa9-4520-ab48-7e0b0be3cdd2">
    <con:settings/>
    <con:config service="TiEM UI API" methodName="POST" resourcePath="/api/v1/rbac/permission/add" xsi:type="con:RestRequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <con:restRequest name="addPermission" id="bf0a1ff4-f79f-485c-a250-5163802fd005" mediaType="application/json" postQueryString="false">
        <con:settings>
          <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;entry key="Authorization" value="Bearer ${login#Response#$['data']['token']}" xmlns="http://eviware.com/soapui/config"/></con:setting>
        </con:settings>
        <con:encoding>UTF-8</con:encoding>
        <con:endpoint>http://172.16.4.134:4100</con:endpoint>
        <con:request>{
    "role": "testRole",
    "permissions": [
      {
        "resource": "CLUSTER",
        "action": "CREATE"
      },
      {
        "resource": "RESOURCE",
        "action": "DELETE"
      }
    ]
}</con:request>
        <con:originalUri>http://172.16.4.134/api/v1/rbac/permission/add</con:originalUri>
        <con:assertion type="Valid HTTP Status Codes" id="f0f0ee25-d129-47e4-8733-302cad40d07d" name="Valid HTTP Status Codes">
          <con:settings/>
          <con:configuration>
            <codes>200</codes>
          </con:configuration>
        </con:assertion>
        <con:assertion type="Response SLA Assertion" id="81cc25a9-771a-48ac-a7aa-393659a9d853" name="Response SLA">
          <con:configuration>
            <SLA>400</SLA>
          </con:configuration>
        </con:assertion>
        <con:credentials>
          <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile>
          <con:authType>No Authorization</con:authType>
        </con:credentials>
        <con:jmsConfig JMSDeliveryMode="PERSISTENT"/>
        <con:parameters>
          <con:entry key="clusterId" value=""/>
        </con:parameters>
      </con:restRequest>
    </con:config>
  </con:testStep>
  <con:testStep type="restrequest" name="bindRole" id="b6f5322d-1204-43dd-bc9a-aa452e2f0d28">
    <con:settings/>
    <con:config service="TiEM UI API" methodName="POST" resourcePath="/api/v1/rbac/role/bind" xsi:type="con:RestRequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <con:restRequest name="bindRole" id="3866e7af-d538-481b-87f1-f7b2eca3a1d8" mediaType="application/json" postQueryString="false">
        <con:settings>
          <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;entry key="Authorization" value="Bearer ${login#Response#$['data']['token']}" xmlns="http://eviware.com/soapui/config"/></con:setting>
        </con:settings>
        <con:encoding>UTF-8</con:encoding>
        <con:endpoint>http://172.16.4.134:4100</con:endpoint>
        <con:request>{ 
	"userId": "testUserId",
	"roles": ["testRole"]
}</con:request>
        <con:originalUri>http://172.16.4.134/api/v1/rbac/role/bind</con:originalUri>
        <con:assertion type="Valid HTTP Status Codes" id="6ea2aa58-133a-4fbd-b0cd-93f46813fc7f" name="Valid HTTP Status Codes">
          <con:settings/>
          <con:configuration>
            <codes>200</codes>
          </con:configuration>
        </con:assertion>
        <con:assertion type="Response SLA Assertion" id="0ea43dba-d18a-4e5b-9a54-e40559622e88" name="Response SLA">
          <con:configuration>
            <SLA>400</SLA>
          </con:configuration>
        </con:assertion>
        <con:credentials>
          <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile>
          <con:authType>No Authorization</con:authType>
        </con:credentials>
        <con:jmsConfig JMSDeliveryMode="PERSISTENT"/>
        <con:parameters>
          <con:entry key="clusterId" value=""/>
        </con:parameters>
      </con:restRequest>
    </con:config>
  </con:testStep>
  <con:testStep type="restrequest" name="checkPermission" id="7604cbb4-277f-4653-a7b2-89be7cb1aae0">
    <con:settings/>
    <con:config service="TiEM UI API" methodName="POST" resourcePath="/api/v1/rbac/permission/check" xsi:type="con:RestRequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <con:restRequest name="checkPermission" id="ef1e29b6-0eaa-4fc9-b183-d1ca4ece9538" mediaType="application/json" postQueryString="false">
        <con:settings>
          <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;entry key="Authorization" value="Bearer ${login#Response#$['data']['token']}" xmlns="http://eviware.com/soapui/config"/></con:setting>
        </con:settings>
        <con:encoding>UTF-8</con:encoding>
        <con:endpoint>http://172.16.4.134:4100</con:endpoint>
        <con:request>{
    "userId": "testUserId",
    "permissions": [
      {
        "resource": "CLUSTER",
        "action": "CREATE"
      }
    ]
}</con:request>
        <con:originalUri>http://172.16.4.134/api/v1/rbac/permission/check</con:originalUri>
        <con:assertion type="Valid HTTP Status Codes" id="f1c97d8b-0165-4f84-863e-047ee4f7478b" name="Valid HTTP Status Codes">
          <con:settings/>
          <con:configuration>
            <codes>200</codes>
          </con:configuration>
        </con:assertion>
        <con:assertion type="Response SLA Assertion" id="dfb1d78e-2f4a-49c5-bd2c-1bb07d337140" name="Response SLA">
          <con:configuration>
            <SLA>400</SLA>
          </con:configuration>
        </con:assertion>
        <con:credentials>
          <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile>
          <con:authType>No Authorization</con:authType>
        </con:credentials>
        <con:jmsConfig JMSDeliveryMode="PERSISTENT"/>
        <con:parameters>
          <con:entry key="clusterId" value=""/>
        </con:parameters>
      </con:restRequest>
    </con:config>
  </con:testStep>
  <con:testStep type="restrequest" name="deleteRole" id="2378a2b3-6878-400e-9484-be25dcc244a0">
    <con:settings/>
    <con:config service="TiEM UI API" methodName="DELETE" resourcePath="/api/v1/rbac/role/{role}" xsi:type="con:RestRequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <con:restRequest name="deleteRole" id="30457b9d-fdc8-43fa-bc6b-9d687ce7d82f" mediaType="application/json" postQueryString="false">
        <con:settings>
          <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;entry key="Authorization" value="Bearer ${login#Response#$['data']['token']}" xmlns="http://eviware.com/soapui/config"/></con:setting>
        </con:settings>
        <con:encoding>UTF-8</con:encoding>
        <con:endpoint>http://172.16.4.134:4100</con:endpoint>
        <con:request/>
        <con:originalUri>http://172.16.4.134/api/v1/rbac/role/testRole</con:originalUri>
        <con:assertion type="Valid HTTP Status Codes" id="eb284618-88a3-4a97-a317-c1161cd350a7" name="Valid HTTP Status Codes">
          <con:settings/>
          <con:configuration>
            <codes>200</codes>
          </con:configuration>
        </con:assertion>
        <con:assertion type="Response SLA Assertion" id="a5db3ff5-1077-4968-bfbd-249fbd322700" name="Response SLA">
          <con:configuration>
            <SLA>400</SLA>
          </con:configuration>
        </con:assertion>
        <con:credentials>
          <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile>
          <con:authType>No Authorization</con:authType>
        </con:credentials>
        <con:jmsConfig JMSDeliveryMode="PERSISTENT"/>
        <con:parameters>
          <con:entry key="role" value="testRole"/>
          <con:entry key="clusterId" value=""/>
        </con:parameters>
      </con:restRequest>
    </con:config>
  </con:testStep>
  <con:properties/>
  <con:reportParameters/>
  <con:environmentSpec>
    <con:entry environmentId="145614f2-3764-4b2c-aea1-428a3da9b4e7">
      <con:authProfile>Inherit From Parent</con:authProfile>
    </con:entry>
    <con:entry environmentId="0348fa2a-7106-45b2-8fa8-793ec5904838">
      <con:authProfile>Inherit From Parent</con:authProfile>
    </con:entry>
  </con:environmentSpec>
</con:testCase>
