diff --git a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/AmazonEc2Credentials.java b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/AmazonEc2Credentials.java index 5ad665e..447afe7 100644 --- a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/AmazonEc2Credentials.java +++ b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/AmazonEc2Credentials.java @@ -25,8 +25,16 @@ private AmazonEc2Credentials() { super(ServiceProvider.EC2); } + private AmazonEc2Credentials(String id) { + super(ServiceProvider.EC2, id); + } + public static AmazonEc2Credentials buildCredentials() { return new AmazonEc2Credentials(); } + + public static AmazonEc2Credentials buildCredentials(String id) { + return new AmazonEc2Credentials(id); + } } diff --git a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/AzureCredentials.java b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/AzureCredentials.java index 2e2c39c..5d336ac 100644 --- a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/AzureCredentials.java +++ b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/AzureCredentials.java @@ -26,10 +26,18 @@ private AzureCredentials() { super(ServiceProvider.AZURE); } + private AzureCredentials(String id) { + super(ServiceProvider.AZURE, id); + } + public static AzureCredentials buildCredentials() { return new AzureCredentials(); } + public static AzureCredentials buildCredentials(String id) { + return new AzureCredentials(id); + } + public AzureCredentials withPublicKey(String publicKey) { setCredentials(new PrivateKeyProperty(getCredentials(), publicKey)); return this; diff --git a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/DockerCredentials.java b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/DockerCredentials.java index ed5fe0a..91b4e70 100644 --- a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/DockerCredentials.java +++ b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/DockerCredentials.java @@ -24,8 +24,16 @@ private DockerCredentials() { super(ServiceProvider.DOCKER); } + private DockerCredentials(String id) { + super(ServiceProvider.DOCKER, id); + } + public static DockerCredentials buildCredentials() { return new DockerCredentials(); } + public static DockerCredentials buildCredentials(String id) { + return new DockerCredentials(id); + } + } diff --git a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/DummyCredential.java b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/DummyCredential.java index 0b5181b..ccb92b1 100644 --- a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/DummyCredential.java +++ b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/DummyCredential.java @@ -24,8 +24,16 @@ private DummyCredential() { super(ServiceProvider.DUMMY); } + private DummyCredential(String id) { + super(ServiceProvider.DUMMY, id); + } + public static DummyCredential buildCredentials() { return new DummyCredential(); } + public static DummyCredential buildCredentials(String id) { + return new DummyCredential(id); + } + } diff --git a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/FogBowCredentials.java b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/FogBowCredentials.java index b1af293..20d6f85 100644 --- a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/FogBowCredentials.java +++ b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/FogBowCredentials.java @@ -24,8 +24,16 @@ private FogBowCredentials() { super(ServiceProvider.FOG_BOW); } + private FogBowCredentials(String id) { + super(ServiceProvider.FOG_BOW, id); + } + public static FogBowCredentials buildCredentials() { return new FogBowCredentials(); } + public static FogBowCredentials buildCredentials(String id) { + return new FogBowCredentials(id); + } + } diff --git a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/GceCredentials.java b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/GceCredentials.java index 10bb4de..35ce036 100644 --- a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/GceCredentials.java +++ b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/GceCredentials.java @@ -25,10 +25,18 @@ private GceCredentials() { super(ServiceProvider.GCE); } + private GceCredentials(String id) { + super(ServiceProvider.GCE, id); + } + public static GceCredentials buildCredentials() { return new GceCredentials(); } + public static GceCredentials buildCredentials(String id) { + return new GceCredentials(id); + } + public GceCredentials withProject(String project) { setCredentials(new ProjectProperty(getCredentials(), project)); return this; diff --git a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/GenericCredentials.java b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/GenericCredentials.java index dd1e90c..36d02cd 100644 --- a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/GenericCredentials.java +++ b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/GenericCredentials.java @@ -33,6 +33,10 @@ protected GenericCredentials(ServiceProvider provider) { credentials = new BaseProperties(provider.getId(), provider.getType()); } + protected GenericCredentials(ServiceProvider provider, String id) { + credentials = new BaseProperties(id, provider.getType()); + } + @Override public String serialize() { return credentials.serialize(); diff --git a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/ImCredentials.java b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/ImCredentials.java index 277ae5c..2924a62 100644 --- a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/ImCredentials.java +++ b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/ImCredentials.java @@ -24,8 +24,16 @@ private ImCredentials() { super(ServiceProvider.INFRASTRUCTURE_MANAGER); } + private ImCredentials(String id) { + super(ServiceProvider.INFRASTRUCTURE_MANAGER, id); + } + public static ImCredentials buildCredentials() { return new ImCredentials(); } + public static ImCredentials buildCredentials(String id) { + return new ImCredentials(id); + } + } diff --git a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/KubernetesCredentials.java b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/KubernetesCredentials.java index 2daa1b8..e0aaf8d 100644 --- a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/KubernetesCredentials.java +++ b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/KubernetesCredentials.java @@ -18,15 +18,22 @@ import es.upv.i3m.grycap.im.auth.credentials.ServiceProvider; -public class KubernetesCredentials - extends GenericCredentials { +public class KubernetesCredentials extends GenericCredentials { private KubernetesCredentials() { super(ServiceProvider.KUBERNETES); } + private KubernetesCredentials(String id) { + super(ServiceProvider.KUBERNETES, id); + } + public static KubernetesCredentials buildCredentials() { return new KubernetesCredentials(); } + public static KubernetesCredentials buildCredentials(String id) { + return new KubernetesCredentials(id); + } + } diff --git a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/OcciCredentials.java b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/OcciCredentials.java index b2fcafe..764a01e 100644 --- a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/OcciCredentials.java +++ b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/OcciCredentials.java @@ -24,8 +24,16 @@ private OcciCredentials() { super(ServiceProvider.OCCI); } + private OcciCredentials(String id) { + super(ServiceProvider.OCCI, id); + } + public static OcciCredentials buildCredentials() { return new OcciCredentials(); } + public static OcciCredentials buildCredentials(String id) { + return new OcciCredentials(id); + } + } diff --git a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/OpenNebulaCredentials.java b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/OpenNebulaCredentials.java index 8de125d..624b58f 100644 --- a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/OpenNebulaCredentials.java +++ b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/OpenNebulaCredentials.java @@ -25,8 +25,16 @@ private OpenNebulaCredentials() { super(ServiceProvider.OPENNEBULA); } + private OpenNebulaCredentials(String id) { + super(ServiceProvider.OPENNEBULA, id); + } + public static OpenNebulaCredentials buildCredentials() { return new OpenNebulaCredentials(); } + public static OpenNebulaCredentials buildCredentials(String id) { + return new OpenNebulaCredentials(id); + } + } diff --git a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/OpenStackCredentials.java b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/OpenStackCredentials.java index 2ef0453..5fc98ee 100644 --- a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/OpenStackCredentials.java +++ b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/OpenStackCredentials.java @@ -31,10 +31,18 @@ public class OpenStackCredentials private OpenStackCredentials() { super(ServiceProvider.OPENSTACK); } + + private OpenStackCredentials(String id) { + super(ServiceProvider.OPENSTACK, id); + } public static OpenStackCredentials buildCredentials() { return new OpenStackCredentials(); } + + public static OpenStackCredentials buildCredentials(String id) { + return new OpenStackCredentials(id); + } public OpenStackCredentials withTenant(String tenant) { setCredentials(new TenantProperty(getCredentials(), tenant)); diff --git a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/VmrcCredentials.java b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/VmrcCredentials.java index d92c22b..bf092b6 100644 --- a/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/VmrcCredentials.java +++ b/src/main/java/es/upv/i3m/grycap/im/auth/credentials/providers/VmrcCredentials.java @@ -24,8 +24,16 @@ private VmrcCredentials() { super(ServiceProvider.VMRC); } + private VmrcCredentials(String id) { + super(ServiceProvider.VMRC, id); + } + public static VmrcCredentials buildCredentials() { return new VmrcCredentials(); } + public static VmrcCredentials buildCredentials(String id) { + return new VmrcCredentials(id); + } + } diff --git a/src/test/java/es/upv/i3m/grycap/im/auth/credentials/CredentialProvidersTest.java b/src/test/java/es/upv/i3m/grycap/im/auth/credentials/CredentialProvidersTest.java index 867406d..eeb966e 100644 --- a/src/test/java/es/upv/i3m/grycap/im/auth/credentials/CredentialProvidersTest.java +++ b/src/test/java/es/upv/i3m/grycap/im/auth/credentials/CredentialProvidersTest.java @@ -41,44 +41,53 @@ public class CredentialProvidersTest extends GenericCredentials { // Test user/pass private static final String USER = "user"; private static final String PASS = "pass"; - private static final String USER_PASS = - "username = " + USER + " ; password = " + PASS; + private static final String USER_PASS = "username = " + USER + " ; password = " + PASS; + + // Test ID + private static final String CUSTOM_ID_PROPERTY = "customId"; + private static final String CUSTOM_ID = "id = " + CUSTOM_ID_PROPERTY + " ; "; + // Credentials private static final String DUMMY_CREDS = "id = dummy ; type = Dummy"; - private static final String IM_UP_CREDS = - "id = im ; type = InfrastructureManager ; " + USER_PASS; + private static final String DUMMY_WITH_ID = CUSTOM_ID + "type = Dummy"; + private static final String IM_UP_CREDS = "id = im ; type = InfrastructureManager ; " + USER_PASS; private static final String IM_TK_CREDS = "id = im ; type = InfrastructureManager ; token = token"; + private static final String IM_WITH_ID = CUSTOM_ID + "type = InfrastructureManager"; private static final String VMRC_CREDS = "id = vmrc ; type = VMRC ; " + USER_PASS + " ; host = host"; - private static final String OST_CREDS = - "id = ost ; type = OpenStack ; " + USER_PASS - + " ; tenant = tenant ; service_region = region ; host = host ; base_url = base ;" - + " service_name = name ; auth_token = token ; domain = domain"; - private static final String OST_CREDS_PASS_3 = - "id = ost ; type = OpenStack ; " + USER_PASS - + " ; tenant = tenant ; service_region = region ; host = host ; auth_version = 3.X_password"; - private static final String OST_CREDS_PASS_3_TOKEN = - "id = ost ; type = OpenStack ; " + USER_PASS - + " ; tenant = tenant ; service_region = region ; host = host ; auth_version = 3.x_oidc_access_token"; - private static final String OCCI_CREDS = - "id = occi ; type = OCCI ; host = host ; proxy = proxy"; + private static final String VMRC_WITH_ID = CUSTOM_ID + "type = VMRC"; + private static final String OST_CREDS = "id = ost ; type = OpenStack ; " + USER_PASS + + " ; tenant = tenant ; service_region = region ; host = host ; base_url = base ;" + + " service_name = name ; auth_token = token ; domain = domain"; + private static final String OST_CREDS_PASS_3 = "id = ost ; type = OpenStack ; " + USER_PASS + + " ; tenant = tenant ; service_region = region ; host = host ; auth_version = 3.X_password"; + private static final String OST_CREDS_PASS_3_TOKEN = "id = ost ; type = OpenStack ; " + USER_PASS + + " ; tenant = tenant ; service_region = region ; host = host ; auth_version = 3.x_oidc_access_token"; + private static final String OST_WITH_ID = CUSTOM_ID + "type = OpenStack"; + private static final String OCCI_CREDS = "id = occi ; type = OCCI ; host = host ; proxy = proxy"; + private static final String OCCI_WITH_ID = CUSTOM_ID + "type = OCCI"; private static final String ONE_UP_CREDS = "id = one ; type = OpenNebula ; " + USER_PASS + " ; host = host"; private static final String ONE_TK_CREDS = "id = one ; type = OpenNebula ; token = token ; host = host"; - private static final String EC2_CREDS = - "id = ec2 ; type = EC2 ; " + USER_PASS; - private static final String AZURE_CREDS = "id = azure ; type = Azure ; " - + "username = " + USER + " ; private_key = public ; public_key = private"; - private static final String DOCKER_CREDS = - "id = docker ; type = Docker ; host = host_url"; + private static final String ONE_WITH_ID = CUSTOM_ID + "type = OpenNebula"; + private static final String EC2_CREDS = "id = ec2 ; type = EC2 ; " + USER_PASS; + private static final String EC2_WITH_ID = CUSTOM_ID + "type = EC2"; + private static final String AZURE_CREDS = "id = azure ; type = Azure ; " + "username = " + USER + + " ; private_key = public ; public_key = private"; + private static final String AZURE_WITH_ID = CUSTOM_ID + "type = Azure"; + private static final String DOCKER_CREDS = "id = docker ; type = Docker ; host = host_url"; + private static final String DOCKER_WITH_ID = CUSTOM_ID + "type = Docker"; private static final String GCE_CREDS = "id = gce ; type = GCE ; " + USER_PASS + " ; project = testPrj"; + private static final String GCE_WITH_ID = CUSTOM_ID + "type = GCE"; private static final String KUB_CREDS = "id = kub ; type = Kubernetes ; username = user ; password = pass ; host = host"; + private static final String KUB_WITH_ID = CUSTOM_ID + "type = Kubernetes"; private static final String FOG_BOW_CREDS = "id = fog ; type = FogBow ; host = host ; proxy = proxy"; + private static final String FOG_BOW_WITH_ID = CUSTOM_ID + "type = FogBow"; @Test public void testServiceProviderEnumMethods() { @@ -95,6 +104,13 @@ public void testAmazonEc2UserPassCredentials() { Assert.assertEquals(EC2_CREDS, getAuthorizationHeader().serialize()); } + @Test + public void testAmazonEc2WithId() { + Credentials cred = AmazonEc2Credentials.buildCredentials(CUSTOM_ID_PROPERTY); + getAuthorizationHeader().addCredential(cred); + Assert.assertEquals(EC2_WITH_ID, getAuthorizationHeader().serialize()); + } + @Test public void testAzureCredentials() { Credentials cred = AzureCredentials.buildCredentials().withUsername(USER) @@ -103,6 +119,13 @@ public void testAzureCredentials() { Assert.assertEquals(AZURE_CREDS, getAuthorizationHeader().serialize()); } + @Test + public void testAzureWithId() { + Credentials cred = AzureCredentials.buildCredentials(CUSTOM_ID_PROPERTY); + getAuthorizationHeader().addCredential(cred); + Assert.assertEquals(AZURE_WITH_ID, getAuthorizationHeader().serialize()); + } + @Test public void testDockerCredentials() { Credentials cred = @@ -111,6 +134,13 @@ public void testDockerCredentials() { Assert.assertEquals(DOCKER_CREDS, getAuthorizationHeader().serialize()); } + @Test + public void testDockerWithId() { + Credentials cred = DockerCredentials.buildCredentials(CUSTOM_ID_PROPERTY); + getAuthorizationHeader().addCredential(cred); + Assert.assertEquals(DOCKER_WITH_ID, getAuthorizationHeader().serialize()); + } + @Test public void testDummyCredentials() { Credentials cred = DummyCredential.buildCredentials(); @@ -118,6 +148,13 @@ public void testDummyCredentials() { Assert.assertEquals(DUMMY_CREDS, getAuthorizationHeader().serialize()); } + @Test + public void testDummyWithId() { + Credentials cred = DummyCredential.buildCredentials(CUSTOM_ID_PROPERTY); + getAuthorizationHeader().addCredential(cred); + Assert.assertEquals(DUMMY_WITH_ID, getAuthorizationHeader().serialize()); + } + @Test public void testFogBowCredentials() { Credentials cred = FogBowCredentials.buildCredentials().withHost("host") @@ -126,6 +163,13 @@ public void testFogBowCredentials() { Assert.assertEquals(FOG_BOW_CREDS, getAuthorizationHeader().serialize()); } + @Test + public void testFogBowWithId() { + Credentials cred = FogBowCredentials.buildCredentials(CUSTOM_ID_PROPERTY); + getAuthorizationHeader().addCredential(cred); + Assert.assertEquals(FOG_BOW_WITH_ID, getAuthorizationHeader().serialize()); + } + @Test public void testGceUserPwdCredentials() { Credentials cred = GceCredentials.buildCredentials().withUsername(USER) @@ -134,6 +178,13 @@ public void testGceUserPwdCredentials() { Assert.assertEquals(GCE_CREDS, getAuthorizationHeader().serialize()); } + @Test + public void testGceWithId() { + Credentials cred = GceCredentials.buildCredentials(CUSTOM_ID_PROPERTY); + getAuthorizationHeader().addCredential(cred); + Assert.assertEquals(GCE_WITH_ID, getAuthorizationHeader().serialize()); + } + @Test public void testImUserPassCredentials() { Credentials cred = @@ -149,6 +200,13 @@ public void testImTokenCredentials() { Assert.assertEquals(IM_TK_CREDS, getAuthorizationHeader().serialize()); } + @Test + public void testImWithId() { + Credentials cred = ImCredentials.buildCredentials(CUSTOM_ID_PROPERTY); + getAuthorizationHeader().addCredential(cred); + Assert.assertEquals(IM_WITH_ID, getAuthorizationHeader().serialize()); + } + @Test public void testKubernetesCredentials() { Credentials cred = KubernetesCredentials.buildCredentials() @@ -157,6 +215,13 @@ public void testKubernetesCredentials() { Assert.assertEquals(KUB_CREDS, getAuthorizationHeader().serialize()); } + @Test + public void testKubernetesWithId() { + Credentials cred = KubernetesCredentials.buildCredentials(CUSTOM_ID_PROPERTY); + getAuthorizationHeader().addCredential(cred); + Assert.assertEquals(KUB_WITH_ID, getAuthorizationHeader().serialize()); + } + @Test public void testOcciCredentials() { Credentials cred = @@ -165,6 +230,13 @@ public void testOcciCredentials() { Assert.assertEquals(OCCI_CREDS, getAuthorizationHeader().serialize()); } + @Test + public void testOcciWithId() { + Credentials cred = OcciCredentials.buildCredentials(CUSTOM_ID_PROPERTY); + getAuthorizationHeader().addCredential(cred); + Assert.assertEquals(OCCI_WITH_ID, getAuthorizationHeader().serialize()); + } + @Test public void testOpenNebulaUserPassCredentials() { Credentials cred = OpenNebulaCredentials.buildCredentials() @@ -181,6 +253,13 @@ public void testOpenNebulaTokenCredentials() { Assert.assertEquals(ONE_TK_CREDS, getAuthorizationHeader().serialize()); } + @Test + public void testOpenNebulaWithId() { + Credentials cred = OpenNebulaCredentials.buildCredentials(CUSTOM_ID_PROPERTY); + getAuthorizationHeader().addCredential(cred); + Assert.assertEquals(ONE_WITH_ID, getAuthorizationHeader().serialize()); + } + @Test public void testOpenStackCredentials() { Credentials cred = OpenStackCredentials.buildCredentials() @@ -213,6 +292,13 @@ public void testOpenStackCredentialsPassword3Token() { getAuthorizationHeader().serialize()); } + @Test + public void testOpenStackWithId() { + Credentials cred = OpenStackCredentials.buildCredentials(CUSTOM_ID_PROPERTY); + getAuthorizationHeader().addCredential(cred); + Assert.assertEquals(OST_WITH_ID, getAuthorizationHeader().serialize()); + } + @Test public void testVmrcCredentials() { Credentials cred = VmrcCredentials.buildCredentials().withUsername(USER) @@ -221,6 +307,13 @@ public void testVmrcCredentials() { Assert.assertEquals(VMRC_CREDS, getAuthorizationHeader().serialize()); } + @Test + public void testVmrcWithId() { + Credentials cred = VmrcCredentials.buildCredentials(CUSTOM_ID_PROPERTY); + getAuthorizationHeader().addCredential(cred); + Assert.assertEquals(VMRC_WITH_ID, getAuthorizationHeader().serialize()); + } + @Test(expected = IllegalArgumentException.class) public void testNullCredentials() { Credentials cred = VmrcCredentials.buildCredentials().withPassword(PASS)