public String testCreateResource()

in loadtesting-utilities/src/main/java/org/apache/airavata/datalake/loadtesting/handlers/LoadTestHandler.java [243:310]


    public String testCreateResource(@RequestParam("username") String username,
                                     @RequestParam("tenantId") String tenantId,
                                     @RequestParam("totalIterations") int iterations,
                                     @RequestParam("reportChunkSize") int reportChunkSize,
                                     @RequestParam("filePath") String filePath,
                                     @RequestParam("entityId") String resourceId,
                                     @RequestParam("entityName") String resourceName,
                                     @RequestParam("type") String type) {


        ManagedChannel channel = ManagedChannelBuilder.forAddress(serviceHost, servicePort).usePlaintext().build();
        ResourceServiceGrpc.ResourceServiceBlockingStub resourceClient = ResourceServiceGrpc.newBlockingStub(channel);


        int successRequests = 0;
        int failureRequests = 0;
        long sum = 0;

        Map<String, String> latencyMap = new HashMap<>();

        int chunkSize = 1;

        for (int i = 0; i < iterations; i++) {
            try {
                long beginLatency = System.currentTimeMillis();
                ResourceCreateRequest request = ResourceCreateRequest
                        .newBuilder()
                        .setAuthToken(DRMSServiceAuthToken.newBuilder()
                                .setAuthenticatedUser(AuthenticatedUser.newBuilder()
                                        .setTenantId(tenantId)
                                        .setUsername(username)
                                        .build()))
                        .setResource(GenericResource.newBuilder()
                                .setResourceName(resourceName + "_" + i)
                                .setResourceId(resourceId + "_" + i)
                                .setType(type)
                                .build())
                        .build();
                ResourceCreateResponse response = resourceClient.createResource(request);
                long endLatency = System.currentTimeMillis();

                long diff = endLatency - beginLatency;
                latencyMap.put(String.valueOf(i), String.valueOf(diff));
                sum += diff;
                if (!response.getResource().getResourceId().isEmpty()) {
                    successRequests++;
                }
            } catch (Exception ex) {
                failureRequests++;
            }

            if (chunkSize % reportChunkSize == 0) {
                long avgSuccessRate = (successRequests / chunkSize) * 100;
                long avgFailureRare = (failureRequests / chunkSize) * 100;

                writeToAFile(latencyMap, avgSuccessRate, avgFailureRare, filePath, "testResourceCreateRequest");
                latencyMap.clear();
                successRequests = 0;
                failureRequests = 0;
                chunkSize = 1;
            } else {
                chunkSize++;
            }
        }
        return "load test completed";


    }