mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-18 02:50:09 +03:00
removed unused driver files
git-svn-id: http://svn.opennebula.org/one/trunk@711 3034c82b-c49b-4eb3-8279-a7acafdc01c0
This commit is contained in:
parent
635c79ad9d
commit
f0167f2012
@ -1,323 +0,0 @@
|
|||||||
/* -------------------------------------------------------------------------- */
|
|
||||||
/* Copyright 2002-2009, Distributed Systems Architecture Group, Universidad */
|
|
||||||
/* Complutense de Madrid (dsa-research.org) */
|
|
||||||
/* */
|
|
||||||
/* Licensed under the Apache License, Version 2.0 (the "License"); you may */
|
|
||||||
/* not use this file except in compliance with 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. */
|
|
||||||
/* -------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
|
|
||||||
import com.vmware.vim.*;
|
|
||||||
import com.vmware.apputils.*;
|
|
||||||
import com.vmware.apputils.vim.*;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.net.*;
|
|
||||||
import java.io.*;
|
|
||||||
import javax.net.ssl.*;
|
|
||||||
|
|
||||||
import org.w3c.dom.Document;
|
|
||||||
import org.w3c.dom.*;
|
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
|
||||||
import javax.xml.parsers.DocumentBuilder;
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Used to stage VMs in the ESXi Server
|
|
||||||
* Accepts a Source and Destination, of the form
|
|
||||||
* machineSource:path_to_source machineDest:path_to_dest
|
|
||||||
* although the path to dest will be used to extract the one-id
|
|
||||||
* and files stored in datastore/one-id
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class TMClone
|
|
||||||
{
|
|
||||||
private String oneID = "";
|
|
||||||
|
|
||||||
// Helpers from VI samples
|
|
||||||
private static ServiceContent content;
|
|
||||||
private static AppUtil cb = null;
|
|
||||||
private static VimPortType service;
|
|
||||||
|
|
||||||
private String datastore = "";
|
|
||||||
private String datacenter = "";
|
|
||||||
|
|
||||||
private String pathToVm = "";
|
|
||||||
|
|
||||||
/* Copies a VM from local FS to ESXi
|
|
||||||
* @param pathToVm localpath of the VM
|
|
||||||
*/
|
|
||||||
private void copyVM() throws Exception
|
|
||||||
{
|
|
||||||
String [] listOfVMFiles = getDirFiles(pathToVm);
|
|
||||||
|
|
||||||
for(int i=0; i<listOfVMFiles.length; i++)
|
|
||||||
{
|
|
||||||
String remoteFilePath = "/" +oneID+"/"+listOfVMFiles[i];
|
|
||||||
String localFilePath = pathToVm+"/"+listOfVMFiles[i];
|
|
||||||
|
|
||||||
if(localFilePath.indexOf("vdisk") != -1)
|
|
||||||
{
|
|
||||||
String dataStoreName =
|
|
||||||
pathToVm.substring(pathToVm.lastIndexOf("#")+1);
|
|
||||||
remoteFilePath =
|
|
||||||
"/"+oneID+"/"+dataStoreName+"/"+listOfVMFiles[i];
|
|
||||||
/* if(localFilePath.indexOf("flat") == -1)
|
|
||||||
{
|
|
||||||
diskNames.add(dataStoreName+"/"+listOfVMFiles[i]);
|
|
||||||
} */
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
remoteFilePath = "/"+oneID+"/"+listOfVMFiles[i];
|
|
||||||
}
|
|
||||||
transferVMFiles(remoteFilePath,localFilePath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Performs the actual copying through HTTP
|
|
||||||
* @param remoteFilePath remote path of the VM on the ESXi
|
|
||||||
* @param localFilePath localpath of the VM
|
|
||||||
*/
|
|
||||||
private void transferVMFiles(String remoteFilePath, String localFilePath)
|
|
||||||
throws Exception
|
|
||||||
{
|
|
||||||
String serviceUrl = cb.getServiceUrl();
|
|
||||||
serviceUrl = serviceUrl.substring(0,serviceUrl.lastIndexOf("sdk")-1);
|
|
||||||
|
|
||||||
String httpUrl = serviceUrl +"/folder" + remoteFilePath+"?dcPath="
|
|
||||||
+datacenter +"&dsName="+ datastore;
|
|
||||||
|
|
||||||
httpUrl = httpUrl.replaceAll("\\ ","%20");
|
|
||||||
HttpURLConnection conn = getConnection(httpUrl);
|
|
||||||
conn.setRequestProperty( org.apache.axis.transport.http.HTTPConstants.HEADER_CONTENT_LENGTH,"1024");
|
|
||||||
|
|
||||||
OutputStream out = conn.getOutputStream();
|
|
||||||
FileInputStream in = new FileInputStream(new File(localFilePath));
|
|
||||||
|
|
||||||
// Perform the actual staging
|
|
||||||
byte[] buf = new byte[1024];
|
|
||||||
int len = 0;
|
|
||||||
while ((len = in.read(buf)) > 0)
|
|
||||||
{
|
|
||||||
out.write(buf, 0, len);
|
|
||||||
out.flush();
|
|
||||||
}
|
|
||||||
conn.getResponseMessage();
|
|
||||||
conn.disconnect();
|
|
||||||
out.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns list of files available on a folder
|
|
||||||
* @param localDir local path containing files to be listed
|
|
||||||
* @return list of files or null if none
|
|
||||||
*/
|
|
||||||
private String [] getDirFiles(String localDir) throws Exception
|
|
||||||
{
|
|
||||||
File temp = new File(localDir);
|
|
||||||
String [] listOfFiles = temp.list();
|
|
||||||
|
|
||||||
if(listOfFiles != null)
|
|
||||||
{
|
|
||||||
return listOfFiles;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Gets http connection to ESXi server
|
|
||||||
* @param urlString contact point to the ESXi server
|
|
||||||
* @returns http connection to ESXi server
|
|
||||||
*/
|
|
||||||
private HttpURLConnection getConnection(String urlString) throws Exception
|
|
||||||
{
|
|
||||||
String cookieString = getCookie();
|
|
||||||
trustAllHttpsCertificates();
|
|
||||||
|
|
||||||
HostnameVerifier hv = new HostnameVerifier()
|
|
||||||
{
|
|
||||||
public boolean verify(String urlHostName, SSLSession session)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
HttpsURLConnection.setDefaultHostnameVerifier(hv);
|
|
||||||
URL url = new URL(urlString);
|
|
||||||
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
|
||||||
conn.setDoOutput(true);
|
|
||||||
|
|
||||||
conn.setRequestProperty(
|
|
||||||
org.apache.axis.transport.http.HTTPConstants.HEADER_COOKIE,
|
|
||||||
cookieString);
|
|
||||||
|
|
||||||
conn.setRequestProperty(
|
|
||||||
org.apache.axis.transport.http.HTTPConstants.HEADER_CONTENT_TYPE,
|
|
||||||
"application/octet-stream");
|
|
||||||
|
|
||||||
conn.setRequestProperty(
|
|
||||||
org.apache.axis.transport.http.HTTPConstants.HEADER_EXPECT,
|
|
||||||
"100-continue");
|
|
||||||
conn.setRequestMethod("PUT");
|
|
||||||
return conn;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void trustAllHttpsCertificates() throws Exception
|
|
||||||
{
|
|
||||||
javax.net.ssl.TrustManager[] trustAllCerts =
|
|
||||||
new javax.net.ssl.TrustManager[1];
|
|
||||||
javax.net.ssl.TrustManager tm = new myTMan();
|
|
||||||
trustAllCerts[0] = tm;
|
|
||||||
javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL");
|
|
||||||
sc.init(null, trustAllCerts, null);
|
|
||||||
javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Get ESXi cookie
|
|
||||||
* @return string ESXi cookie
|
|
||||||
*/
|
|
||||||
private String getCookie() throws Exception
|
|
||||||
{
|
|
||||||
com.vmware.vim.VimPortType test = cb.getConnection().getService();
|
|
||||||
org.apache.axis.client.Stub st = (org.apache.axis.client.Stub)test;
|
|
||||||
org.apache.axis.client.Call callObj = st._getCall();
|
|
||||||
org.apache.axis.MessageContext msgContext = callObj.getMessageContext();
|
|
||||||
String cookieString
|
|
||||||
= (String)msgContext.getProperty(
|
|
||||||
org.apache.axis.transport.http.HTTPConstants.HEADER_COOKIE);
|
|
||||||
return cookieString;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TMClone(String source, String destiny) throws Exception
|
|
||||||
{
|
|
||||||
String[] connectionArgs = new String[6];
|
|
||||||
|
|
||||||
String hostName = destiny.substring(0,destiny.indexOf(":"));
|
|
||||||
pathToVm = source.substring(source.indexOf(":")+1,
|
|
||||||
source.length());
|
|
||||||
oneID = destiny.substring(destiny.indexOf(":")+1,
|
|
||||||
destiny.length());
|
|
||||||
oneID = oneID.substring(0,oneID.lastIndexOf("/") );
|
|
||||||
oneID = oneID.substring(0,oneID.lastIndexOf("/") );
|
|
||||||
oneID = oneID.substring(oneID.lastIndexOf("/")+1 );
|
|
||||||
|
|
||||||
connectionArgs[0]="--url";
|
|
||||||
connectionArgs[1]="https://" + hostName + ":8008/sdk";
|
|
||||||
connectionArgs[2]="--username";
|
|
||||||
connectionArgs[3]= System.getProperty("username");
|
|
||||||
connectionArgs[4]="--password";
|
|
||||||
connectionArgs[5]= System.getProperty("password");
|
|
||||||
|
|
||||||
cb = AppUtil.initialize("TMClone", null, connectionArgs);
|
|
||||||
cb.connect();
|
|
||||||
|
|
||||||
// Todo change hardcoding
|
|
||||||
ManagedObjectReference hostMor =
|
|
||||||
cb.getServiceUtil().getDecendentMoRef(null,
|
|
||||||
"HostSystem",
|
|
||||||
hostName);
|
|
||||||
|
|
||||||
// TODO make this dymamic.
|
|
||||||
datacenter = "ha-datacenter";
|
|
||||||
|
|
||||||
datastore = "datastore1";
|
|
||||||
|
|
||||||
com.vmware.apputils.vim.ServiceConnection sc = cb.getConnection();
|
|
||||||
content = sc.getServiceContent();
|
|
||||||
service = sc.getService();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void finalize() throws Throwable
|
|
||||||
{
|
|
||||||
cb.disConnect();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[] args)
|
|
||||||
{
|
|
||||||
boolean success = true;
|
|
||||||
|
|
||||||
// first, make redirection
|
|
||||||
|
|
||||||
PrintStream stdout = System.out;
|
|
||||||
PrintStream stderr = System.err;
|
|
||||||
|
|
||||||
System.setOut(stderr);
|
|
||||||
System.setErr(stdout);
|
|
||||||
|
|
||||||
if(args.length!=2)
|
|
||||||
{
|
|
||||||
success = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
TMClone tmc = new TMClone(args[0],args[1]);
|
|
||||||
tmc.copyVM();
|
|
||||||
}
|
|
||||||
catch(Exception e)
|
|
||||||
{
|
|
||||||
e.printStackTrace();
|
|
||||||
success = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (success)
|
|
||||||
{
|
|
||||||
System.exit(0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
System.exit(-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static class myTMan implements javax.net.ssl.TrustManager,
|
|
||||||
javax.net.ssl.X509TrustManager
|
|
||||||
{
|
|
||||||
public java.security.cert.X509Certificate[] getAcceptedIssuers()
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
public boolean isServerTrusted(
|
|
||||||
java.security.cert.X509Certificate[] certs)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
public boolean isClientTrusted(
|
|
||||||
java.security.cert.X509Certificate[] certs)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
public void checkServerTrusted(
|
|
||||||
java.security.cert.X509Certificate[] certs, String authType)
|
|
||||||
throws java.security.cert.CertificateException
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
public void checkClientTrusted(
|
|
||||||
java.security.cert.X509Certificate[] certs, String authType)
|
|
||||||
throws java.security.cert.CertificateException
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,62 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------- #
|
|
||||||
# Copyright 2002-2009, Distributed Systems Architecture Group, Universidad #
|
|
||||||
# Complutense de Madrid (dsa-research.org) #
|
|
||||||
# #
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
|
||||||
# not use this file except in compliance with 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. #
|
|
||||||
#--------------------------------------------------------------------------- #
|
|
||||||
|
|
||||||
|
|
||||||
#Setup driver variables
|
|
||||||
DRIVER_NAME="tm_vmware"
|
|
||||||
|
|
||||||
if [ -z "${ONE_LOCATION}" ]; then
|
|
||||||
DRIVERRC=/etc/one/${DRIVER_NAME}/${DRIVER_NAME}rc
|
|
||||||
TMCOMMON=/usr/lib/one/mads/tm_common.sh
|
|
||||||
else
|
|
||||||
DRIVERRC=$ONE_LOCATION/etc/${DRIVER_NAME}/${DRIVER_NAME}rc
|
|
||||||
TMCOMMON=$ONE_LOCATION/lib/mads/tm_common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
. $TMCOMMON
|
|
||||||
|
|
||||||
# Export the im_mad specific rc
|
|
||||||
|
|
||||||
export_rc_vars $DRIVERRC
|
|
||||||
|
|
||||||
echo $VMWARE_TRUSTORE
|
|
||||||
|
|
||||||
LOG_FILE=$DRIVER_NAME
|
|
||||||
|
|
||||||
MAD_FILE="TMClone"
|
|
||||||
|
|
||||||
if [ -z "${ONE_LOCATION}" ]; then
|
|
||||||
MAD_LOG_PATH=/var/log/one/$LOG_FILE.log
|
|
||||||
else
|
|
||||||
MAD_LOG_PATH=$ONE_LOCATION/var/$LOG_FILE.log
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Execute the actual MAD
|
|
||||||
if [ -n "${ONE_MAD_DEBUG}" ]; then
|
|
||||||
exec_and_log "exec nice -n $PRIORITY java -cp .:$CLASSPATH \
|
|
||||||
-Djavax.net.ssl.trustStore=$VMWARE_TRUSTORE -Dusername=$USERNAME \
|
|
||||||
-Dpassword=$PASSWORD -Xmx1024M $MAD_FILE $*"
|
|
||||||
else
|
|
||||||
exec nice -n $PRIORITY java -cp .:$CLASSPATH \
|
|
||||||
-Djavax.net.ssl.trustStore=$VMWARE_TRUSTORE -Dusername=$USERNAME \
|
|
||||||
-Dpassword=$PASSWORD -Xmx1024M $MAD_FILE $* 2> /dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------- #
|
|
||||||
# Copyright 2002-2009, Distributed Systems Architecture Group, Universidad #
|
|
||||||
# Complutense de Madrid (dsa-research.org) #
|
|
||||||
# #
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
|
||||||
# not use this file except in compliance with 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. #
|
|
||||||
#--------------------------------------------------------------------------- #
|
|
||||||
|
|
||||||
SRC=$1
|
|
||||||
DST=$2
|
|
||||||
|
|
||||||
if [ -z "${ONE_LOCATION}" ]; then
|
|
||||||
TMCOMMON=/usr/lib/one/mads/tm_common.sh
|
|
||||||
else
|
|
||||||
TMCOMMON=$ONE_LOCATION/lib/mads/tm_common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
. $TMCOMMON
|
|
||||||
|
|
||||||
SRC_PATH=`arg_path $SRC`
|
|
||||||
DST_PATH=`arg_path $DST`
|
|
||||||
|
|
||||||
# Get rid of path/images, we don't need it
|
|
||||||
DST_PATH=`dirname $DST_PATH`
|
|
||||||
|
|
||||||
SRC_HOST=`arg_host $SRC`
|
|
||||||
DST_HOST=`arg_host $DST`
|
|
||||||
|
|
||||||
log "$1 $2"
|
|
||||||
log "DST: $DST_PATH"
|
|
||||||
|
|
||||||
BASE_SRC=`basename $SRC_PATH`
|
|
||||||
BASE_DST=`basename $DST_PATH`
|
|
||||||
|
|
||||||
case $SRC in
|
|
||||||
http://*)
|
|
||||||
log "Downloading $SRC"
|
|
||||||
exec_and_log "ssh $DST_HOST wget -O $DST_PATH $SRC_PATH"
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
log "Cloning $SRC"
|
|
||||||
scp -r $SRC $DST_HOST:/vmfs/volumes/$DATASTORE/
|
|
||||||
ssh $DST_HOST "cd /vmfs/volumes/$DATASTORE ; mv $BASE_SRC $BASE_DST"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
ssh $DST_HOST chmod a+w /vmfs/volumes/$DATASTORE/$BASE_DST
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------- #
|
|
||||||
# Copyright 2002-2009, Distributed Systems Architecture Group, Universidad #
|
|
||||||
# Complutense de Madrid (dsa-research.org) #
|
|
||||||
# #
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
|
||||||
# not use this file except in compliance with 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. #
|
|
||||||
#--------------------------------------------------------------------------- #
|
|
||||||
|
|
||||||
# Parameters: a b c d e f g h
|
|
||||||
# SRC: a b c d e f g
|
|
||||||
# DST: h
|
|
||||||
while (( "$#" )); do
|
|
||||||
if [ "$#" == "1" ]; then
|
|
||||||
DST=$1
|
|
||||||
else
|
|
||||||
SRC="$SRC $1"
|
|
||||||
fi
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
if [ -z "${ONE_LOCATION}" ]; then
|
|
||||||
TMCOMMON=/usr/lib/one/mads/tm_common.sh
|
|
||||||
else
|
|
||||||
TMCOMMON=$ONE_LOCATION/lib/mads/tm_common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
. $TMCOMMON
|
|
||||||
|
|
||||||
|
|
||||||
DST_PATH=`arg_path $DST`
|
|
||||||
DST_FILE=`basename $DST_PATH`
|
|
||||||
DST_PATH=`dirname $DST_PATH`
|
|
||||||
DST_DIR=`dirname $DST_PATH`
|
|
||||||
DST_HASH=`echo -n $DST | md5sum | awk '{print $1}'`
|
|
||||||
TMP_DIR="$ONE_LOCATION/var/$DST_HASH"
|
|
||||||
ISO_DIR="$TMP_DIR/isofiles"
|
|
||||||
DST_HOST=`arg_host $DST`
|
|
||||||
DST_ONEID_FOLDER=`dirname $DST_PATH`
|
|
||||||
DST_ONEID_FOLDER=`basename $DST_ONEID_FOLDER`
|
|
||||||
|
|
||||||
exec_and_log "mkdir -p $ISO_DIR"
|
|
||||||
|
|
||||||
for f in $SRC; do
|
|
||||||
case $f in
|
|
||||||
http://*)
|
|
||||||
exec_and_log "wget -O $ISO_DIR $f"
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
exec_and_log "cp -R $f $ISO_DIR"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
exec_and_log "mkisofs -o $TMP_DIR/$DST_FILE -J -R $ISO_DIR"
|
|
||||||
scp $TMP_DIR/$DST_FILE $DST_HOST:/vmfs/volumes/$DATASTORE/$DST_ONEID_FOLDER
|
|
||||||
exec_and_log "rm -rf $TMP_DIR"
|
|
@ -1,38 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------- #
|
|
||||||
# Copyright 2002-2009, Distributed Systems Architecture Group, Universidad #
|
|
||||||
# Complutense de Madrid (dsa-research.org) #
|
|
||||||
# #
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
|
||||||
# not use this file except in compliance with 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. #
|
|
||||||
#--------------------------------------------------------------------------- #
|
|
||||||
|
|
||||||
SRC=$1
|
|
||||||
DST=$2
|
|
||||||
|
|
||||||
if [ -z "${ONE_LOCATION}" ]; then
|
|
||||||
TMCOMMON=/usr/lib/one/mads/tm_common.sh
|
|
||||||
else
|
|
||||||
TMCOMMON=$ONE_LOCATION/lib/mads/tm_common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
. $TMCOMMON
|
|
||||||
|
|
||||||
SRC_PATH=`arg_path $SRC`
|
|
||||||
SRC_HOST=`arg_host $SRC`
|
|
||||||
|
|
||||||
# We just need the <vid> bit
|
|
||||||
SRC_PATH=`basename $SRC_PATH`
|
|
||||||
|
|
||||||
log "Deleting $SRC_PATH"
|
|
||||||
exec_and_log "ssh $SRC_HOST rm -rf /vmfs/volumes/$DATASTORE/$SRC_PATH"
|
|
@ -1,35 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------- #
|
|
||||||
# Copyright 2002-2009, Distributed Systems Architecture Group, Universidad #
|
|
||||||
# Complutense de Madrid (dsa-research.org) #
|
|
||||||
# #
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
|
||||||
# not use this file except in compliance with 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. #
|
|
||||||
#--------------------------------------------------------------------------- #
|
|
||||||
|
|
||||||
SRC=$1
|
|
||||||
DST=$2
|
|
||||||
|
|
||||||
if [ -z "${ONE_LOCATION}" ]; then
|
|
||||||
TMCOMMON=/usr/lib/one/mads/tm_common.sh
|
|
||||||
TM_COMMANDS_LOCATION=/usr/lib/one/tm_commands/
|
|
||||||
else
|
|
||||||
TMCOMMON=$ONE_LOCATION/lib/mads/tm_common.sh
|
|
||||||
TM_COMMANDS_LOCATION=$ONE_LOCATION/lib/tm_commands/
|
|
||||||
fi
|
|
||||||
|
|
||||||
. $TMCOMMON
|
|
||||||
|
|
||||||
log "Link $SRC_PATH (non shared dir, will clone)"
|
|
||||||
#exec_and_log "ln -s $SRC_PATH $DST_PATH"
|
|
||||||
exec $TM_COMMANDS_LOCATION/ssh/tm_clone.sh $SRC $DST
|
|
@ -1,50 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------- #
|
|
||||||
# Copyright 2002-2009, Distributed Systems Architecture Group, Universidad #
|
|
||||||
# Complutense de Madrid (dsa-research.org) #
|
|
||||||
# #
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
|
||||||
# not use this file except in compliance with 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. #
|
|
||||||
#--------------------------------------------------------------------------- #
|
|
||||||
|
|
||||||
if [ -z "${ONE_LOCATION}" ]; then
|
|
||||||
TMCOMMON=/usr/lib/one/mads/tm_common.sh
|
|
||||||
else
|
|
||||||
TMCOMMON=$ONE_LOCATION/lib/mads/tm_common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
. $TMCOMMON
|
|
||||||
|
|
||||||
SIZE=$1
|
|
||||||
FSTYPE=$2
|
|
||||||
DST=$3
|
|
||||||
|
|
||||||
DST_PATH=`arg_path $DST`
|
|
||||||
DST_HOST=`arg_host $DST`
|
|
||||||
DST_DIR=`dirname $DST_PATH`
|
|
||||||
# Get rid of path/images, we don't need it
|
|
||||||
DST_DIR=`dirname $DST_DIR`
|
|
||||||
|
|
||||||
DST_HASH=`echo -n $DST | md5sum | awk '{print $1}'`
|
|
||||||
TMP_DIR="$ONE_LOCATION/var/$DST_HASH"
|
|
||||||
NAME_OF_CONTEXT_FILE=`basename $DST_PATH`
|
|
||||||
|
|
||||||
DST_ONEID_FOLDER=`basename $DST_DIR`
|
|
||||||
|
|
||||||
exec_and_log "mkdir -p $TMP_DIR"
|
|
||||||
|
|
||||||
ssh $DST_HOST \"cd /vmfs/volumes/$DATASTORE; mkdir $DST_DIR\"
|
|
||||||
exec_and_log "dd if=/dev/zero of=$TMP_DIR/$NAME_OF_CONTEXT_FILE bs=1 count=1 seek=${SIZE}M"
|
|
||||||
exec_and_log "mkfs -t $FSTYPE -F $TMP_DIR/$NAME_OF_CONTEXT_FILE"
|
|
||||||
scp $TMP_DIR/$NAME_OF_CONTEXT_FILE $DST_HOST:/vmfs/volumes/$DATASTORE/$DST_ONEID_FOLDER
|
|
||||||
ssh $DST_HOST chmod a+rw $DST_PATH
|
|
@ -1,69 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------- #
|
|
||||||
# Copyright 2002-2009, Distributed Systems Architecture Group, Universidad #
|
|
||||||
# Complutense de Madrid (dsa-research.org) #
|
|
||||||
# #
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
|
||||||
# not use this file except in compliance with 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. #
|
|
||||||
#--------------------------------------------------------------------------- #
|
|
||||||
|
|
||||||
SRC=$1
|
|
||||||
DST=$2
|
|
||||||
|
|
||||||
if [ -z "${ONE_LOCATION}" ]; then
|
|
||||||
TMCOMMON=/usr/lib/one/mads/tm_common.sh
|
|
||||||
else
|
|
||||||
TMCOMMON=$ONE_LOCATION/lib/mads/tm_common.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
. $TMCOMMON
|
|
||||||
|
|
||||||
SRC_PATH=`arg_path $SRC`
|
|
||||||
DST_PATH=`arg_path $DST`
|
|
||||||
|
|
||||||
SRC_HOST=`arg_host $SRC`
|
|
||||||
DST_HOST=`arg_host $DST`
|
|
||||||
|
|
||||||
if [ $SRC_HOST -ne `hostname` ]; then
|
|
||||||
$VM_ID=`sed -e 's/.*\/\([0-9]\+\)\/images\/.*/\1/`
|
|
||||||
$VM_NAME=one-$VM_ID
|
|
||||||
$LAST_BIT_OF_PATH=`basename $SRC_PATH`
|
|
||||||
if [ $LAST_BIT_OF_PATH -eq "images" ]; then
|
|
||||||
SRC_PATH="/vmfs/volumes/$DATASTORE/"$VM_NAME
|
|
||||||
else
|
|
||||||
SRC_PATH="/vmfs/volumes/$DATASTORE/"$VM_NAME"/$LAST_BIT_OF_PATH
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $DST_HOST -ne `hostname` ]; then
|
|
||||||
$VM_ID=`sed -e 's/.*\/\([0-9]\+\)\/images\/.*/\1/`
|
|
||||||
$VM_NAME=one-$VM_ID
|
|
||||||
$LAST_BIT_OF_PATH=`basename $DST_PATH`
|
|
||||||
if [ $LAST_BIT_OF_PATH -eq "images" ]; then
|
|
||||||
DST_PATH="/vmfs/volumes/$DATASTORE/"$VM_NAME
|
|
||||||
else
|
|
||||||
DST_PATH="/vmfs/volumes/$DATASTORE/"$VM_NAME"/$LAST_BIT_OF_PATH
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
DST_DIR=`dirname $DST_PATH`
|
|
||||||
|
|
||||||
if [ -d $DST_PATH ]; then
|
|
||||||
DST_ONEID_FOLDER=`basename `
|
|
||||||
else
|
|
||||||
fi
|
|
||||||
|
|
||||||
log "Moving $SRC_PATH"
|
|
||||||
scp -r $SRC $DST_HOST:/vmfs/volumes/$DATASTORE/$
|
|
||||||
ssh $SRC_HOST rm -rf $SRC_PATH
|
|
@ -1,6 +0,0 @@
|
|||||||
CLONE = vmware/tm_clone.sh
|
|
||||||
LN = vmware/tm_ln.sh
|
|
||||||
MKSWAP = dummy/tm_dymmy.sh
|
|
||||||
MKIMAGE = vmware/tm_mkimage.sh
|
|
||||||
DELETE = vmware/tm_delete.sh
|
|
||||||
MV = vmware/tm_mv.sh
|
|
@ -1,22 +0,0 @@
|
|||||||
# -------------------------------------------------------------------------- #
|
|
||||||
# Copyright 2002-2009, Distributed Systems Architecture Group, Universidad #
|
|
||||||
# Complutense de Madrid (dsa-research.org) #
|
|
||||||
# #
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
|
||||||
# not use this file except in compliance with 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. #
|
|
||||||
#--------------------------------------------------------------------------- #
|
|
||||||
|
|
||||||
# Uncomment the following line to active MAD debug
|
|
||||||
#ONE_MAD_DEBUG=1
|
|
||||||
|
|
||||||
# Name of the ESX(i) datastore
|
|
||||||
DATASTORE=datastore1
|
|
Loading…
x
Reference in New Issue
Block a user