Skip to content

Commit 6a7f9f9

Browse files
author
Alan Quillin
committed
Added missing identity methods for listing Tenants
1 parent b73d854 commit 6a7f9f9

10 files changed

Lines changed: 74 additions & 10 deletions

File tree

src/console/Program.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,8 @@ namespace net.openstack.console
88
{
99
class Program
1010
{
11+
static void Main(string[] args)
12+
{
13+
}
1114
}
1215
}

src/corelib/Core/Domain/IdentityToken.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ public class IdentityToken
88

99
public string Id { get; set; }
1010

11+
public Tenant Tenant { get; set; }
12+
1113
public bool IsExpired()
1214
{
1315
if (string.IsNullOrWhiteSpace(Expires))

src/corelib/Core/Domain/Tenant.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
6+
namespace net.openstack.Core.Domain
7+
{
8+
public class Tenant
9+
{
10+
public string Id { get; set; }
11+
12+
public string Name { get; set; }
13+
}
14+
}

src/corelib/Core/IIdentityProvider.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,7 @@ public interface IIdentityProvider
2727
UserCredential[] ListUserCredentials(CloudIdentity identity, string userId);
2828
UserCredential UpdateUserCredentials(CloudIdentity identity, string userId);
2929
bool DeleteUserCredentials(CloudIdentity identity, string userId);
30+
31+
Tenant[] ListTenants(CloudIdentity identity);
3032
}
3133
}

src/corelib/Providers/Rackspace/GeographicalIdentityProvider.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,20 @@ public bool DeleteUser(CloudIdentity identity, string userId)
204204

205205
#endregion
206206

207+
#region Tenants
208+
209+
public Tenant[] ListTenants(CloudIdentity identity)
210+
{
211+
var response = ExecuteRESTRequest<TenantsResponse>(identity, "v2.0/tenants", HttpMethod.GET);
212+
213+
if (response == null || response.Data == null)
214+
return null;
215+
216+
return response.Data.Tenants;
217+
}
218+
219+
#endregion
220+
207221
#region Token and Authentication
208222

209223
public string GetToken(CloudIdentity idenity, bool forceCacheRefresh = false)

src/corelib/Providers/Rackspace/IdentityProvider.cs

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ public IdentityProvider(IRestService restService = null, ICache<UserAccess> toke
1717
public Role[] ListRoles(CloudIdentity identity)
1818
{
1919
var provider = GetProvider(identity);
20-
2120
return provider.ListRoles(identity);
2221
}
2322

@@ -36,7 +35,6 @@ public Role GetRole(CloudIdentity identity, string roleId)
3635
public Role[] GetRolesByUser(CloudIdentity identity, string userId)
3736
{
3837
var provider = GetProvider(identity);
39-
4038
return provider.GetRolesByUser(identity, userId);
4139
}
4240

@@ -49,28 +47,24 @@ public User[] ListUsers(CloudIdentity identity)
4947
public User GetUserByName(CloudIdentity identity, string name)
5048
{
5149
var provider = GetProvider(identity);
52-
5350
return provider.GetUserByName(identity, name);
5451
}
5552

5653
public UserAccess Authenticate(CloudIdentity identity, bool forceCacheRefresh = false)
5754
{
5855
var provider = GetProvider(identity);
59-
6056
return provider.Authenticate(identity, forceCacheRefresh);
6157
}
6258

6359
public bool AddRoleToUser(CloudIdentity identity, string userId, string roleId)
6460
{
6561
var provider = GetProvider(identity);
66-
6762
return provider.AddRoleToUser(identity, userId, roleId);
6863
}
6964

7065
public User GetUser(CloudIdentity identity, string userId)
7166
{
7267
var provider = GetProvider(identity);
73-
7468
return provider.GetUser(identity, userId);
7569
}
7670

@@ -83,7 +77,6 @@ public User AddUser(CloudIdentity identity, User user)
8377
public User UpdateUser(CloudIdentity identity, User user)
8478
{
8579
var provider = GetProvider(identity);
86-
8780
return provider.UpdateUser(identity, user);
8881
}
8982

@@ -117,24 +110,27 @@ public bool DeleteUserCredentials(CloudIdentity identity, string userId)
117110
return provider.DeleteUserCredentials(identity, userId);
118111
}
119112

120-
public string GetToken(CloudIdentity identity, bool forceCacheRefresh = false)
113+
public Tenant[] ListTenants(CloudIdentity identity)
121114
{
122115
var provider = GetProvider(identity);
116+
return provider.ListTenants(identity);
117+
}
123118

119+
public string GetToken(CloudIdentity identity, bool forceCacheRefresh = false)
120+
{
121+
var provider = GetProvider(identity);
124122
return provider.GetToken(identity, forceCacheRefresh);
125123
}
126124

127125
public bool DeleteRoleFromUser(CloudIdentity identity, string userId, string roleId)
128126
{
129127
var provider = GetProvider(identity);
130-
131128
return provider.DeleteRoleFromUser(identity, userId, roleId);
132129
}
133130

134131
public IdentityToken GetTokenInfo(CloudIdentity identity, bool forceCacheRefresh = false)
135132
{
136133
var provider = GetProvider(identity);
137-
138134
return provider.GetTokenInfo(identity);
139135
}
140136

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using net.openstack.Core.Domain;
6+
7+
namespace net.openstack.Providers.Rackspace.Objects.Response
8+
{
9+
internal class TenantsResponse
10+
{
11+
public Tenant[] Tenants { get; set; }
12+
}
13+
}

src/corelib/corelib.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
<Compile Include="Core\Domain\Personality.cs" />
6161
<Compile Include="Core\Domain\RebootType.cs" />
6262
<Compile Include="Core\Domain\ServerAddresses.cs" />
63+
<Compile Include="Core\Domain\Tenant.cs" />
6364
<Compile Include="Core\Domain\UserCredential.cs" />
6465
<Compile Include="Core\Exceptions\Response\BadServiceRequestException.cs" />
6566
<Compile Include="Core\Exceptions\Response\ItemNotFoundException.cs" />
@@ -92,6 +93,7 @@
9293
<Compile Include="Providers\Rackspace\Objects\AuthDetails.cs" />
9394
<Compile Include="Providers\Rackspace\Objects\Request\CreateServerRequest.cs" />
9495
<Compile Include="Providers\Rackspace\Objects\Response\CreateServerResponse.cs" />
96+
<Compile Include="Providers\Rackspace\Objects\Response\TenantsResponse.cs" />
9597
<Compile Include="Providers\Rackspace\Objects\Response\UserCredentialResponse.cs" />
9698
<Compile Include="Providers\Rackspace\Objects\Response\UsersResponse.cs" />
9799
<Compile Include="Providers\Rackspace\RackspaceImpersonationIdentity.cs" />
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System;
2+
using System.Text;
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using Microsoft.VisualStudio.TestTools.UnitTesting;
6+
7+
namespace Net.OpenStack.Testing.Integration.Providers.Rackspace
8+
{
9+
[TestClass]
10+
public class IdentityTests
11+
{
12+
[TestMethod]
13+
public void TestMethod1()
14+
{
15+
}
16+
}
17+
}

src/testing/integration/integration.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
<ItemGroup>
5555
<Compile Include="Properties\AssemblyInfo.cs" />
5656
<Compile Include="Providers\Rackspace\ComputeTests.cs" />
57+
<Compile Include="Providers\Rackspace\IdentityTests.cs" />
5758
</ItemGroup>
5859
<ItemGroup>
5960
<ProjectReference Include="..\..\corelib\corelib.csproj">

0 commit comments

Comments
 (0)