def handle_get_account(self, req):
account = req.path_info_pop()<EOL>if req.path_info or not account or account[<NUM_LIT:0>] == '<STR_LIT:.>':<EOL><INDENT>return HTTPBadRequest(request=req)<EOL><DEDENT>if not self.is_account_admin(req, account):<EOL><INDENT>return self.denied_response(req)<EOL><DEDENT>path = quote('<STR_LIT>' % (self.auth_account, account))<EOL>resp = self.make_pre_authed_request(<EOL>req.environ, '<STR_LIT:GET>', path).get_response(self.app)<EOL>if resp.status_int == <NUM_LIT>:<EOL><INDENT>return HTTPNotFound(request=req)<EOL><DEDENT>if resp.status_int // <NUM_LIT:100> != <NUM_LIT:2>:<EOL><INDENT>raise Exception('<STR_LIT>' %<EOL>(path, resp.status))<EOL><DEDENT>services = json.loads(resp.body)<EOL>listing = []<EOL>marker = '<STR_LIT>'<EOL>while True:<EOL><INDENT>path = '<STR_LIT>' % (quote('<STR_LIT>' %<EOL>(self.auth_account, account)), quote(marker))<EOL>resp = self.make_pre_authed_request(<EOL>req.environ, '<STR_LIT:GET>', path).get_response(self.app)<EOL>if resp.status_int == <NUM_LIT>:<EOL><INDENT>return HTTPNotFound(request=req)<EOL><DEDENT>if resp.status_int // <NUM_LIT:100> != <NUM_LIT:2>:<EOL><INDENT>raise Exception('<STR_LIT>' %<EOL>(path, resp.status))<EOL><DEDENT>account_id = resp.headers['<STR_LIT>']<EOL>sublisting = json.loads(resp.body)<EOL>if not sublisting:<EOL><INDENT>break<EOL><DEDENT>for obj in sublisting:<EOL><INDENT>if obj['<STR_LIT:name>'][<NUM_LIT:0>] != '<STR_LIT:.>':<EOL><INDENT>listing.append({'<STR_LIT:name>': obj['<STR_LIT:name>']})<EOL><DEDENT><DEDENT>marker = sublisting[-<NUM_LIT:1>]['<STR_LIT:name>'].encode('<STR_LIT:utf-8>')<EOL><DEDENT>return Response(content_type=CONTENT_TYPE_JSON,<EOL>body=json.dumps({'<STR_LIT>': account_id,<EOL>'<STR_LIT>': services,<EOL>'<STR_LIT>': listing}))<EOL>
Handles the GET v2/<account> call for getting account information.
        Can only be called by an account .admin.

        On success, a JSON dictionary will be returned containing the keys
        `account_id`, `services`, and `users`. The `account_id` is the value
        used when creating service accounts. The `services` value is a dict as
        described in the :func:`handle_get_token` call. The `users` value is a
        list of dicts, each dict representing a user and currently only
        containing the single key `name`. For example::

             {"account_id": "AUTH_018c3946-23f8-4efb-a8fb-b67aae8e4162",
              "services": {"storage": {"default": "local",
                           "local": "http://127.0.0.1:8080/v1/AUTH_018c3946"}},
              "users": [{"name": "tester"}, {"name": "tester3"}]}

        :param req: The swob.Request to process.
        :returns: swob.Response, 2xx on success with a JSON dictionary as
                  explained above.