// Copyright 2012 Citrix Systems, Inc. Licensed under the
// Apache License, Version 2.0 (the "License"); you may not use this
// file except in compliance with the License. Citrix Systems, Inc.
// reserves all rights not expressly granted by the License.
// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Automatically generated by addcopyright.py at 04/03/2012
package com.cloud.test.longrun;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import org.apache.log4j.Logger;
public class BuildGuestNetwork {
public static final Logger s_logger= Logger.getLogger(BuildGuestNetwork.class.getClass());
private static final int _apiPort=8096;
private static final int _developerPort=8080;
private static final String _apiUrl = "/client/api";
private static int numVM=1;
private static long zoneId=-1L;
private static long templateId=3;
private static long serviceOfferingId=1;
public static void main (String[] args){
List<String> argsList = Arrays.asList(args);
Iterator<String> iter = argsList.iterator();
String host = "http://localhost";
int numThreads = 1;
while (iter.hasNext()){
String arg = iter.next();
if (arg.equals("-h")){
host="http://"+iter.next();
}
if (arg.equals("-t")){
numThreads=Integer.parseInt(iter.next());
}
if (arg.equals("-n")){
numVM=Integer.parseInt(iter.next());
}
if (arg.equals("-z")){
zoneId=Integer.parseInt(iter.next());
}
if (arg.equals("-e")){
templateId=Integer.parseInt(iter.next());
}
if (arg.equals("-s")){
serviceOfferingId=Integer.parseInt(iter.next());
}
}
final String server = host + ":" + _apiPort + "/";
final String developerServer = host + ":" + _developerPort + _apiUrl;
s_logger.info("Starting test in "+numThreads+" thread(s). Each thread is launching "+numVM+" VMs");
for (int i=0; i<numThreads; i++){
new Thread(new Runnable() {
public void run() {
try{
String username = null;
String singlePrivateIp=null;
Random ran = new Random();
username = Math.abs(ran.nextInt())+ "-user";
//Create User
User myUser = new User(username,username, server, developerServer);
try{
myUser.launchUser();
myUser.registerUser();
}catch (Exception e){
s_logger.warn("Error code: ", e);
}
if (myUser.getUserId()!=null){
s_logger.info("User "+myUser.getUserName()+" was created successfully, starting VM creation");
//create VMs for the user
for (int i=0; i<numVM; i++){
//Create a new VM, add it to the list of user's VMs
VirtualMachine myVM = new VirtualMachine(myUser.getUserId());
myVM.deployVM(zoneId, serviceOfferingId, templateId, myUser.getDeveloperServer(), myUser.getApiKey(), myUser.getSecretKey());
myUser.getVirtualMachines().add(myVM);
singlePrivateIp=myVM.getPrivateIp();
if (singlePrivateIp!=null){
s_logger.info("VM with private Ip "+singlePrivateIp+" was successfully created");
}
else{
s_logger.info("Problems with VM creation for a user"+myUser.getUserName());
s_logger.info("Deployment failed");
break;
}
}
s_logger.info("Deployment done..."+numVM+" VMs were created.");
}
}catch (Exception e){
s_logger.error(e);
}
}
}).start();
}
}
}