Support for listing VPCs

This commit is contained in:
Pearl Dsilva 2024-10-10 17:11:50 -04:00
parent c5bf82aa7b
commit 4812531666
3 changed files with 26 additions and 2 deletions

View File

@ -17,10 +17,13 @@
package org.apache.cloudstack.service;
import io.netris.model.GetSiteBody;
import io.netris.model.VPCListing;
import java.util.List;
public interface NetrisApiClient {
boolean isSessionAlive();
List<GetSiteBody> listSites();
List<VPCListing> listVPCs();
}

View File

@ -20,11 +20,14 @@ import com.cloud.utils.exception.CloudRuntimeException;
import io.netris.ApiClient;
import io.netris.ApiException;
import io.netris.ApiResponse;
import io.netris.api.AuthenticationApi;
import io.netris.api.SitesApi;
import io.netris.api.v1.AuthenticationApi;
import io.netris.api.v1.SitesApi;
import io.netris.api.v2.VpcApi;
import io.netris.model.AuthSchema;
import io.netris.model.GetSiteBody;
import io.netris.model.SitesResponseOK;
import io.netris.model.VPCListing;
import io.netris.model.VPCResponseOK;
import io.netris.model.response.AuthResponse;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@ -93,4 +96,15 @@ public class NetrisApiClientImpl implements NetrisApiClient {
throw new CloudRuntimeException(e);
}
}
@Override
public List<VPCListing> listVPCs() {
VpcApi api = new VpcApi(apiClient);
try {
VPCResponseOK response = api.apiV2VpcGet();
return response.getData();
} catch (ApiException e) {
throw new CloudRuntimeException(e);
}
}
}

View File

@ -17,6 +17,7 @@
package org.apache.cloudstack.service;
import io.netris.model.GetSiteBody;
import io.netris.model.VPCListing;
import org.junit.Assert;
import org.junit.Test;
@ -40,4 +41,10 @@ public class NetrisApiClientImplTest {
List<GetSiteBody> sites = client.listSites();
Assert.assertTrue(sites.size() > 0);
}
@Test
public void testListVpcs() {
List<VPCListing> vpcs = client.listVPCs();
Assert.assertTrue(vpcs.size() > 0);
}
}