Package org.apache.commons.httpclient

Examples of org.apache.commons.httpclient.HttpMethod


        String encodedUserId = URLEncoder.encode(userId, "UTF-8");

        String url = server + "?command=listUsers&id=" + encodedUserId;
        s_logger.info("Stopping resources for user: " + username);
        HttpClient client = new HttpClient();
        HttpMethod method = new GetMethod(url);
        int responseCode = client.executeMethod(method);
        s_logger.info("get user response code: " + responseCode);
        if (responseCode == 200) {
            InputStream is = method.getResponseBodyAsStream();
            Map<String, String> userIdValues = getSingleValueFromXML(is,
                    new String[] { "id" });
            String userIdStr = userIdValues.get("id");
            if (userIdStr != null) {
                userId = userIdStr;
                if (userId == null) {
                    s_logger
                    .error("get user failed to retrieve a valid user id, aborting depolyment test" + ". Following URL was sent: " + url);
                    return -1;
                }
            }
        } else  {
            s_logger.error("get user failed with error code: " + responseCode + ". Following URL was sent: " + url);
            return responseCode;
        }

        {
            // ----------------------------------
            // LIST VIRTUAL MACHINES
            // ----------------------------------
            String encodedApiKey = URLEncoder.encode(_apiKey.get(), "UTF-8");
            String requestToSign = "apikey=" + encodedApiKey
                    + "&command=listVirtualMachines";
            requestToSign = requestToSign.toLowerCase();
            String signature = signRequest(requestToSign, _secretKey.get());
            String encodedSignature = URLEncoder.encode(signature, "UTF-8");

            url = developerServer + "?command=listVirtualMachines&apikey=" + encodedApiKey + "&signature="
                    + encodedSignature;

            s_logger.info("Listing all virtual machines for the user with url " + url);
            String[] vmIds = null;
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("list virtual machines response code: "
                    + responseCode);
            if (responseCode == 200) {
                InputStream is = method.getResponseBodyAsStream();
                Map<String, List<String>> vmIdValues = getMultipleValuesFromXML(
                        is, new String[] { "id" });
                if (vmIdValues.containsKey("id")) {
                    List<String> vmIdList = vmIdValues.get("id");
                    if (vmIdList != null) {
                        vmIds = new String[vmIdList.size()];
                        vmIdList.toArray(vmIds);
                        String vmIdLogStr = "";
                        if ((vmIds != null) && (vmIds.length > 0)) {
                            vmIdLogStr = vmIds[0];
                            for (int i = 1; i < vmIds.length; i++) {
                                vmIdLogStr = vmIdLogStr + "," + vmIds[i];
                            }
                        }
                        s_logger.info("got virtual machine ids: " + vmIdLogStr);
                    }
                }


            } else  {
                s_logger.error("list virtual machines test failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }


            // ----------------------------------
            // STOP/DESTROY VIRTUAL MACHINES
            // ----------------------------------
            if (vmIds != null) {
                for (String vmId : vmIds) {
                    requestToSign = "apikey=" + encodedApiKey + "&command=stopVirtualMachine&id=" + vmId;
                    requestToSign = requestToSign.toLowerCase();
                    signature = signRequest(requestToSign, _secretKey.get());
                    encodedSignature = URLEncoder.encode(signature, "UTF-8");

                    url = developerServer + "?command=stopVirtualMachine&id=" + vmId + "&apikey="
                            + encodedApiKey + "&signature=" + encodedSignature;
                    client = new HttpClient();
                    method = new GetMethod(url);
                    responseCode = client.executeMethod(method);
                    s_logger.info("StopVirtualMachine" + " [" + vmId + "] response code: "
                            + responseCode);
                    if (responseCode == 200) {
                        InputStream input = method.getResponseBodyAsStream();
                        Element el = queryAsyncJobResult(server, input);
                        Map<String, String> success = getSingleValueFromXML(el,
                                new String[] { "success" });
                        s_logger.info("StopVirtualMachine..success? "
                                + success.get("success"));
View Full Code Here


        }

        //s_logger.info("Job id is " + jobId);
        String resultUrl = host + "?command=queryAsyncJobResult&jobid=" + jobId;
        HttpClient client = new HttpClient();
        HttpMethod method = new GetMethod(resultUrl);
        while (true) {
            try {
                client.executeMethod(method);
                //s_logger.info("Method is executed successfully. Following url was sent " + resultUrl);
                InputStream is = method.getResponseBodyAsStream();
                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                DocumentBuilder builder = factory.newDocumentBuilder();
                Document doc = builder.parse(is);
                returnBody = doc.getDocumentElement();
                doc.getDocumentElement().normalize();
View Full Code Here

    }
   
    public static void sendRequest(String url) {
        try {
            HttpClient client = new HttpClient();
            HttpMethod method = new GetMethod(url);
            int responseCode = client.executeMethod(method);
            String is = method.getResponseBodyAsString();
            s_logger.info("Response code " + responseCode + ": " + is);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
       
View Full Code Here

                NDC.push(username);

                String url = server+"?email="+username+"&password="+username+"&command=deploy";
                s_logger.info("Launching test for user: " + username + " with url: " + url);
                HttpClient client = new HttpClient();
                HttpMethod method = new GetMethod(url);
                int responseCode = client.executeMethod(method);
                boolean success = false;
                String reason = null;
                if (responseCode == 200) {
                    if (internet) {
                      s_logger.info("Deploy successful...waiting 5 minute before SSH tests");
                      Thread.sleep(300000L)// Wait 60 seconds so the linux VM can boot up.
                     
                      s_logger.info("Begin Linux SSH test");
                      reason = sshTest(method.getResponseHeader("linuxIP").getValue());
                     
                      if (reason == null) {
                        s_logger.info("Linux SSH test successful");
                        s_logger.info("Begin Windows SSH test");
                        reason = sshWinTest(method.getResponseHeader("windowsIP").getValue());
                      }
                    }
                  if (reason == null) {
                      if (internet) {
                          s_logger.info("Windows SSH test successful");
                      } else {
                          s_logger.info("deploy test successful....now cleaning up");
                                          if (cleanUp) {
                                              s_logger.info("Waiting " + sleepTime + " ms before cleaning up vms");
                                              Thread.sleep(sleepTime);
                                          } else {
                                              success = true;
                                          }
                      }
                      if (users == null) {
                        s_logger.info("Sending cleanup command");
                        url = server+"?email="+username+"&password="+username+"&command=cleanup";
                      } else {
                        s_logger.info("Sending stop DomR / destroy VM command");
                        url = server+"?email="+username+"&password="+username+"&command=stopDomR";
                      }
                    method = new GetMethod(url);
                    responseCode = client.executeMethod(method);
                    if (responseCode == 200) {
                      success = true;
                    } else {
                      reason = method.getStatusText();
                    }
                  } else {
                    // Just stop but don't destroy the VMs/Routers
                    s_logger.info("SSH test failed with reason '" + reason + "', stopping VMs");
                    url = server+"?email="+username+"&password="+username+"&command=stop";
                    responseCode = client.executeMethod(new GetMethod(url));
                  }
                } else {
                  // Just stop but don't destroy the VMs/Routers
                  reason = method.getStatusText();
                  s_logger.info("Deploy test failed with reason '" + reason + "', stopping VMs");
                  url = server+"?email="+username+"&password="+username+"&command=stop";
                  client.executeMethod(new GetMethod(url));
                }
View Full Code Here

        String userId = _userId.get().toString();
        String encodedUserId = URLEncoder.encode(userId, "UTF-8");
        String url = server + "?command=listUsers&id=" + encodedUserId;
        s_logger.info("Cleaning up resources for user: " + userId + " with url " + url);
        HttpClient client = new HttpClient();
        HttpMethod method = new GetMethod(url);
        int responseCode = client.executeMethod(method);
        s_logger.info("get user response code: " + responseCode);
        if (responseCode == 200) {
            InputStream is = method.getResponseBodyAsStream();
            Map<String, String> userInfo = getSingleValueFromXML(is, new String[] { "username", "id", "account" });
            if (!username.equals(userInfo.get("username"))) {
                s_logger.error("get user failed to retrieve requested user, aborting cleanup test" + ". Following URL was sent: " + url);
                return -1;
            }

        } else {
            s_logger.error("get user failed with error code: " + responseCode + ". Following URL was sent: " + url);
            return responseCode;
        }

        // -----------------------------
        // UPDATE USER
        // -----------------------------
        {
            url = server + "?command=updateUser&id=" + userId + "&firstname=delete&lastname=me";
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("update user response code: " + responseCode);
            if (responseCode == 200) {
                InputStream is = method.getResponseBodyAsStream();
                Map<String, String> success = getSingleValueFromXML(is, new String[] { "success" });
                s_logger.info("update user..success? " + success.get("success"));
            } else {
                s_logger.error("update user failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }
        }

        // -----------------------------
        // Detach existin dataVolume, create a new volume, attach it to the vm
        // -----------------------------
        {
            url = server + "?command=listVolumes&virtualMachineId=" + _linuxVmId.get() + "&type=dataDisk";
            s_logger.info("Getting dataDisk id of Centos vm");
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("List volumes response code: " + responseCode);
            if (responseCode == 200) {
                InputStream is = method.getResponseBodyAsStream();
                Map<String, String> success = getSingleValueFromXML(is, new String[] { "id" });
                s_logger.info("Got dataDiskVolume with id " + success.get("id"));
                _dataVolume.set(success.get("id"));
            } else {
                s_logger.error("List volumes failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }
        }

        // Detach volume
        {
            url = server + "?command=detachVolume&id=" + _dataVolume.get();
            s_logger.info("Detaching volume with id " + _dataVolume.get());
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("Detach data volume response code: " + responseCode);
            if (responseCode == 200) {
                InputStream input = method.getResponseBodyAsStream();
                Element el = queryAsyncJobResult(server, input);
                s_logger.info("The volume was detached successfully");
            } else {
                s_logger.error("Detach data disk failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }
        }

        // Delete a volume
        {
            url = server + "?command=deleteVolume&id=" + _dataVolume.get();
            s_logger.info("Deleting volume with id " + _dataVolume.get());
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("Delete data volume response code: " + responseCode);
            if (responseCode == 200) {
                s_logger.info("The volume was deleted successfully");
            } else {
                s_logger.error("Delete volume failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }
        }

        // Create a new volume
        {
            url = server + "?command=createVolume&diskofferingid=" + diskOfferingId + "&zoneid=" + zoneId + "&name=newvolume&account=" + _account.get() + "&domainid=1";
            s_logger.info("Creating volume....");
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            if (responseCode == 200) {
                InputStream input = method.getResponseBodyAsStream();
                Element el = queryAsyncJobResult(server, input);
                Map<String, String> values = getSingleValueFromXML(el, new String[] { "id" });

                if (values.get("id") == null) {
                    s_logger.info("create volume response code: 401");
                    return 401;
                } else {
                    s_logger.info("create volume response code: " + responseCode);
                    long volumeId = Long.parseLong(values.get("id"));
                    s_logger.info("got volume id: " + volumeId);
                    _newVolume.set(values.get("id"));
                }
            } else {
                s_logger.error("create volume failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }
        }

        // attach a new volume to the vm
        {
            url = server + "?command=attachVolume&id=" + _newVolume.get() + "&virtualmachineid=" + _linuxVmId.get();
            s_logger.info("Attaching volume with id " + _newVolume.get() + " to the vm " + _linuxVmId.get());
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("Attach data volume response code: " + responseCode);
            if (responseCode == 200) {
                InputStream input = method.getResponseBodyAsStream();
                Element el = queryAsyncJobResult(server, input);
                s_logger.info("The volume was attached successfully");
            } else {
                s_logger.error("Attach volume failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }
        }

        // Create a snapshot
        // list volumes
        {
            url = server + "?command=listVolumes&virtualMachineId=" + _linuxVmId.get() + "&type=root";
            s_logger.info("Getting rootDisk id of Centos vm");
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("List volumes response code: " + responseCode);
            if (responseCode == 200) {
                InputStream is = method.getResponseBodyAsStream();
                Map<String, String> success = getSingleValueFromXML(is, new String[] { "id" });
                if (success.get("id") == null) {
                    s_logger.error("Unable to get root volume. Followin url was sent: " + url);
                }
                s_logger.info("Got rootVolume with id " + success.get("id"));
                _rootVolume.set(success.get("id"));
            } else {
                s_logger.error("List volumes failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }
        }

        // //Create snapshot from root disk volume
        String encodedApiKey = URLEncoder.encode(_apiKey.get(), "UTF-8");
        String requestToSign = "apikey=" + encodedApiKey + "&command=createSnapshot&volumeid=" + _rootVolume.get();
        requestToSign = requestToSign.toLowerCase();
        String signature = signRequest(requestToSign, _secretKey.get());
        String encodedSignature = URLEncoder.encode(signature, "UTF-8");

        url = developerServer + "?command=createSnapshot&volumeid=" + _rootVolume.get() + "&apikey=" + encodedApiKey + "&signature=" + encodedSignature;
        client = new HttpClient();
        method = new GetMethod(url);
        responseCode = client.executeMethod(method);
        s_logger.info("Create snapshot response code: " + responseCode);
        if (responseCode == 200) {
            InputStream input = method.getResponseBodyAsStream();
            Element el = queryAsyncJobResult(server, input);
            Map<String, String> values = getSingleValueFromXML(el, new String[] { "id" });

            if (values.get("id") == null) {
                s_logger.info("create snapshot response code: 401");
                return 401;
            } else {
                s_logger.info("create snapshot response code: " + responseCode + ". Got snapshot with id " + values.get("id"));
                _snapshot.set(values.get("id"));
            }
        } else {
            s_logger.error("create snapshot failed with error code: " + responseCode + ". Following URL was sent: " + url);
            return responseCode;
        }

        // Create volume from the snapshot created on the previous step and attach it to the running vm
        /*      encodedApiKey = URLEncoder.encode(_apiKey.get(), "UTF-8");
        requestToSign = "apikey=" + encodedApiKey + "&command=createVolume&name=" + _account.get() + "&snapshotid=" + _snapshot.get();
        requestToSign = requestToSign.toLowerCase();
        signature = signRequest(requestToSign, _secretKey.get());
        encodedSignature = URLEncoder.encode(signature, "UTF-8");

        url = developerServer + "?command=createVolume&name=" + _account.get() + "&snapshotid=" + _snapshot.get() + "&apikey=" + encodedApiKey + "&signature=" + encodedSignature;
        client = new HttpClient();
        method = new GetMethod(url);
        responseCode = client.executeMethod(method);
        s_logger.info("Create volume from snapshot response code: " + responseCode);
        if (responseCode == 200) {
            InputStream input = method.getResponseBodyAsStream();
            Element el = queryAsyncJobResult(server, input);
            Map<String, String> values = getSingleValueFromXML(el, new String[] { "id" });

            if (values.get("id") == null) {
                s_logger.info("create volume from snapshot response code: 401");
                return 401;
            } else {
                s_logger.info("create volume from snapshot response code: " + responseCode + ". Got volume with id " + values.get("id") + ". The command was sent with url " + url);
                _volumeFromSnapshot.set(values.get("id"));
            }
        } else {
            s_logger.error("create volume from snapshot failed with error code: " + responseCode + ". Following URL was sent: " + url);
            return responseCode;
        }

        {
            url = server + "?command=attachVolume&id=" + _volumeFromSnapshot.get() + "&virtualmachineid=" + _linuxVmId.get();
            s_logger.info("Attaching volume with id " + _volumeFromSnapshot.get() + " to the vm " + _linuxVmId.get());
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("Attach volume from snapshot to linux vm response code: " + responseCode);
            if (responseCode == 200) {
                InputStream input = method.getResponseBodyAsStream();
                Element el = queryAsyncJobResult(server, input);
                s_logger.info("The volume created from snapshot was attached successfully to linux vm");
            } else {
                s_logger.error("Attach volume created from snapshot failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }
        }
         */
        // -----------------------------
        // Execute reboot/stop/start commands for the VMs before deleting the account - made to exercise xen
        // -----------------------------

        // Reboot windows VM
        requestToSign = "apikey=" + encodedApiKey + "&command=rebootVirtualMachine&id=" + _windowsVmId.get();
        requestToSign = requestToSign.toLowerCase();
        signature = signRequest(requestToSign, _secretKey.get());
        encodedSignature = URLEncoder.encode(signature, "UTF-8");

        url = developerServer + "?command=rebootVirtualMachine&id=" + _windowsVmId.get() + "&apikey=" + encodedApiKey + "&signature=" + encodedSignature;
        client = new HttpClient();
        method = new GetMethod(url);
        responseCode = client.executeMethod(method);
        s_logger.info("Reboot windows Vm response code: " + responseCode);
        if (responseCode == 200) {
            InputStream input = method.getResponseBodyAsStream();
            Element el = queryAsyncJobResult(server, input);
            Map<String, String> success = getSingleValueFromXML(el, new String[] { "success" });
            s_logger.info("Windows VM was rebooted with the status: " + success.get("success"));
        } else {
            s_logger.error("Reboot windows VM test failed with error code: " + responseCode + ". Following URL was sent: " + url);
            return responseCode;
        }

        // Stop centos VM
        requestToSign = "apikey=" + encodedApiKey + "&command=stopVirtualMachine&id=" + _linuxVmId.get();
        requestToSign = requestToSign.toLowerCase();
        signature = signRequest(requestToSign, _secretKey.get());
        encodedSignature = URLEncoder.encode(signature, "UTF-8");

        url = developerServer + "?command=stopVirtualMachine&id=" + _linuxVmId.get() + "&apikey=" + encodedApiKey + "&signature=" + encodedSignature;
        client = new HttpClient();
        method = new GetMethod(url);
        responseCode = client.executeMethod(method);
        s_logger.info("Stop linux Vm response code: " + responseCode);
        if (responseCode == 200) {
            InputStream input = method.getResponseBodyAsStream();
            Element el = queryAsyncJobResult(server, input);
            Map<String, String> success = getSingleValueFromXML(el, new String[] { "success" });
            s_logger.info("Linux VM was stopped with the status: " + success.get("success"));
        } else {
            s_logger.error("Stop linux VM test failed with error code: " + responseCode + ". Following URL was sent: " + url);
            return responseCode;
        }

        // Create private template from root disk volume
        requestToSign = "apikey=" + encodedApiKey + "&command=createTemplate" + "&displaytext=" + _account.get() + "&name=" + _account.get() + "&ostypeid=11" + "&snapshotid=" + _snapshot.get();
        requestToSign = requestToSign.toLowerCase();
        signature = signRequest(requestToSign, _secretKey.get());
        encodedSignature = URLEncoder.encode(signature, "UTF-8");

        url = developerServer + "?command=createTemplate" + "&displaytext=" + _account.get() + "&name=" + _account.get() + "&ostypeid=11" + "&snapshotid=" + _snapshot.get() + "&apikey=" + encodedApiKey + "&signature=" + encodedSignature;
        client = new HttpClient();
        method = new GetMethod(url);
        responseCode = client.executeMethod(method);
        s_logger.info("Create private template response code: " + responseCode);
        if (responseCode == 200) {
            InputStream input = method.getResponseBodyAsStream();
            Element el = queryAsyncJobResult(server, input);
            Map<String, String> values = getSingleValueFromXML(el, new String[] { "id" });

            if (values.get("id") == null) {
                s_logger.info("create private template response code: 401");
                return 401;
            } else {
                s_logger.info("create private template response code: " + responseCode);
            }
        } else {
            s_logger.error("create private template failed with error code: " + responseCode + ". Following URL was sent: " + url);
            return responseCode;
        }

        // Start centos VM
        requestToSign = "apikey=" + encodedApiKey + "&command=startVirtualMachine&id=" + _windowsVmId.get();
        requestToSign = requestToSign.toLowerCase();
        signature = signRequest(requestToSign, _secretKey.get());
        encodedSignature = URLEncoder.encode(signature, "UTF-8");

        url = developerServer + "?command=startVirtualMachine&id=" + _windowsVmId.get() + "&apikey=" + encodedApiKey + "&signature=" + encodedSignature;
        client = new HttpClient();
        method = new GetMethod(url);
        responseCode = client.executeMethod(method);
        s_logger.info("Start linux Vm response code: " + responseCode);
        if (responseCode != 200) {
            s_logger.error("Start linux VM test failed with error code: " + responseCode + ". Following URL was sent: " + url);
            return responseCode;
        }

        // get domainRouter id
        {
            url = server + "?command=listRouters&zoneid=" + zoneId + "&account=" + _account.get() + "&domainid=1";
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("List domain routers response code: " + responseCode);
            if (responseCode == 200) {
                InputStream is = method.getResponseBodyAsStream();
                Map<String, String> success = getSingleValueFromXML(is, new String[] { "id" });
                s_logger.info("Got the domR with id " + success.get("id"));
                _domainRouterId.set(success.get("id"));
            } else {
                s_logger.error("List domain routers failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }
        }

        // reboot the domain router
        {
            url = server + "?command=rebootRouter&id=" + _domainRouterId.get();
            s_logger.info("Rebooting domR with id " + _domainRouterId.get());
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("Reboot domain router response code: " + responseCode);
            if (responseCode == 200) {
                InputStream input = method.getResponseBodyAsStream();
                Element el = queryAsyncJobResult(server, input);
                s_logger.info("Domain router was rebooted successfully");
            } else {
                s_logger.error("Reboot domain routers failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }
        }

        // -----------------------------
        // DELETE ACCOUNT
        // -----------------------------
        {
            url = server + "?command=deleteAccount&id=" + _accountId.get();
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("delete account response code: " + responseCode);
            if (responseCode == 200) {
                InputStream input = method.getResponseBodyAsStream();
                Element el = queryAsyncJobResult(server, input);
                s_logger.info("Deleted account successfully");
            } else {
                s_logger.error("delete account failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
View Full Code Here

        // -----------------------------
        String url = server + "?command=listEvents&page=1&pagesize=100&&account=" + _account.get();

        s_logger.info("Getting events for the account " + _account.get());
        HttpClient client = new HttpClient();
        HttpMethod method = new GetMethod(url);
        int responseCode = client.executeMethod(method);
        s_logger.info("get events response code: " + responseCode);
        if (responseCode == 200) {
            InputStream is = method.getResponseBodyAsStream();
            Map<String, List<String>> eventDescriptions = getMultipleValuesFromXML(is, new String[] { "description" });
            List<String> descriptionText = eventDescriptions.get("description");
            if (descriptionText == null) {
                s_logger.info("no events retrieved...");
            } else {
                for (String text : descriptionText) {
                    s_logger.info("event: " + text);
                }
            }
        } else {
            s_logger.error("list events failed with error code: " + responseCode + ". Following URL was sent: " + url);

            return responseCode;
        }

        // -------------------------------------------------------------------------------------
        // GENERATE USAGE RECORDS (note: typically this is done infrequently)
        // -------------------------------------------------------------------------------------
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date currentDate = new Date();
        String endDate = dateFormat.format(currentDate);
        s_logger.info("Generating usage records from September 1st till " + endDate);
        url = server + "?command=generateUsageRecords&startdate=2009-09-01&enddate=" + endDate; // generate
        // all usage record till today
        client = new HttpClient();
        method = new GetMethod(url);
        responseCode = client.executeMethod(method);
        s_logger.info("generate usage records response code: " + responseCode);
        if (responseCode == 200) {
            InputStream is = method.getResponseBodyAsStream();
            Map<String, String> successStr = getSingleValueFromXML(is, new String[] { "success" });
            s_logger.info("successfully generated usage records? " + successStr.get("success"));
        } else {
            s_logger.error("generate usage records failed with error code: " + responseCode + ". Following URL was sent: " + url);
            return responseCode;
        }

        // Sleeping for a 2 minutes before getting a usage records from the database
        try {
            Thread.sleep(120000);
        } catch (Exception ex) {
            s_logger.error(ex);
        }

        // --------------------------------
        // GET USAGE RECORDS
        // --------------------------------
        url = server + "?command=listUsageRecords&startdate=2009-09-01&enddate=" + endDate + "&account=" + _account.get() + "&domaindid=1";
        s_logger.info("Getting all usage records with request: " + url);
        client = new HttpClient();
        method = new GetMethod(url);
        responseCode = client.executeMethod(method);
        s_logger.info("get usage records response code: " + responseCode);
        if (responseCode == 200) {
            InputStream is = method.getResponseBodyAsStream();
            Map<String, List<String>> usageRecValues = getMultipleValuesFromXML(is, new String[] { "description", "usage" });
            if ((usageRecValues.containsKey("description") == true) && (usageRecValues.containsKey("usage") == true)) {
                List<String> descriptions = usageRecValues.get("description");
                List<String> usages = usageRecValues.get("usage");
                for (int i = 0; i < descriptions.size(); i++) {
View Full Code Here

    private static boolean getNetworkStat(String server) {
        try {
            String url = server + "?command=listAccountStatistics&account=" + _account.get();
            HttpClient client = new HttpClient();
            HttpMethod method = new GetMethod(url);
            int responseCode = client.executeMethod(method);
            s_logger.info("listAccountStatistics response code: " + responseCode);
            if (responseCode == 200) {
                InputStream is = method.getResponseBodyAsStream();
                Map<String, String> requestKeyValues = getSingleValueFromXML(is, new String[] { "receivedbytes", "sentbytes" });
                int bytesReceived = Integer.parseInt(requestKeyValues.get("receivedbytes"));
                int bytesSent = Integer.parseInt(requestKeyValues.get("sentbytes"));
                if ((bytesReceived > 100000000) && (bytesSent > 0)) {
                    s_logger.info("Network stat is correct for account" + _account.get() + "; bytest received is " + bytesReceived + " and bytes sent is " + bytesSent);
View Full Code Here

        String encodedUserId = URLEncoder.encode(userId, "UTF-8");

        String url = server + "?command=listUsers&id=" + encodedUserId;
        s_logger.info("Stopping resources for user: " + username);
        HttpClient client = new HttpClient();
        HttpMethod method = new GetMethod(url);
        int responseCode = client.executeMethod(method);
        s_logger.info("get user response code: " + responseCode);
        if (responseCode == 200) {
            InputStream is = method.getResponseBodyAsStream();
            Map<String, String> userIdValues = getSingleValueFromXML(is, new String[] { "id" });
            String userIdStr = userIdValues.get("id");
            if (userIdStr != null) {
                userId = userIdStr;

            } else {
                s_logger.error("get user failed to retrieve a valid user id, aborting depolyment test" + ". Following URL was sent: " + url);
                return -1;
            }
        } else {
            s_logger.error("get user failed with error code: " + responseCode + ". Following URL was sent: " + url);
            return responseCode;
        }

        {
            // ----------------------------------
            // LIST VIRTUAL MACHINES
            // ----------------------------------
            String encodedApiKey = URLEncoder.encode(_apiKey.get(), "UTF-8");
            String requestToSign = "apikey=" + encodedApiKey + "&command=listVirtualMachines";
            requestToSign = requestToSign.toLowerCase();
            String signature = signRequest(requestToSign, _secretKey.get());
            String encodedSignature = URLEncoder.encode(signature, "UTF-8");

            url = developerServer + "?command=listVirtualMachines&apikey=" + encodedApiKey + "&signature=" + encodedSignature;

            s_logger.info("Listing all virtual machines for the user with url " + url);
            String[] vmIds = null;
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("list virtual machines response code: " + responseCode);
            if (responseCode == 200) {
                InputStream is = method.getResponseBodyAsStream();
                Map<String, List<String>> vmIdValues = getMultipleValuesFromXML(is, new String[] { "id" });
                if (vmIdValues.containsKey("id")) {
                    List<String> vmIdList = vmIdValues.get("id");
                    if (vmIdList != null) {
                        vmIds = new String[vmIdList.size()];
                        vmIdList.toArray(vmIds);
                        String vmIdLogStr = "";
                        if ((vmIds != null) && (vmIds.length > 0)) {
                            vmIdLogStr = vmIds[0];
                            for (int i = 1; i < vmIds.length; i++) {
                                vmIdLogStr = vmIdLogStr + "," + vmIds[i];
                            }
                        }
                        s_logger.info("got virtual machine ids: " + vmIdLogStr);
                    }
                }

            } else {
                s_logger.error("list virtual machines test failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }

            // ----------------------------------
            // LIST USER IP ADDRESSES
            // ----------------------------------

            requestToSign = "apikey=" + encodedApiKey + "&command=listPublicIpAddresses";
            requestToSign = requestToSign.toLowerCase();
            signature = signRequest(requestToSign, _secretKey.get());
            encodedSignature = URLEncoder.encode(signature, "UTF-8");

            url = developerServer + "?command=listPublicIpAddresses&apikey=" + encodedApiKey + "&signature=" + encodedSignature;
            String[] ipAddresses = null;
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("list ip addresses for user " + userId + " response code: " + responseCode);
            if (responseCode == 200) {
                InputStream is = method.getResponseBodyAsStream();
                Map<String, List<String>> ipAddressValues = getMultipleValuesFromXML(is, new String[] { "ipaddress" });
                if (ipAddressValues.containsKey("ipaddress")) {
                    List<String> ipAddressList = ipAddressValues.get("ipaddress");
                    if (ipAddressList != null) {
                        ipAddresses = new String[ipAddressList.size()];
                        ipAddressList.toArray(ipAddresses);
                        String ipAddressLogStr = "";
                        if ((ipAddresses != null) && (ipAddresses.length > 0)) {
                            ipAddressLogStr = ipAddresses[0];
                            for (int i = 1; i < ipAddresses.length; i++) {
                                ipAddressLogStr = ipAddressLogStr + "," + ipAddresses[i];
                            }
                        }
                        s_logger.info("got IP addresses: " + ipAddressLogStr);
                    }
                }

            } else {
                s_logger.error("list user ip addresses failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }

            // ----------------------------------
            // LIST ZONES
            // ----------------------------------

            requestToSign = "apikey=" + encodedApiKey + "&command=listZones";
            requestToSign = requestToSign.toLowerCase();
            signature = signRequest(requestToSign, _secretKey.get());
            encodedSignature = URLEncoder.encode(signature, "UTF-8");

            url = developerServer + "?command=listZones&apikey=" + encodedApiKey + "&signature=" + encodedSignature;
            String[] zoneNames = null;
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("list zones response code: " + responseCode);
            if (responseCode == 200) {
                InputStream is = method.getResponseBodyAsStream();
                Map<String, List<String>> zoneNameValues = getMultipleValuesFromXML(is, new String[] { "name" });
                if (zoneNameValues.containsKey("name")) {
                    List<String> zoneNameList = zoneNameValues.get("name");
                    if (zoneNameList != null) {
                        zoneNames = new String[zoneNameList.size()];
                        zoneNameList.toArray(zoneNames);
                        String zoneNameLogStr = "\n\n";
                        if ((zoneNames != null) && (zoneNames.length > 0)) {
                            zoneNameLogStr += zoneNames[0];
                            for (int i = 1; i < zoneNames.length; i++) {
                                zoneNameLogStr = zoneNameLogStr + "\n" + zoneNames[i];
                            }

                        }
                        zoneNameLogStr += "\n\n";
                        s_logger.info("got zones names: " + zoneNameLogStr);
                    }
                }

            } else {
                s_logger.error("list zones failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }

            // ----------------------------------
            // LIST ACCOUNT STATISTICS
            // ----------------------------------

            requestToSign = "apikey=" + encodedApiKey + "&command=listAccounts";
            requestToSign = requestToSign.toLowerCase();
            signature = signRequest(requestToSign, _secretKey.get());
            encodedSignature = URLEncoder.encode(signature, "UTF-8");

            url = developerServer + "?command=listAccounts&apikey=" + encodedApiKey + "&signature=" + encodedSignature;
            String[] statNames = null;
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("listAccountStatistics response code: " + responseCode);
            if (responseCode == 200) {
                InputStream is = method.getResponseBodyAsStream();
                Map<String, List<String>> statValues = getMultipleValuesFromXML(is, new String[] { "receivedbytes" });
                if (statValues.containsKey("receivedbytes")) {
                    List<String> statList = statValues.get("receivedbytes");
                    if (statList != null) {
                        statNames = new String[statList.size()];
                        statList.toArray(statNames);
                        String statLogStr = "\n\n";
                        if ((statNames != null) && (zoneNames.length > 0)) {
                            statLogStr += statNames[0];
                            for (int i = 1; i < statNames.length; i++) {
                                statLogStr = statLogStr + "\n" + zoneNames[i];
                            }

                        }
                        statLogStr += "\n\n";
                        s_logger.info("got accountstatistics: " + statLogStr);
                    }
                }

            } else {
                s_logger.error("listAccountStatistics failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }

            // ----------------------------------
            // LIST TEMPLATES
            // ----------------------------------

            requestToSign = "apikey=" + encodedApiKey + "&command=listTemplates@templatefilter=self";
            requestToSign = requestToSign.toLowerCase();
            signature = signRequest(requestToSign, _secretKey.get());
            encodedSignature = URLEncoder.encode(signature, "UTF-8");

            url = developerServer + "?command=listTemplates&apikey=" + encodedApiKey + "&templatefilter=self&signature=" + encodedSignature;
            String[] templateNames = null;
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("list templates response code: " + responseCode);
            if (responseCode == 200) {
                InputStream is = method.getResponseBodyAsStream();
                Map<String, List<String>> templateNameValues = getMultipleValuesFromXML(is, new String[] { "name" });

                if (templateNameValues.containsKey("name")) {
                    List<String> templateNameList = templateNameValues.get("name");
                    if (templateNameList != null) {
                        templateNames = new String[templateNameList.size()];
                        templateNameList.toArray(templateNames);
                        String templateNameLogStr = "\n\n";
                        if ((templateNames != null) && (templateNames.length > 0)) {
                            templateNameLogStr += templateNames[0];
                            for (int i = 1; i < templateNames.length; i++) {
                                templateNameLogStr = templateNameLogStr + "\n" + templateNames[i];
                            }

                        }
                        templateNameLogStr += "\n\n";
                        s_logger.info("got template names: " + templateNameLogStr);
                    }
                }

            } else {
                s_logger.error("list templates failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }

            // ----------------------------------
            // LIST SERVICE OFFERINGS
            // ----------------------------------

            requestToSign = "apikey=" + encodedApiKey + "&command=listServiceOfferings";
            requestToSign = requestToSign.toLowerCase();
            signature = signRequest(requestToSign, _secretKey.get());
            encodedSignature = URLEncoder.encode(signature, "UTF-8");

            url = developerServer + "?command=listServiceOfferings&apikey=" + encodedApiKey + "&signature=" + encodedSignature;
            String[] serviceOfferingNames = null;
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("list service offerings response code: " + responseCode);
            if (responseCode == 200) {
                InputStream is = method.getResponseBodyAsStream();
                Map<String, List<String>> serviceOfferingNameValues = getMultipleValuesFromXML(is, new String[] { "name" });

                if (serviceOfferingNameValues.containsKey("name")) {
                    List<String> serviceOfferingNameList = serviceOfferingNameValues.get("name");
                    if (serviceOfferingNameList != null) {
                        serviceOfferingNames = new String[serviceOfferingNameList.size()];
                        serviceOfferingNameList.toArray(serviceOfferingNames);
                        String serviceOfferingNameLogStr = "";
                        if ((serviceOfferingNames != null) && (serviceOfferingNames.length > 0)) {
                            serviceOfferingNameLogStr = serviceOfferingNames[0];
                            for (int i = 1; i < serviceOfferingNames.length; i++) {
                                serviceOfferingNameLogStr = serviceOfferingNameLogStr + ", " + serviceOfferingNames[i];
                            }
                        }
                        s_logger.info("got service offering names: " + serviceOfferingNameLogStr);
                    }
                }

            } else {
                s_logger.error("list service offerings failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }

            // ----------------------------------
            // LIST EVENTS
            // ---------------------------------

            url = server + "?command=listEvents&page=1&pagesize=100&&account=" + _account.get();
            String[] eventDescriptions = null;
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("list events response code: " + responseCode);
            if (responseCode == 200) {
                InputStream is = method.getResponseBodyAsStream();
                Map<String, List<String>> eventNameValues = getMultipleValuesFromXML(is, new String[] { "description" });

                if (eventNameValues.containsKey("description")) {
                    List<String> eventNameList = eventNameValues.get("description");
                    if (eventNameList != null) {
                        eventDescriptions = new String[eventNameList.size()];
                        eventNameList.toArray(eventDescriptions);
                        String eventNameLogStr = "\n\n";
                        if ((eventDescriptions != null) && (eventDescriptions.length > 0)) {
                            eventNameLogStr += eventDescriptions[0];
                            for (int i = 1; i < eventDescriptions.length; i++) {
                                eventNameLogStr = eventNameLogStr + "\n" + eventDescriptions[i];
                            }
                        }
                        eventNameLogStr += "\n\n";
                        s_logger.info("got event descriptions: " + eventNameLogStr);
                    }
                }
            } else {
                s_logger.error("list events failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }

            // ----------------------------------
            // STOP/DESTROY VIRTUAL MACHINES
            // ----------------------------------
            if (vmIds != null) {
                String cmdName = (destroy ? "destroyVirtualMachine" : "stopVirtualMachine");
                for (String vmId : vmIds) {
                    requestToSign = "apikey=" + encodedApiKey + "&command=" + cmdName + "&id=" + vmId;
                    requestToSign = requestToSign.toLowerCase();
                    signature = signRequest(requestToSign, _secretKey.get());
                    encodedSignature = URLEncoder.encode(signature, "UTF-8");

                    url = developerServer + "?command=" + cmdName + "&id=" + vmId + "&apikey=" + encodedApiKey + "&signature=" + encodedSignature;
                    client = new HttpClient();
                    method = new GetMethod(url);
                    responseCode = client.executeMethod(method);
                    s_logger.info(cmdName + " [" + vmId + "] response code: " + responseCode);
                    if (responseCode == 200) {
                        InputStream input = method.getResponseBodyAsStream();
                        Element el = queryAsyncJobResult(server, input);
                        Map<String, String> success = getSingleValueFromXML(el, new String[] { "success" });
                        s_logger.info(cmdName + "..success? " + success.get("success"));
                    } else {
                        s_logger.error(cmdName + "test failed with error code: " + responseCode + ". Following URL was sent: " + url);
                        return responseCode;
                    }
                }
            }
        }

        {
            String[] ipAddresses = null;
            // -----------------------------------------
            // LIST NAT IP ADDRESSES
            // -----------------------------------------
            String encodedApiKey = URLEncoder.encode(_apiKey.get(), "UTF-8");
            String requestToSign = "apikey=" + encodedApiKey + "&command=listPublicIpAddresses";
            requestToSign = requestToSign.toLowerCase();
            String signature = signRequest(requestToSign, _secretKey.get());
            String encodedSignature = URLEncoder.encode(signature, "UTF-8");

            url = developerServer + "?command=listPublicIpAddresses&apikey=" + encodedApiKey + "&signature=" + encodedSignature;
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("list ip addresses for user " + userId + " response code: " + responseCode);
            if (responseCode == 200) {

                InputStream is = method.getResponseBodyAsStream();
                List<String> ipAddressList = getNonSourceNatIPs(is);
                ipAddresses = new String[ipAddressList.size()];
                ipAddressList.toArray(ipAddresses);
                String ipAddrLogStr = "";
                if ((ipAddresses != null) && (ipAddresses.length > 0)) {
                    ipAddrLogStr = ipAddresses[0];
                    for (int i = 1; i < ipAddresses.length; i++) {
                        ipAddrLogStr = ipAddrLogStr + "," + ipAddresses[i];
                    }
                }
                s_logger.info("got ip addresses: " + ipAddrLogStr);

            } else {
                s_logger.error("list nat ip addresses failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }

            // -------------------------------------------------------------
            // Delete IP FORWARDING RULE -- Windows VM
            // -------------------------------------------------------------
            String encodedIpFwdId = URLEncoder.encode(_winipfwdid.get(), "UTF-8");

            requestToSign = "apikey=" + encodedApiKey + "&command=deleteIpForwardingRule&id=" + encodedIpFwdId;
            requestToSign = requestToSign.toLowerCase();
            signature = signRequest(requestToSign, _secretKey.get());
            encodedSignature = URLEncoder.encode(signature, "UTF-8");

            url = developerServer + "?command=deleteIpForwardingRule&apikey=" + encodedApiKey + "&id=" + encodedIpFwdId + "&signature=" + encodedSignature;

            s_logger.info("Delete Ip forwarding rule with " + url);
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            if (responseCode == 200) {
                InputStream input = method.getResponseBodyAsStream();
                Element el = queryAsyncJobResult(server, input);
                s_logger.info("IP forwarding rule was successfully deleted");       

            } else {
                s_logger.error("IP forwarding rule creation failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }

            //--------------------------------------------
            // Disable Static NAT for the Source NAT Ip
            //--------------------------------------------
            encodedApiKey = URLEncoder.encode(_apiKey.get(), "UTF-8");
            String encodedPublicIpId = URLEncoder.encode(_publicIpId.get(), "UTF-8");      
            requestToSign = "apikey=" + encodedApiKey + "&command=disableStaticNat"+"&id=" + encodedPublicIpId;
            requestToSign = requestToSign.toLowerCase();
            signature = signRequest(requestToSign, _secretKey.get());
            encodedSignature = URLEncoder.encode(signature, "UTF-8");

            url = developerServer + "?command=disableStaticNat&apikey=" + encodedApiKey + "&id=" + encodedPublicIpId + "&signature=" + encodedSignature ;
            client = new HttpClient();
            method = new GetMethod(url);
            responseCode = client.executeMethod(method);
            s_logger.info("url is " + url);
            s_logger.info("list ip addresses for user " + userId + " response code: " + responseCode);
            if (responseCode == 200) {
                InputStream is = method.getResponseBodyAsStream();
                Map<String, String> success = getSingleValueFromXML(is, new String[] { "success" });
                s_logger.info("Disable Static NAT..success? " + success.get("success"));
            } else {
                s_logger.error("Disable Static NAT failed with error code: " + responseCode + ". Following URL was sent: " + url);
                return responseCode;
            }

            // -----------------------------------------
            // DISASSOCIATE IP ADDRESSES
            // -----------------------------------------
            if (ipAddresses != null) {
                for (String ipAddress : ipAddresses) {
                    requestToSign = "apikey=" + encodedApiKey + "&command=disassociateIpAddress&id=" + ipAddress;
                    requestToSign = requestToSign.toLowerCase();
                    signature = signRequest(requestToSign, _secretKey.get());
                    encodedSignature = URLEncoder.encode(signature, "UTF-8");

                    url = developerServer + "?command=disassociateIpAddress&apikey=" + encodedApiKey + "&id=" + ipAddress + "&signature=" + encodedSignature;
                    client = new HttpClient();
                    method = new GetMethod(url);
                    responseCode = client.executeMethod(method);
                    s_logger.info("disassociate ip address [" + userId + "/" + ipAddress + "] response code: " + responseCode);
                    if (responseCode == 200) {
                        InputStream input = method.getResponseBodyAsStream();
                        Element disassocipel = queryAsyncJobResult(server, input);
                        Map<String, String> success = getSingleValueFromXML(disassocipel, new String[] {"success"});
                        //       Map<String, String> success = getSingleValueFromXML(input, new String[] { "success" });
                        s_logger.info("disassociate ip address..success? " + success.get("success"));
                    } else {
View Full Code Here

        }

        // s_logger.info("Job id is " + jobId);
        String resultUrl = host + "?command=queryAsyncJobResult&jobid=" + jobId;
        HttpClient client = new HttpClient();
        HttpMethod method = new GetMethod(resultUrl);
        while (true) {
            try {
                client.executeMethod(method);
                // s_logger.info("Method is executed successfully. Following url was sent " + resultUrl);
                InputStream is = method.getResponseBodyAsStream();
                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                DocumentBuilder builder = factory.newDocumentBuilder();
                Document doc = builder.parse(is);
                returnBody = doc.getDocumentElement();
                doc.getDocumentElement().normalize();
View Full Code Here

    for (String portValue : port) {
          try {
            s_logger.info("public port is " + portValue);
            String url = "http://" + this.getParam().get("hostip") + ":8096/?command=createNetworkRule&publicPort=" + portValue + "&privatePort=22&protocol=tcp&isForward=true&securityGroupId=1&account=admin";
            HttpClient client = new HttpClient();
        HttpMethod method = new GetMethod(url);
        int responseCode = client.executeMethod(method);
        if (responseCode != 200 ) {
          error++;
          s_logger.error("Can't create portForwarding network rule for the public port " + portValue + ". Request was sent with url " + url);
       
View Full Code Here

TOP

Related Classes of org.apache.commons.httpclient.HttpMethod

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.