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

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

# vim: tabstop=4 shiftwidth=4 softtabstop=4 

 

# Copyright 2012 OpenStack LLC 

# 

# Licensed under the Apache License, Version 2.0 (the "License"); you may 

# not use this file except in compliance with the License. You may obtain 

# a copy of the License at 

# 

#      http://www.apache.org/licenses/LICENSE-2.0 

# 

# Unless required by applicable law or agreed to in writing, software 

# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 

# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 

# License for the specific language governing permissions and limitations 

# under the License. 

 

from keystone.common import sql 

 

 

class Ec2Credential(sql.ModelBase, sql.DictBase): 

    __tablename__ = 'ec2_credential' 

    access = sql.Column(sql.String(64), primary_key=True) 

    secret = sql.Column(sql.String(64)) 

    user_id = sql.Column(sql.String(64)) 

    tenant_id = sql.Column(sql.String(64)) 

 

    @classmethod 

    def from_dict(cls, user_dict): 

        return cls(**user_dict) 

 

    def to_dict(self): 

        return dict(self.iteritems()) 

 

 

class Ec2(sql.Base): 

    def get_credential(self, credential_id): 

        session = self.get_session() 

        query = session.query(Ec2Credential) 

        query = query.filter_by(access=credential_id) 

        credential_ref = query.first() 

42        if not credential_ref: 

            return 

        return credential_ref.to_dict() 

 

    def list_credentials(self, user_id): 

        session = self.get_session() 

        query = session.query(Ec2Credential) 

        credential_refs = query.filter_by(user_id=user_id) 

        return [x.to_dict() for x in credential_refs] 

 

    # CRUD 

    def create_credential(self, credential_id, credential): 

        session = self.get_session() 

        with session.begin(): 

            credential_ref = Ec2Credential.from_dict(credential) 

            session.add(credential_ref) 

            session.flush() 

        return credential_ref.to_dict() 

 

    def delete_credential(self, credential_id): 

        session = self.get_session() 

        query = session.query(Ec2Credential) 

        query = query.filter_by(access=credential_id) 

        credential_ref = query.first() 

        with session.begin(): 

            session.delete(credential_ref) 

            session.flush()