Skip to content

Commit 505a8d1

Browse files
authored
AV-186753: Added pagination support in vRO plugin. (#194)
* AV-186753: Added pagination support in the plugin. * Updated fetchObjectLists action version.
1 parent c336f3f commit 505a8d1

File tree

15 files changed

+65
-31
lines changed

15 files changed

+65
-31
lines changed

o11nplugin-vro-core/pom.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<artifactId>vro</artifactId>
88
<groupId>com.vmware.avi</groupId>
9-
<version>22.1.4.RELEASE</version>
9+
<version>22.1.4.1</version>
1010
</parent>
1111

1212
<modelVersion>4.0.0</modelVersion>
@@ -23,7 +23,7 @@
2323
<dependency>
2424
<groupId>com.vmware.avi.sdk</groupId>
2525
<artifactId>avisdk</artifactId>
26-
<version>22.1.4.RELEASE</version>
26+
<version>22.1.4..1</version>
2727
</dependency>
2828

2929
<dependency>
@@ -189,4 +189,4 @@
189189
</plugin>
190190
</plugins>
191191
</build>
192-
</project>
192+
</project>

o11nplugin-vro-core/src/main/java/com/vmware/avi/vro/AviVroClient.java

+37-3
Original file line numberDiff line numberDiff line change
@@ -718,13 +718,47 @@ private void clearQueue() {
718718
* @throws Exception
719719
*/
720720
@VsoMethod
721-
public JSONArray get(String objectType, Map<String, String> params, String tenant) throws Exception {
721+
public JSONObject get(String objectType, Map<String, String> params, String tenant) throws Exception {
722722
AviApi session = getSession();
723723
if ((null != objectType) && (!objectType.isEmpty())) {
724724
HashMap<String, String> userHeader = this.getTenantHeader(tenant);
725725
JSONObject data = session.get(objectType, params, userHeader);
726726
logger.info("Existing data of " + objectType + " : " + data);
727-
return (JSONArray) data.get("results");
727+
return data;
728+
} else {
729+
logger.debug("ObjectType is empty");
730+
throw new AviApiException("Please provide objectType");
731+
}
732+
}
733+
734+
/***
735+
* Method for getting object data.
736+
*
737+
* @param objectType is the type of object.
738+
* @param params is a map containing the key and values.
739+
* @param tenant name of the Tenant
740+
* @return the JSONArray of the response.
741+
* @throws Exception
742+
*/
743+
@VsoMethod
744+
public JSONArray getAllData(String objectType, Map<String, String> params, String tenant) throws Exception {
745+
AviApi session = getSession();
746+
if ((null != objectType) && (!objectType.isEmpty())) {
747+
HashMap<String, String> userHeader = this.getTenantHeader(tenant);
748+
JSONObject data = session.get(objectType, params, userHeader);
749+
logger.info("Existing data of " + objectType + " : " + data);
750+
JSONArray results = new JSONArray();
751+
JSONArray response = (JSONArray) data.get("results");
752+
for (int i = 0; i < response.length(); i++) {
753+
results.put(response.getJSONObject(i));
754+
}
755+
if (data.has("next")) {
756+
String pageNo = data.getString("next").split("=")[1];
757+
Map<String, String> pageParams = new HashMap<>();
758+
pageParams.put("page", pageNo);
759+
results.putAll(this.getAllData(objectType, pageParams, tenant));
760+
}
761+
return results;
728762
} else {
729763
logger.debug("ObjectType is empty");
730764
throw new AviApiException("Please provide objectType");
@@ -844,7 +878,7 @@ public AviRestResource getObjectByName(String objectType, String objectName) thr
844878
@VsoMethod
845879
public List<AviRestResource> getObject(String objectType, Map<String, String> params, String tenant)
846880
throws Exception {
847-
JSONArray array = this.get(objectType, params, tenant);
881+
JSONArray array = this.getAllData(objectType, params, tenant);
848882
List<AviRestResource> objectList = new ArrayList<AviRestResource>();
849883
// ObjectMapper mapper = new ObjectMapper();
850884
mapper.setSerializationInclusion(Include.NON_NULL);

o11nplugin-vro-package/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<parent>
1010
<artifactId>vro</artifactId>
1111
<groupId>com.vmware.avi</groupId>
12-
<version>22.1.4.RELEASE</version>
12+
<version>22.1.4.1</version>
1313
</parent>
1414

1515
<properties>

o11nplugin-vro-package/src/main/resources/ScriptModule/com/vmware/actions/CreateSegmentPool.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<dunes-script-module name="CreateSegmentPool"
33
result-type="string" api-version="6.0.0"
4-
id="7ff776e4-4dac-4f62-94fc-a06edfe48b0b" version="0.0.1"
4+
id="7ff776e4-4dac-4f62-94fc-a06edfe48b0b" version="0.0.2"
55
allowed-operations="vfe">
66
<description><![CDATA[This Action can ben used to create Network Segment Pools. This was designed for NSX-T Cloud Segments, but will work for any Cloud Segment.]]></description>
77
<param n="avivroClient" t="Avi:AviVroClient"><![CDATA[]]>
@@ -25,7 +25,7 @@ nsxtCloudURL = nsxtCloudURL.split('#')[0]
2525

2626
// Retrieve The Specified Segment
2727
var tenant = avivroClient.cred.tenant
28-
var network_seg = avivroClient.get("network", null, tenant)
28+
var network_seg = avivroClient.getAllData("network", null, tenant)
2929

3030
// Parse the JSON Output
3131
network_seg = JSON.parse(network_seg)

o11nplugin-vro-package/src/main/resources/ScriptModule/com/vmware/actions/deleteObject.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ function getUUIDOfObject(aviVroClientObj,objectType,name){
7070
param.name=name;
7171
var resultArray=aviVroClientObj.get(objectType,param);
7272
resultArray=JSON.parse(resultArray);
73-
var jsonObj=resultArray[0];
73+
var jsonObj=resultArray.results[0];
7474
var msg =objectType+" "+name+" Deleted successfully.";
7575
msgArray.push(msg);
7676
return jsonObj;

o11nplugin-vro-package/src/main/resources/ScriptModule/com/vmware/actions/fetchNetworkSubnet.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version='1.0' encoding='UTF-8'?>
2-
<dunes-script-module name="fetchNetworkSubnet" result-type="Array/Any" api-version="6.0.0" id="2824f3e4-44e3-457e-9382-34d3376a7b94" version="0.0.1" allowed-operations="vfe">
2+
<dunes-script-module name="fetchNetworkSubnet" result-type="Array/Any" api-version="6.0.0" id="2824f3e4-44e3-457e-9382-34d3376a7b94" version="0.0.2" allowed-operations="vfe">
33
<param n="controller" t="string"><![CDATA[IP of the controller]]></param>
44
<param n="cloudName" t="string"><![CDATA[Add cloud name]]></param>
55
<param n="objectType" t="string"><![CDATA[Add object type]]></param>
@@ -82,7 +82,7 @@
8282
}
8383

8484
function getObjectData(aviPlugin, objectType, params, tenantRef){
85-
var result = aviPlugin.get(objectType, params, tenantRef);
85+
var result = aviPlugin.getAllData(objectType, params, tenantRef);
8686
var resultData = JSON.parse(result);
8787
return resultData;
8888
}]]></script>

o11nplugin-vro-package/src/main/resources/ScriptModule/com/vmware/actions/fetchObjectLists.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<dunes-script-module name="fetchObjectLists"
33
result-type="Any" api-version="6.0.0"
4-
id="c8fdba15-adb3-4335-9a34-ec8e3825709c" version="0.0.6"
4+
id="c8fdba15-adb3-4335-9a34-ec8e3825709c" version="0.0.7"
55
allowed-operations="vfe">
66
<param n="controller" t="string"><![CDATA[IP of the controller]]></param>
77
<param n="objectName" t="string"><![CDATA[Add object name]]></param>
@@ -35,7 +35,7 @@
3535
}
3636
var response = aviPlugin.get(objectType,params, clientTenant);
3737
var objectData = JSON.parse(response);
38-
var object =objectData[0];
38+
var object = objectData.results[0];
3939
if(object!=null){
4040
if (field == "existingMembers"){
4141
//var poolObject=objectData[0];

o11nplugin-vro-package/src/main/resources/ScriptModule/com/vmware/actions/fetchObjectsNames.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<dunes-script-module name="fetchObjectsNames"
33
result-type="Array/string" api-version="6.0.0"
4-
id="aab1273f-20f0-4cef-ad2b-da6832d71030" version="1.0.1"
4+
id="aab1273f-20f0-4cef-ad2b-da6832d71030" version="1.0.2"
55
allowed-operations="vfe">
66
<param n="controller" t="string"><![CDATA[IP of the controller]]></param>
77
<param n="objectType" t="string"><![CDATA[Add object type ]]></param>
@@ -32,7 +32,7 @@ try{
3232
if (aviPlugin != null){
3333
if(cloudName == "" || cloudName == null){
3434
var objectList = new Array();
35-
var response = aviPlugin.get(objectType,null, clientTenant);
35+
var response = aviPlugin.getAllData(objectType,null, clientTenant);
3636
var objectData = JSON.parse(response);
3737

3838
for each(index in objectData){
@@ -46,7 +46,7 @@ try{
4646
cloudUuid = objectData.uuid;
4747
cloudRef.cloud_uuid = cloudUuid;
4848
var objectList = new Array();
49-
var response = aviPlugin.get(objectType,cloudRef, clientTenant);
49+
var response = aviPlugin.getAllData(objectType,cloudRef, clientTenant);
5050
var objectData = JSON.parse(response);
5151

5252
for each(index in objectData){

o11nplugin-vro-package/src/main/resources/ScriptModule/com/vmware/actions/getDNSProvider.xml

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<dunes-script-module name="getDNSProvider"
33
result-type="string" api-version="6.0.0"
4-
id="0cfa03eb-cf20-45a3-800b-a6de844fff89" version="0.0.1"
4+
id="0cfa03eb-cf20-45a3-800b-a6de844fff89" version="0.0.2"
55
allowed-operations="vfe">
66
<param n="controller" t="string"><![CDATA[Controller IP]]></param>
77
<param n="cloud" t="string"><![CDATA[Name of Cloud]]></param>
@@ -27,9 +27,9 @@
2727
}
2828
var param = new Object();
2929
param.name=cloud;
30-
var resultArray=aviVroClientObj.get("cloud",param, clientTenant);
31-
resultArray=JSON.parse(resultArray);
32-
var cloudObj=resultArray[0];
30+
var resultObject=aviVroClientObj.get("cloud",param, clientTenant);
31+
resultObject=JSON.parse(resultObject);
32+
var cloudObj = resultObject.results[0];
3333
var dnsProvider=cloudObj.dns_provider_ref;
3434
var dnsProviderUUID = dnsProvider.substring(dnsProvider.indexOf("ipamdnsproviderprofile-"));
3535
var dnsProviderObj=aviVroClientObj.getObjectDataByUUID("ipamdnsproviderprofile",dnsProviderUUID);

o11nplugin-vro-package/src/main/resources/ScriptModule/com/vmware/actions/getExistingObjectsWithController.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<dunes-script-module
33
name="getExistingObjectsWithController" result-type="Array/string"
44
api-version="6.0.0" id="42556c6b-8b94-45fd-b1fd-feed30a097ca"
5-
version="0.0.3" allowed-operations="vfe">
5+
version="0.0.4" allowed-operations="vfe">
66
<param n="controller" t="string"><![CDATA[
77
]]></param>
88
<param n="objectType" t="string"><![CDATA[
@@ -30,7 +30,7 @@ try{
3030
}
3131

3232
var objectList = new Array();
33-
var response = aviVroClientObj.get(objectType, null, clientTenant);
33+
var response = aviVroClientObj.getAllData(objectType, null, clientTenant);
3434
var objectData = JSON.parse(response);
3535
for each(index in objectData){
3636
objectList.push(index.name);

o11nplugin-vro-package/src/main/resources/ScriptModule/com/vmware/actions/remoteAuthenticationConfiguration.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<dunes-script-module
33
name="remoteAuthenticationConfiguration" result-type="string"
44
api-version="6.0.0" id="66601741-2ca3-430c-a113-adab600fb325"
5-
version="0.0.0" allowed-operations="vfe">
5+
version="0.0.1" allowed-operations="vfe">
66
<description><![CDATA[This Action is used to configure the remote authentication of the Avi Cluster. It is able to configure SAML and LDAP authentication.]]></description>
77
<param n="aviVroClient" t="Avi:AviVroClient"><![CDATA[]]>
88
</param>
@@ -216,7 +216,7 @@ function tenanturl(str) {
216216

217217
//System.log("str "+str)
218218

219-
var tenantObject = aviVroClient.get("tenant")
219+
var tenantObject = aviVroClient.getAllData("tenant")
220220

221221
tenantObject = JSON.parse(tenantObject)
222222

o11nplugin-vro-package/src/main/resources/ScriptModule/com/vmware/actions/updatePool.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<dunes-script-module name="updatePool"
33
result-type="void" api-version="6.0.0"
4-
id="0164e6e8-7b7a-403f-8f8c-d9cdf8dbef9d" version="0.0.3"
4+
id="0164e6e8-7b7a-403f-8f8c-d9cdf8dbef9d" version="0.0.4"
55
allowed-operations="vfe">
66
<param n="controller" t="string"><![CDATA[]]>
77
</param>
@@ -31,7 +31,7 @@
3131
param.name=poolname;
3232
var response = aviVroClientObj.get("pool",param, clientTenant);
3333
response = JSON.parse(response);
34-
var jsonData=response[0];
34+
var jsonData = response.results[0];
3535
jsonData.servers=[];
3636
var updatedServers=[];
3737

o11nplugin-vro/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<parent>
1111
<artifactId>vro</artifactId>
1212
<groupId>com.vmware.avi</groupId>
13-
<version>22.1.4.RELEASE</version>
13+
<version>22.1.4.1</version>
1414
</parent>
1515

1616
<dependencies>

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<groupId>com.vmware.avi</groupId>
88
<artifactId>vro</artifactId>
99
<packaging>pom</packaging>
10-
<version>22.1.4.RELEASE</version>
10+
<version>22.1.4.1</version>
1111

1212
<properties>
1313
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

version.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
release_version=22.1.4
2-
eng_version=30.1.2
1+
release_version=22.1.4.1
2+
eng_version=30.2.1

0 commit comments

Comments
 (0)