<div dir="ltr">Hi folks,<div><br></div><div>As we discussed before, DAL needs to provide API to access resources in the top and bottom OpenStack, so I implemented a client wrapper which has API like this:</div><div><br></div><div>list_servers(self, cxt, site, fileters)</div><div><br></div><div>cxt is the context object storing authorization information, site tells DAL where to send the REST request.</div><div><br></div><div>We have a "siteserviceconfiguration" table, and we have three choices how to use it.</div><div><br></div><div>1. We don't have an admin account, and we don't store service catalog(returned from Keystone when getting token, containing endpoint information) in cxt, then there's no way we can retrieve endpoints from Keystone, so we need to query endpoints from "siteserviceconfiguration" table. User needs to register site-service mapping via cascade service API, and if endpoints are updated in Keystone, user needs to update the mapping.</div><div><br></div><div>2. We don't have an admin account but we use service catalog, then cascade service needs to fill cxt with service catalog, so DAL can obtain endpoints from cxt. Endpoint update has no impact since we always have the newest endpoint information.</div><div><br></div><div>3. We have an admin account, then we can retrieve endpoints via endpoint-list.</div><div>(1) Use "siteserviceconfiguration" table as cache, then DAL needs to update this table when client fails to connect services(endpoints may be updated)</div><div>(2) No cache, then endpoint update again has no impact.</div><div><br></div><div>BR</div><div>Zhiyuan</div><div><br></div><div><br></div></div>