File tree Expand file tree Collapse file tree
lib/fog/openstack/identity Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -37,6 +37,8 @@ class V3 < Fog::Service
3737 collection :role_assignments
3838 model :os_credential
3939 collection :os_credentials
40+ model :application_credential
41+ collection :application_credentials
4042 model :policy
4143 collection :policies
4244
@@ -111,12 +113,16 @@ class V3 < Fog::Service
111113 request :create_os_credential
112114 request :update_os_credential
113115 request :delete_os_credential
116+ request :list_application_credentials
117+ request :create_application_credentials
118+ request :delete_application_credentials
119+ request :get_application_credentials
114120 request :list_policies
115121 request :get_policy
116122 request :create_policy
117123 request :update_policy
118124 request :delete_policy
119-
125+
120126 class Mock
121127 include Fog ::OpenStack ::Core
122128 def initialize ( options = { } )
Original file line number Diff line number Diff line change 1+ require 'fog/openstack/models/model'
2+
3+ module Fog
4+ module OpenStack
5+ class Identity
6+ class V3
7+ class ApplicationCredential < Fog ::OpenStack ::Model
8+ identity :id
9+
10+ attribute :description
11+ attribute :name
12+ attribute :roles
13+ attribute :expires_at
14+ attribute :user_id
15+ attribute :secret
16+
17+ class << self
18+ attr_accessor :cache
19+ end
20+
21+ @cache = { }
22+
23+ def to_s
24+ id . to_s
25+ end
26+
27+ def destroy
28+ requires :id
29+ service . delete_application_credentials ( id , user_id )
30+ true
31+ end
32+
33+ def create
34+ merge_attributes (
35+ service . create_application_credentials ( attributes ) . body [ 'application_credential' ]
36+ )
37+ self
38+ end
39+ end
40+ end
41+ end
42+ end
43+ end
Original file line number Diff line number Diff line change 1+ require 'fog/openstack/models/collection'
2+ require 'fog/openstack/identity/v3/models/os_credential'
3+
4+ module Fog
5+ module OpenStack
6+ class Identity
7+ class V3
8+ class ApplicationCredentials < Fog ::OpenStack ::Collection
9+ model Fog ::OpenStack ::Identity ::V3 ::ApplicationCredential
10+
11+ def all ( options = { } )
12+ load_response ( service . list_application_credentials ( options ) , 'application_credentials' )
13+ end
14+
15+ def find_by_id ( id , user_id )
16+ cached_credential = all ( user_id ) . find { |application_credential | application_credential . id == id }
17+ return cached_credential if cached_credential
18+ credential_hash = service . get_application_credentials ( id , user_id ) . body [ 'application_credential' ]
19+ Fog ::OpenStack ::Identity ::V3 ::ApplicationCredential . new (
20+ credential_hash . merge ( :service => service )
21+ )
22+ end
23+
24+ def destroy ( id )
25+ credential = find_by_id ( id )
26+ credential . destroy
27+ end
28+ end
29+ end
30+ end
31+ end
32+ end
Original file line number Diff line number Diff line change @@ -30,6 +30,11 @@ def projects
3030 service . list_user_projects ( id ) . body [ 'projects' ]
3131 end
3232
33+ def application_credentials
34+ requires :id
35+ service . list_application_credentials ( id ) . body [ 'application_credentials' ]
36+ end
37+
3338 def roles
3439 requires :id , :domain_id
3540 service . list_domain_user_roles ( domain_id , id ) . body [ 'roles' ]
Original file line number Diff line number Diff line change 1+ module Fog
2+ module OpenStack
3+ class Identity
4+ class V3
5+ class Real
6+ def create_application_credentials ( credential = { } )
7+ user_id = credential . delete ( 'user_id' ) || credential . delete ( :user_id )
8+ request (
9+ :expects => [ 201 ] ,
10+ :method => 'POST' ,
11+ :path => "users/#{ user_id } /application_credentials" ,
12+ :body => Fog ::JSON . encode ( :application_credential => credential )
13+ )
14+ end
15+ end
16+
17+ class Mock
18+ def create_application_credentials ( credential = { } )
19+ raise Fog ::Errors ::MockNotImplemented
20+ end
21+ end
22+ end
23+ end
24+ end
25+ end
Original file line number Diff line number Diff line change 1+ module Fog
2+ module OpenStack
3+ class Identity
4+ class V3
5+ class Real
6+ def delete_application_credentials ( application_credential_id , user_id )
7+ request (
8+ :expects => [ 204 ] ,
9+ :method => 'DELETE' ,
10+ :path => "users/#{ user_id } /application_credentials/#{ application_credential_id } " ,
11+ )
12+ end
13+ end
14+
15+ class Mock
16+ def delete_application_credentials ( application_credential_id , user_id )
17+ raise Fog ::Errors ::MockNotImplemented
18+ end
19+ end
20+ end
21+ end
22+ end
23+ end
24+
Original file line number Diff line number Diff line change 1+ module Fog
2+ module OpenStack
3+ class Identity
4+ class V3
5+ class Real
6+ def get_application_credentials ( id , user_id )
7+ request (
8+ :expects => [ 200 ] ,
9+ :method => 'GET' ,
10+ :path => "users/#{ user_id } /application_credentials/#{ id } " ,
11+ )
12+ end
13+ end
14+
15+ class Mock
16+ def get_application_credentials ( id , user_id )
17+ raise Fog ::Errors ::MockNotImplemented
18+ end
19+ end
20+ end
21+ end
22+ end
23+ end
24+
Original file line number Diff line number Diff line change 1+ module Fog
2+ module OpenStack
3+ class Identity
4+ class V3
5+ class Real
6+ def list_application_credentials ( user_id )
7+ request (
8+ :expects => [ 200 ] ,
9+ :method => 'GET' ,
10+ :path => "users/#{ user_id } /application_credentials" ,
11+ )
12+ end
13+ end
14+
15+ class Mock
16+ def list_application_credentials ( user_id )
17+ raise Fog ::Errors ::MockNotImplemented
18+ end
19+ end
20+ end
21+ end
22+ end
23+ end
You can’t perform that action at this time.
0 commit comments