Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

from keystoneclient import base 

 

 

class Token(base.Resource): 

    def __repr__(self): 

        return "<Token %s>" % self._info 

 

    @property 

    def id(self): 

        return self._info['token']['id'] 

 

    @property 

    def expires(self): 

        return self._info['token']['expires'] 

 

    @property 

    def tenant(self): 

        return self._info['token'].get('tenant', None) 

 

 

class TokenManager(base.Manager): 

    resource_class = Token 

 

    def authenticate(self, username=None, tenant_id=None, tenant_name=None, 

                     password=None, token=None, return_raw=False): 

        if token: 

            params = {"auth": {"token": {"id": token}}} 

        elif username and password: 

            params = {"auth": {"passwordCredentials": {"username": username, 

                                                       "password": password}}} 

        else: 

            raise ValueError('A username and password or token is required.') 

        if tenant_id: 

            params['auth']['tenantId'] = tenant_id 

        elif tenant_name: 

            params['auth']['tenantName'] = tenant_name 

        reset = 0 

        if self.api.management_url is None: 

            reset = 1 

            self.api.management_url = self.api.auth_url 

        token_ref = self._create('/tokens', params, "access", 

                                 return_raw=return_raw) 

        if reset: 

            self.api.management_url = None 

        return token_ref 

 

    def delete(self, token): 

        return self._delete("/tokens/%s" % base.getid(token)) 

 

    def endpoints(self, token): 

        return self._get("/tokens/%s/endpoints" % base.getid(token), "token")