diff --git a/agent/src/com/cloud/agent/resource/storage/IscsiMountPreparer.java b/agent/src/com/cloud/agent/resource/storage/IscsiMountPreparer.java
deleted file mode 100644
index 2def1977824..00000000000
--- a/agent/src/com/cloud/agent/resource/storage/IscsiMountPreparer.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/**
- * Copyright (C) 2010 Cloud.com, Inc. All rights reserved.
- *
- * This software is licensed under the GNU General Public License v3 or later.
- *
- * It is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- *
- */
-package com.cloud.agent.resource.storage;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import javax.naming.ConfigurationException;
-
-import org.apache.log4j.Logger;
-
-import com.cloud.resource.DiskPreparer;
-import com.cloud.storage.Volume;
-import com.cloud.storage.VolumeVO;
-import com.cloud.storage.Volume.VolumeType;
-import com.cloud.template.VirtualMachineTemplate.BootloaderType;
-import com.cloud.utils.NumbersUtil;
-import com.cloud.utils.script.Script;
-
-public class IscsiMountPreparer implements DiskPreparer {
- private static final Logger s_logger = Logger.getLogger(IscsiMountPreparer.class);
-
- private String _name;
-
- private String _mountvmPath;
- private String _mountRootdiskPath;
- private String _mountDatadiskPath;
- protected String _mountParent;
- protected int _mountTimeout;
-
- @Override
- public String mount(String vmName, VolumeVO vol, BootloaderType type) {
- return null;
- }
-
- @Override
- public boolean unmount(String path) {
- return false;
- }
-
- protected static VolumeVO findVolume(final List volumes, final Volume.VolumeType vType) {
- if (volumes == null) return null;
-
- for (final VolumeVO v: volumes) {
- if (v.getVolumeType() == vType)
- return v;
- }
-
- return null;
- }
-
- protected static List findVolumes(final List volumes, final Volume.VolumeType vType) {
- if (volumes == null) return null;
- final List result = new ArrayList();
- for (final VolumeVO v: volumes) {
- if (v.getVolumeType() == vType)
- result.add(v);
- }
-
- return result;
- }
-
- protected static VolumeVO findVolume(final List volumes, final Volume.VolumeType vType, final String storageHost) {
- if (volumes == null) return null;
- for (final VolumeVO v: volumes) {
- if ((v.getVolumeType() == vType) && (v.getHostIp().equalsIgnoreCase(storageHost)))
- return v;
- }
- return null;
- }
-
- protected static boolean mirroredVolumes(final List vols, final Volume.VolumeType vType) {
- final List volumes = findVolumes(vols, vType);
- return volumes.size() > 1;
- }
-
- public synchronized String mountImage(final String host, final String dest, final String vmName, final List volumes, final BootloaderType bootloader) {
- final Script command = new Script(_mountvmPath, _mountTimeout, s_logger);
- command.add("-h", host);
- command.add("-l", dest);
- command.add("-n", vmName);
- command.add("-b", bootloader.toString());
-
- command.add("-t");
-
-
- final VolumeVO root = findVolume(volumes, Volume.VolumeType.ROOT);
- if (root == null) {
- return null;
- }
- command.add(root.getIscsiName());
- command.add("-r", root.getFolder());
-
- final VolumeVO swap = findVolume(volumes, Volume.VolumeType.SWAP);
- if (swap !=null && swap.getIscsiName() != null) {
- command.add("-w", swap.getIscsiName());
- }
-
- final VolumeVO datadsk = findVolume(volumes, Volume.VolumeType.DATADISK);
- if (datadsk !=null && datadsk.getIscsiName() != null) {
- command.add("-1", datadsk.getIscsiName());
- }
-
- return command.execute();
- }
-
- public synchronized String mountImage(final String storageHosts[], final String dest, final String vmName, final List volumes, final boolean mirroredVols, final BootloaderType booter) {
- if (!mirroredVols) {
- return mountImage(storageHosts[0], dest, vmName, volumes, booter);
- } else {
- return mountMirroredImage(storageHosts, dest, vmName, volumes, booter);
- }
- }
-
- protected String mountMirroredImage(final String hosts[], final String dest, final String vmName, final List volumes, final BootloaderType booter) {
- final List rootDisks = findVolumes(volumes, VolumeType.ROOT);
- final String storIp0 = hosts[0];
- final String storIp1 = hosts[1];
- //mountrootdisk.sh -m -h $STORAGE0 -t $iqn0 -l $src -n $vmname -r $dest -M -H $STORAGE1 -T $iqn1
- final Script command = new Script(_mountRootdiskPath, _mountTimeout, s_logger);
- command.add("-m");
- command.add("-M");
- command.add("-h", storIp0);
- command.add("-H", storIp1);
- command.add("-l", dest);
- command.add("-r", rootDisks.get(0).getFolder());
- command.add("-n", vmName);
- command.add("-t", rootDisks.get(0).getIscsiName());
- command.add("-T", rootDisks.get(1).getIscsiName());
- command.add("-b", booter.toString());
-
- final List swapDisks = findVolumes(volumes, VolumeType.SWAP);
- if (swapDisks.size() == 2) {
- command.add("-w", swapDisks.get(0).getIscsiName());
- command.add("-W", swapDisks.get(1).getIscsiName());
- }
-
- final String result = command.execute();
- if (result == null){
- final List dataDisks = findVolumes(volumes, VolumeType.DATADISK);
- if (dataDisks.size() == 2) {
- final Script mountdata = new Script(_mountDatadiskPath, _mountTimeout, s_logger);
- mountdata.add("-m");
- mountdata.add("-M");
- mountdata.add("-h", storIp0);
- mountdata.add("-H", storIp1);
- mountdata.add("-n", vmName);
- mountdata.add("-c", "1");
- mountdata.add("-d", dataDisks.get(0).getIscsiName());
- mountdata.add("-D", dataDisks.get(1).getIscsiName());
- return mountdata.execute();
-
- } else if (dataDisks.size() == 0){
- return result;
- }
- }
-
- return result;
- }
-
- @Override
- public boolean configure(String name, Map params) throws ConfigurationException {
- _name = name;
-
- String scriptsDir = (String)params.get("mount.scripts.dir");
- if (scriptsDir == null) {
- scriptsDir = "scripts/vm/storage/iscsi/comstar/filebacked";
- }
-
- _mountDatadiskPath = Script.findScript(scriptsDir, "mountdatadisk.sh");
- if (_mountDatadiskPath == null) {
- throw new ConfigurationException("Unable to find mountdatadisk.sh");
- }
- s_logger.info("mountdatadisk.sh found in " + _mountDatadiskPath);
-
- String value = (String)params.get("mount.script.timeout");
- _mountTimeout = NumbersUtil.parseInt(value, 240) * 1000;
-
- _mountvmPath = Script.findScript(scriptsDir, "mountvm.sh");
- if (_mountvmPath == null) {
- throw new ConfigurationException("Unable to find mountvm.sh");
- }
- s_logger.info("mountvm.sh found in " + _mountvmPath);
-
- _mountRootdiskPath = Script.findScript(scriptsDir, "mountrootdisk.sh");
- if (_mountRootdiskPath == null) {
- throw new ConfigurationException("Unable to find mountrootdisk.sh");
- }
- s_logger.info("mountrootdisk.sh found in " + _mountRootdiskPath);
-
- return true;
- }
-
- @Override
- public String getName() {
- return _name;
- }
-
- @Override
- public boolean start() {
- return true;
- }
-
- @Override
- public boolean stop() {
- return true;
- }
-}
diff --git a/core/src/com/cloud/storage/FileSystemStorageResource.java b/core/src/com/cloud/storage/FileSystemStorageResource.java
deleted file mode 100644
index 72f180935bb..00000000000
--- a/core/src/com/cloud/storage/FileSystemStorageResource.java
+++ /dev/null
@@ -1,583 +0,0 @@
-/**
- * Copyright (C) 2010 Cloud.com, Inc. All rights reserved.
- *
- * This software is licensed under the GNU General Public License v3 or later.
- *
- * It is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- *
- */
-package com.cloud.storage;
-
-import java.io.File;
-import java.net.InetAddress;
-import java.net.URISyntaxException;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.ModifyStoragePoolAnswer;
-import com.cloud.agent.api.ModifyStoragePoolCommand;
-import com.cloud.agent.api.StartupCommand;
-import com.cloud.agent.api.StartupStorageCommand;
-import com.cloud.agent.api.StoragePoolInfo;
-import com.cloud.agent.api.storage.CreatePrivateTemplateAnswer;
-import com.cloud.agent.api.storage.CreatePrivateTemplateCommand;
-import com.cloud.agent.api.storage.DestroyCommand;
-import com.cloud.agent.api.storage.UpgradeDiskAnswer;
-import com.cloud.agent.api.storage.UpgradeDiskCommand;
-import com.cloud.agent.api.to.VolumeTO;
-import com.cloud.storage.Storage.StoragePoolType;
-import com.cloud.storage.Storage.StorageResourceType;
-import com.cloud.storage.template.TemplateInfo;
-import com.cloud.utils.exception.CloudRuntimeException;
-import com.cloud.utils.net.NfsUtils;
-import com.cloud.utils.script.OutputInterpreter;
-import com.cloud.utils.script.Script;
-
-public abstract class FileSystemStorageResource extends StorageResource {
- protected static final Logger s_logger = Logger.getLogger(FileSystemStorageResource.class);
- protected String _templateRootDir;
- protected String _poolName;
- protected String _poolUuid;
- protected String _localStoragePath;
-
- @Override
- public boolean existPath(String path) {
- if (path == null) {
- return false;
- }
- final Script cmd = new Script("ls", _timeout, s_logger);
- cmd.add(File.separator + path);
-
- final String result = cmd.execute();
- if (result == null) {
- return true;
- }
-
- if (result == Script.ERR_TIMEOUT) {
- throw new CloudRuntimeException("Script timed out");
- }
-
- return !result.contains("No such file or directory");
- }
-
- @Override
- public String createPath(final String createPath) {
- final Script cmd = new Script("mkdir", _timeout, s_logger);
- cmd.add("-p", File.separator + createPath);
-
- return cmd.execute();
- }
-
- @Override
- protected void fillNetworkInformation(StartupCommand cmd) {
- super.fillNetworkInformation(cmd);
- cmd.setIqn(null);
- }
-
-
-
- @Override
- protected long getUsedSize() {
- return getUsedSize(_rootDir);
- }
-
-
- protected long getUsedSize(String poolPath) {
- poolPath = getPoolPath(poolPath);
- if (poolPath == null) {
- return 0;
- }
- Script command = new Script("/bin/bash", _timeout, s_logger);
- command.add("-c");
- command.add("df -Ph " + poolPath + " | grep -v Used | awk '{print $3}' ");
-
- final OutputInterpreter.OneLineParser parser = new OutputInterpreter.OneLineParser();
- if (command.execute(parser) != null) {
- return -1;
- }
- return convertFilesystemSize(parser.getLine());
- }
-
- private String getPoolPath(String poolPath) {
- if (!existPath(poolPath)) {
- poolPath = File.separator + poolPath;
- if (!existPath(poolPath))
- return null;
- }
- return poolPath;
- }
-
- protected long getTotalSize(String poolPath) {
- poolPath = getPoolPath(poolPath);
- if (poolPath == null) {
- return 0;
- }
- Script command = new Script("/bin/bash", _timeout, s_logger);
- command.add("-c");
- command.add("df -Ph " + poolPath + " | grep -v Size | awk '{print $2}' ");
-
- final OutputInterpreter.OneLineParser parser = new OutputInterpreter.OneLineParser();
- if (command.execute(parser) != null) {
- return -1;
- }
- return convertFilesystemSize(parser.getLine());
- }
-
- @Override
- protected long getTotalSize() {
- return getTotalSize(_rootDir);
- }
-
- @Override
- protected String createTrashDir(String imagePath, StringBuilder path) {
- final int index = imagePath.lastIndexOf(File.separator) + File.separator.length();
- path.append(_trashcanDir);
- path.append(imagePath.substring(_parent.length(), index));
- path.append(Long.toHexString(System.currentTimeMillis()));
-
- final Script cmd = new Script("mkdir", _timeout, s_logger);
- cmd.add("-p", path.toString());
-
- final String result = cmd.execute();
- if (result != null) {
- return result;
- }
-
- path.append(File.separator).append(imagePath.substring(index));
- return null;
- }
-
- @Override
- protected String destroy(String imagePath) {
- final StringBuilder trashPath = new StringBuilder();
- String result = createTrashDir(imagePath, trashPath);
- if (result != null) {
- return result;
- }
-
- final Script cmd = new Script("mv", _timeout, s_logger);
- cmd.add(imagePath);
- cmd.add(trashPath.toString());
- result = cmd.execute();
- if (result != null) {
- return result;
- }
-
- s_logger.warn("Path " + imagePath + " has been moved to " + trashPath.toString());
-
- cleanUpEmptyParents(imagePath);
- return null;
- }
-
- @Override
- protected void cleanUpEmptyParents(String imagePath) {
- imagePath = imagePath.substring(0, imagePath.lastIndexOf(File.separator));
- String destroyPath = null;
- while (imagePath.length() > _parent.length() && !hasChildren(imagePath)) {
- destroyPath = imagePath;
- imagePath = imagePath.substring(0, imagePath.lastIndexOf(File.separator));
- }
-
- if (destroyPath != null) {
- final Script cmd = new Script("rm", _timeout, s_logger);
- cmd.add("-rf", destroyPath);
- cmd.execute();
- }
- }
-
- @Override
- protected Answer execute(DestroyCommand cmd) {
- VolumeTO volume = cmd.getVolume();
- String result = null;
-
- result = delete(volume.getPath());
- return new Answer(cmd, result == null, result);
- }
-
- private String delete(String image) {
- final Script cmd = new Script(_delvmPath, _timeout, s_logger);
- cmd.add("-i", image);
-
-
- final String result = cmd.execute();
- if (result != null) {
- return result;
- }
-
- //cleanUpEmptyParents(image);
- return null;
- }
-
-
- @Override
- protected String delete(String imagePath, String extra) {
- return delete (imagePath);
- }
-
- protected boolean isSharedNetworkFileSystem(String path) {
- if (path.endsWith("/")) {
- path = path.substring(0, path.length()-1);
- }
- Script command = new Script("/bin/bash", _timeout, s_logger);
- command.add("-c");
- command.add("mount -t nfs | grep nfs | awk '{print $3}' | grep -x " + path);
-
- OutputInterpreter.OneLineParser parser = new OutputInterpreter.OneLineParser();
- if (command.execute(parser) != null || parser.getLine() == null) { //not NFS client
- command = new Script("/bin/bash", _timeout, s_logger);
- command.add("-c");
- command.add("grep " + _rootDir + " /etc/exports");
- parser = new OutputInterpreter.OneLineParser();
- if (command.execute(parser) == null && parser.getLine() != null) {
- return true;
- }
- } else if (parser.getLine() != null) {
- return true;
- }
- return false;
- }
-
-
- private List getNfsMounts(String path) {
- if (path != null && path.endsWith("/")) {
- path = path.substring(0, path.length()-1);
- }
- Script command = new Script("/bin/bash", _timeout, s_logger);
- command.add("-c");
- if (path != null) {
- command.add("cat /proc/mounts | grep nfs | grep " + path );
- } else {
- command.add("cat /proc/mounts | grep nfs | grep -v rpc_pipefs ");
- }
-
- OutputInterpreter.AllLinesParser parser = new OutputInterpreter.AllLinesParser();
- if (command.execute(parser) != null || parser.getLines() == null) { //not NFS client
- return null;
- } else {
- List result = new ArrayList();
- String[] lines = parser.getLines().split("\\n");
-
- for (String line: lines){
- String [] toks = line.split(" ");
- if ( toks.length < 4) {
- continue;
- }
- String [] hostpart = toks[0].split(":");
- if (hostpart.length != 2) {
- continue;
- }
- String localPath = toks[1];
- result.add(new String [] {hostpart[0], hostpart[1], localPath});
-
- }
- return result;
- }
- }
-
- public List getNetworkFileSystemServer(String path) {
- return getNfsMounts(path);
- }
-
- @Override
- protected String create( String templatePath, final String rootdiskFolder, final String userPath, final String datadiskFolder, final String datadiskName, final int datadiskSize, String localPath) {
-
- s_logger.debug("Creating volumes by cloning " + templatePath);
- final Script command = new Script(_createvmPath, _timeout, s_logger);
-
- command.add("-t", templatePath);
- command.add("-i", rootdiskFolder);
- command.add("-u", userPath);
- if (datadiskSize != 0) {
- command.add("-f", datadiskFolder);
- command.add("-s", Integer.toString(datadiskSize));
- command.add("-n", datadiskName);
- }
-
- return command.execute();
- }
-
- @Override
- protected UpgradeDiskAnswer execute(UpgradeDiskCommand cmd) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public StartupCommand []initialize() {
- StartupCommand [] cmds = super.initialize();
- StartupStorageCommand cmd = (StartupStorageCommand)cmds[0];
-
- initLocalStorage(cmd);
- cmd.setTemplateInfo(new HashMap()); //empty template info
-
- return new StartupCommand[] {cmd};
- }
-
- @Override
- protected Storage.StorageResourceType getStorageResourceType() {
- return Storage.StorageResourceType.STORAGE_POOL;
- }
-
- protected String mountNfs(String hostAddress, String hostPath, String localPath) {
- final OutputInterpreter.OneLineParser parser = new OutputInterpreter.OneLineParser();
- Script command = new Script("/bin/bash", _timeout, s_logger);
- command.add("-c");
- command.add("mount -t nfs -o acdirmax=0,acdirmin=0 " + hostAddress + ":" + hostPath + " " + localPath);
- String result = command.execute(parser);
- return result;
- }
-
- protected String umountNfs(String localPath) {
- Script command = new Script("/bin/bash", _timeout, s_logger);
- command.add("-c");
- command.add("umount " + localPath);
- String result = command.execute();
- return result;
- }
-
- protected void initLocalStorage(StartupStorageCommand cmd) {
- if (!existPath(_localStoragePath)) {
- createPath(_localStoragePath);
- }
- //setPoolPath(_localStoragePath);
- long capacity = getTotalSize(_localStoragePath);
- long used = getUsedSize(_localStoragePath);
- StoragePoolInfo poolInfo = new StoragePoolInfo( "Local Storage", "file://" + cmd.getPrivateIpAddress() + "/" + _localStoragePath, "localhost", _localStoragePath, _localStoragePath, StoragePoolType.Filesystem, capacity, capacity - used);
- cmd.setPoolInfo(poolInfo);
- }
-
-
- private Answer setFSStoragePool(ModifyStoragePoolCommand cmd) {
- StoragePoolVO pool = cmd.getPool();
- String localPath = pool.getPath();
- File localStorage = new File(localPath);
- if (!localStorage.exists()) {
- localStorage.mkdir();
- }
- /*String result = setPoolPath(localPath);
- if (result != null) {
- return new Answer(cmd, false, " Failed to create folders");
- }*/
- if (_instance != null) {
- localPath = localPath + File.separator + _instance;
- }
- _poolName = pool.getName();
- long capacity = getTotalSize(localPath);
- long used = getUsedSize(localPath);
- long available = capacity - used;
- Map tInfo = new HashMap();
- ModifyStoragePoolAnswer answer = new ModifyStoragePoolAnswer(cmd, capacity, available, tInfo);
- return answer;
- }
-
- @Override
- protected Answer execute(ModifyStoragePoolCommand cmd) {
- StoragePoolVO pool = cmd.getPool();
- if (pool.getPoolType() == StoragePoolType.Filesystem) {
- return setFSStoragePool(cmd);
- }
- if (cmd.getAdd()) {
- String result;
- String hostPath = pool.getPath();
- String hostPath2 = pool.getPath();
- if (hostPath.endsWith("/")) {
- hostPath2 = hostPath.substring(0, hostPath.length()-1);
- }
- String localPath = cmd.getLocalPath();
- boolean alreadyMounted = false;
-
- List shareInfo = getNfsMounts(null);
- if (shareInfo != null) {
- for (String [] share: shareInfo){
- String host = share[0];
- String path = share[1];
- String path2 = path;
- if (path.endsWith("/")) {
- path2 = path.substring(0, path.length()-1);
- }
- if (!path.equals(hostPath) && !path2.equals(hostPath2)){
- continue;
- }
- if (host.equalsIgnoreCase(pool.getHostAddress())){
- alreadyMounted = true;
- localPath = share[2];
- result = null;
- break;
- } else {
- try {
- InetAddress currAddr = InetAddress.getByName(host);
- InetAddress hostAddr = InetAddress.getByName(pool.getHostAddress());
- if (currAddr.equals(hostAddr)){
- alreadyMounted = true;
- result = null;
- localPath = share[2];
- break;
- }
- } catch (UnknownHostException e) {
- continue;
- }
- }
- }
- }
-
- String localPath2 = localPath;
- if (localPath.endsWith("/")){
- localPath2 = localPath.substring(0,localPath.length()-1);
- }
-
- if (!alreadyMounted){
- Script mkdir = new Script("/bin/bash", _timeout, s_logger);
- mkdir.add("-c");
- mkdir.add("mkdir -p " + localPath);
- final OutputInterpreter.OneLineParser parser = new OutputInterpreter.OneLineParser();
- result = mkdir.execute(parser);
-
- if (result != null) {
- return new Answer(cmd, false, "Failed to create local path: " + result);
- }
- result = mountNfs(pool.getHostAddress(), pool.getPath(), localPath);
- if (result != null) {
- return new Answer(cmd, false, " Failed to mount: " + result);
- }
- }
-
- /*result = setPoolPath(localPath);
- if (result != null) {
- return new Answer(cmd, false, " Failed to create folders");
- }*/
-
-
- if (_instance != null) {
- localPath = localPath + File.separator + _instance;
- }
- _poolName =pool.getName();
- _poolUuid = pool.getUuid();
- long capacity = getTotalSize(localPath);
- long used = getUsedSize(localPath);
- long available = capacity - used;
- Map tInfo = new HashMap();
- ModifyStoragePoolAnswer answer = new ModifyStoragePoolAnswer(cmd, capacity, available, tInfo);
- return answer;
- } else {
- Script command = new Script("/bin/bash", _timeout, s_logger);
- command.add("-c");
- command.add("umount " + cmd.getLocalPath());
- final OutputInterpreter.OneLineParser parser = new OutputInterpreter.OneLineParser();
- String result = command.execute(parser);
- if (result != null) {
- return new Answer(cmd, false, " Failed to unmount: " + result);
- }
- return new Answer(cmd);
- }
- }
-
- @Override
- protected String create(String templateFolder, String rootdiskFolder, String userPath, String dataPath, String localPath) {
-
- s_logger.debug("Creating volumes");
- final Script command = new Script(_createvmPath, _timeout, s_logger);
-
- command.add("-t", templateFolder);
- command.add("-i", rootdiskFolder);
- command.add("-u", userPath);
-
-
- return command.execute();
- }
-
-
-
- protected String mountSecondaryStorage(String tmplMpt, String templatePath, String hostMpt) {
- String mountStr = null;
- try {
- mountStr = NfsUtils.url2Mount(tmplMpt);
- } catch (URISyntaxException e) {
- s_logger.debug("Is not a valid url" + tmplMpt);
- return null;
- }
- String []tok = mountStr.split(":");
- /*Mount already?*/
- if (!isNfsMounted(tok[0], tok[1], hostMpt)) {
- mountNfs(tok[0], tok[1], hostMpt);
- }
- if (!templatePath.startsWith("/"))
- templatePath = hostMpt + "/" + templatePath;
- else
- templatePath = hostMpt + templatePath;
-
- return templatePath;
- }
-
- protected boolean isNfsMounted(final String remoteHost, final String remotePath, final String mountPath) {
- boolean alreadyMounted = false;
- List shareInfo = getNfsMounts(null);
- if (shareInfo != null) {
- for (String [] share: shareInfo){
- String host = share[0];
- String path = share[1];
- String path2 = path;
- String localPath = share[2];
- String localPath2 = localPath;
-
- if (path.endsWith("/")) {
- path2 = path.substring(0, path.length()-1);
- }
- if (localPath.endsWith("/")) {
- localPath2 = localPath.substring(0, localPath.length() -1);
- }
- if ((!path.equals(remotePath) && !path2.equals(remotePath)) || (!localPath.equals(mountPath) && !localPath2.equals(mountPath)) ){
- continue;
- }
-
- if (host.equalsIgnoreCase(remoteHost)){
- alreadyMounted = true;
- break;
- } else {
- try {
- InetAddress currAddr = InetAddress.getByName(host);
- InetAddress hostAddr = InetAddress.getByName(remoteHost);
- if (currAddr.equals(hostAddr)){
- alreadyMounted = true;
- break;
- }
- } catch (UnknownHostException e) {
- continue;
- }
- }
- }
- }
- return alreadyMounted;
- }
-
- @Override
- protected String getDefaultScriptsDir() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- protected CreatePrivateTemplateAnswer execute(CreatePrivateTemplateCommand cmd) {
- CreatePrivateTemplateAnswer answer = super.execute(cmd);
- answer.setPath(answer.getPath().replaceFirst(_rootDir, ""));
- answer.setPath(answer.getPath().replaceFirst("^/*", "/"));
- return answer;
- }
-
-
-
-}
diff --git a/core/src/com/cloud/storage/StorageResource.java b/core/src/com/cloud/storage/StorageResource.java
deleted file mode 100755
index d63883be1b7..00000000000
--- a/core/src/com/cloud/storage/StorageResource.java
+++ /dev/null
@@ -1,600 +0,0 @@
-/**
- * Copyright (C) 2010 Cloud.com, Inc. All rights reserved.
- *
- * This software is licensed under the GNU General Public License v3 or later.
- *
- * It is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- *
- */
-package com.cloud.storage;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.naming.ConfigurationException;
-
-import org.apache.log4j.Logger;
-
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.BackupSnapshotAnswer;
-import com.cloud.agent.api.BackupSnapshotCommand;
-import com.cloud.agent.api.Command;
-import com.cloud.agent.api.GetFileStatsAnswer;
-import com.cloud.agent.api.GetFileStatsCommand;
-import com.cloud.agent.api.GetStorageStatsAnswer;
-import com.cloud.agent.api.GetStorageStatsCommand;
-import com.cloud.agent.api.ManageSnapshotAnswer;
-import com.cloud.agent.api.ManageSnapshotCommand;
-import com.cloud.agent.api.ModifyStoragePoolCommand;
-import com.cloud.agent.api.PingCommand;
-import com.cloud.agent.api.PingStorageCommand;
-import com.cloud.agent.api.StartupCommand;
-import com.cloud.agent.api.StartupStorageCommand;
-import com.cloud.agent.api.storage.CreatePrivateTemplateAnswer;
-import com.cloud.agent.api.storage.CreatePrivateTemplateCommand;
-import com.cloud.agent.api.storage.DestroyCommand;
-import com.cloud.agent.api.storage.DownloadCommand;
-import com.cloud.agent.api.storage.PrimaryStorageDownloadCommand;
-import com.cloud.agent.api.storage.ShareAnswer;
-import com.cloud.agent.api.storage.ShareCommand;
-import com.cloud.agent.api.storage.UpgradeDiskAnswer;
-import com.cloud.agent.api.storage.UpgradeDiskCommand;
-import com.cloud.agent.api.storage.UploadCommand;
-import com.cloud.host.Host;
-import com.cloud.resource.ServerResource;
-import com.cloud.resource.ServerResourceBase;
-import com.cloud.storage.Storage.StoragePoolType;
-import com.cloud.storage.template.DownloadManager;
-import com.cloud.storage.template.TemplateInfo;
-import com.cloud.storage.template.UploadManager;
-import com.cloud.utils.NumbersUtil;
-import com.cloud.utils.exception.CloudRuntimeException;
-import com.cloud.utils.script.OutputInterpreter;
-import com.cloud.utils.script.Script;
-
-/**
- * StorageResource represents the storage server. It executes commands
- * against the storage server.
- *
- * @config
- * {@table
- * || Param Name | Description | Values | Default ||
- * || pool | name of the pool to use | String | tank ||
- * || parent | parent path to all of the templates and the trashcan | Path | [pool]/vmops ||
- * || scripts.dir | directory to the scripts | Path | ./scripts ||
- * || scripts.timeout | timeout value to use when executing scripts | seconds | 120s ||
- * || public.templates.root.dir | directory where public templates reside | Path | [pool]/volumes/demo/template/public/os ||
- * || private.templates.root.dir | directory where private templates reside | Path | [pool]/volumes/template/demo/private ||
- * || templates.download.dir | directory where templates are downloaded prior to being installed | Path | [pool]/volumes/demo/template/download ||
- * || install.timeout.pergig | timeout for the template creation script per downloaded gigabyte | seconds | 900s ||
- * || install.numthreads | number of concurrent install threads | number | 3 ||
- * }
- */
-public abstract class StorageResource extends ServerResourceBase implements ServerResource {
- protected static final Logger s_logger = Logger.getLogger(StorageResource.class);
- protected String _createvmPath;
- protected String _listvmdiskPath;
- protected String _listvmdisksizePath;
- protected String _delvmPath;
- protected String _manageSnapshotPath;
- protected String _manageVolumePath;
- protected String _createPrivateTemplatePath;
- protected String _guid;
- protected String _rootDir;
- protected String _rootFolder = "vmops";
- protected String _parent;
- protected String _trashcanDir;
- protected String _vmFolder;
- protected String _trashcanFolder;
- protected String _datadisksFolder;
- protected String _datadisksDir;
- protected String _sharePath;
- protected String _infoPath;
- protected int _timeout;
-
- protected String _iqnPath;
-
- protected String _checkchildrenPath;
- protected String _userPrivateTemplateRootDir;
-
- protected String _zfsScriptsDir;
-
- protected DownloadManager _downloadManager;
- protected UploadManager _uploadManager;
-
- protected Map _volumeHourlySnapshotRequests = new HashMap();
- protected Map _volumeDailySnapshotRequests = new HashMap();
- protected String _instance;
-
- @Override
- public Answer executeRequest(final Command cmd) {
- if (cmd instanceof DestroyCommand) {
- return execute((DestroyCommand)cmd);
- } else if (cmd instanceof GetFileStatsCommand) {
- return execute((GetFileStatsCommand)cmd);
- } else if (cmd instanceof PrimaryStorageDownloadCommand) {
- return execute((PrimaryStorageDownloadCommand)cmd);
- } else if (cmd instanceof DownloadCommand) {
- return execute((DownloadCommand)cmd);
- }else if (cmd instanceof UploadCommand) {
- return execute((UploadCommand)cmd);
- } else if (cmd instanceof GetStorageStatsCommand) {
- return execute((GetStorageStatsCommand)cmd);
- } else if (cmd instanceof UpgradeDiskCommand) {
- return execute((UpgradeDiskCommand) cmd);
- } else if (cmd instanceof ShareCommand) {
- return execute((ShareCommand)cmd);
- } else if (cmd instanceof ManageSnapshotCommand) {
- return execute((ManageSnapshotCommand)cmd);
- } else if (cmd instanceof BackupSnapshotCommand) {
- return execute((BackupSnapshotCommand)cmd);
- } else if (cmd instanceof CreatePrivateTemplateCommand) {
- return execute((CreatePrivateTemplateCommand)cmd);
- } else if (cmd instanceof ModifyStoragePoolCommand ){
- return execute ((ModifyStoragePoolCommand) cmd);
- } else {
- s_logger.warn("StorageResource: Unsupported command");
- return Answer.createUnsupportedCommandAnswer(cmd);
- }
- }
-
- protected Answer execute(ModifyStoragePoolCommand cmd) {
- s_logger.warn("Unsupported: network file system mount attempted");
- return Answer.createUnsupportedCommandAnswer(cmd);
- }
-
- protected ShareAnswer execute(final ShareCommand cmd) {
- return new ShareAnswer(cmd, new HashMap());
- }
-
- protected Answer execute(final PrimaryStorageDownloadCommand cmd) {
- return Answer.createUnsupportedCommandAnswer(cmd);
- }
-
- private Answer execute(UploadCommand cmd) {
- return _uploadManager.handleUploadCommand(cmd);
- }
-
- protected Answer execute(final DownloadCommand cmd) {
- return _downloadManager.handleDownloadCommand(cmd);
- }
-
- public String getSecondaryStorageMountPoint(String uri) {
- return null;
- }
-
- protected String getUserPath(final String image) {
- return image.substring(0, image.indexOf(File.separator, _parent.length() + 2)).intern();
- }
-
-
- protected Answer execute(final GetFileStatsCommand cmd) {
- final String image = cmd.getPaths();
- final Script command = new Script(_listvmdisksizePath, _timeout, s_logger);
- command.add("-d", image);
- command.add("-a");
-
- final SizeParser parser = new SizeParser();
- final String result = command.execute(parser);
- if (result != null) {
- return new Answer(cmd, false, result);
- }
-
- return new GetFileStatsAnswer(cmd, parser.size);
- }
-
- protected List getVolumes(final String rootdiskFolder, final String datadiskFolder, final String datadiskName) {
- final ArrayList vols = new ArrayList();
-
- // Get the rootdisk volume
- String path = rootdiskFolder + File.separator + "rootdisk";
- long totalSize = getVolumeSize(path);
-
- VolumeVO vol = new VolumeVO(null, -1, -1, -1, -1, new Long(-1), rootdiskFolder, path, totalSize, Volume.VolumeType.ROOT);
- vols.add(vol);
-
- // Get the datadisk volume
- if (datadiskFolder != null && datadiskName != null) {
- path = datadiskFolder + File.separator + datadiskName;
- totalSize = getVolumeSize(path);
-
- vol = new VolumeVO(null, -1, -1, -1, -1, new Long(-1), datadiskFolder, path, totalSize, Volume.VolumeType.DATADISK);
- vols.add(vol);
- }
-
- return vols;
- }
-
- protected List getVolumes(final String imagePath) {
- final ArrayList vols = new ArrayList();
-
- String path = getVolumeName(imagePath, null);
- long totalSize = getVolumeSize(path);
-
- VolumeVO vol = new VolumeVO(null, -1, -1, -1, -1, new Long(-1), null, path, totalSize, Volume.VolumeType.ROOT);
-
- vols.add(vol);
-
- path = getVolumeName(imagePath, (long)1);
- if (path != null) {
- totalSize = getVolumeSize(path);
-
-
- vol = new VolumeVO(null, -1, -1, -1, -1, new Long(-1), null, path, totalSize, Volume.VolumeType.DATADISK);
- vols.add(vol);
- }
-
- return vols;
- }
-
- protected long getVolumeSize(final String volume) {
- final Script command = new Script(_listvmdisksizePath, _timeout, s_logger);
-
- command.add("-d", volume);
- command.add("-t");
-
- final SizeParser parser = new SizeParser();
- final String result = command.execute(parser);
- if (result != null) {
- throw new CloudRuntimeException(result);
- }
- return parser.size;
- }
-
- protected String getVolumeName(final String imagePath, final Long diskNum) {
-
- final Script command = new Script(_listvmdiskPath, _timeout, s_logger);
- command.add("-i", imagePath);
- if (diskNum == null) {
- command.add("-r");
- } else {
- command.add("-d", diskNum.toString());
- }
-
- final PathParser parser = new PathParser();
- final String result = command.execute(parser);
- if (result != null) {
- throw new CloudRuntimeException("Can't get volume name due to " + result);
- }
-
- return parser.path;
- }
-
-
- protected long convertFilesystemSize(final String size) {
- if (size == null) {
- return -1;
- }
-
- long multiplier = 1;
- if (size.endsWith("T")) {
- multiplier = 1024l * 1024l * 1024l * 1024l;
- } else if (size.endsWith("G")) {
- multiplier = 1024l * 1024l * 1024l;
- } else if (size.endsWith("M")) {
- multiplier = 1024l * 1024l;
- } else if (size.endsWith("K")){
- multiplier = 1024l;
- } else {
- long num;
- try {
- num = Long.parseLong(size);
- } catch (NumberFormatException e) {
- s_logger.debug("Unknow size:" + size);
- return 0;
- }
- return num;
- }
-
- return (long)(Double.parseDouble(size.substring(0, size.length() - 1)) * multiplier);
- }
-
- protected abstract void cleanUpEmptyParents(String imagePath);
- protected abstract long getUsedSize() ;
- protected abstract long getTotalSize();
- protected abstract String destroy(final String imagePath) ;
- protected abstract String createTrashDir(final String imagePath, final StringBuilder path) ;
- public abstract boolean existPath(final String path);
- public abstract String createPath(final String createPath) ;
- protected abstract Answer execute(DestroyCommand cmd) ;
- protected abstract UpgradeDiskAnswer execute(final UpgradeDiskCommand cmd);
- protected abstract String delete(String imagePath, String extra);
- protected abstract Storage.StorageResourceType getStorageResourceType();
- protected abstract void configureFolders(String name, Map params) throws ConfigurationException ;
-
-
-
- protected GetStorageStatsAnswer execute(final GetStorageStatsCommand cmd) {
- final long size = getUsedSize();
- return size != -1 ? new GetStorageStatsAnswer(cmd, 0, size) : new GetStorageStatsAnswer(cmd, "Unable to get storage stats");
- }
-
-
-
- protected ManageSnapshotAnswer execute(final ManageSnapshotCommand cmd) {
- final Script command = new Script(_manageSnapshotPath, _timeout, s_logger);
- String path = null;
- if (cmd.getCommandSwitch().equalsIgnoreCase(ManageSnapshotCommand.DESTROY_SNAPSHOT)) {
- path = cmd.getSnapshotPath();
- } else if (cmd.getCommandSwitch().equalsIgnoreCase(ManageSnapshotCommand.CREATE_SNAPSHOT)) {
- path = cmd.getVolumePath();
- }
- command.add(cmd.getCommandSwitch(), path);
- command.add("-n", cmd.getSnapshotName());
-
- final String result = command.execute();
- return new ManageSnapshotAnswer(cmd, cmd.getSnapshotId(),cmd.getVolumePath(), (result == null), result);
- }
-
- protected BackupSnapshotAnswer execute(final BackupSnapshotCommand cmd) {
- // This is implemented only for XenServerResource
- Answer answer = Answer.createUnsupportedCommandAnswer(cmd);
- return new BackupSnapshotAnswer(cmd, false, answer.getDetails(), null);
- }
-
- protected CreatePrivateTemplateAnswer execute(final CreatePrivateTemplateCommand cmd) {
- final Script command = new Script(_createPrivateTemplatePath, _timeout, s_logger);
-
- String installDir = _userPrivateTemplateRootDir;
- if (installDir.startsWith("/")) {
- installDir = installDir.substring(1);
- }
-
- command.add("-p", cmd.getSnapshotPath());
- command.add("-s", cmd.getTemplateName());
- command.add("-d", installDir);
- command.add("-u", cmd.getUserFolder());
- String templateName = cmd.getTemplateName().replaceAll(" ", "_"); //hard to pass spaces to shell scripts
- if (templateName.length() > 32) {
- templateName = templateName.substring(0,31); //truncate
- }
- command.add("-n", templateName);
-
- final String result = command.execute();
- CreatePrivateTemplateAnswer answer = new CreatePrivateTemplateAnswer(cmd, (result == null), result, null, 0, null, null);
-
- if (result == null) {
- answer.setPath("/" + installDir + "/" + cmd.getUserFolder() + "/" + templateName);
- }
-
- return answer;
- }
-
- protected String create(final String rootdiskFolder, final int rootDiskSizeGB) {
-
- final Script command = new Script(_createvmPath, _timeout, s_logger);
- command.add("-i", rootdiskFolder);
- command.add("-S", Integer.toString(rootDiskSizeGB));
-
- return command.execute();
- }
-
- protected String create(final String templateFolder, final String rootdiskFolder, final String userPath, final String dataPath, String localPath) {
-
- final Script command = new Script(_createvmPath, _timeout, s_logger);
- command.add("-t", templateFolder);
- command.add("-i", rootdiskFolder);
- command.add("-u", userPath);
- if (dataPath != null) {
- command.add("-d", dataPath);
- }
-
- return command.execute();
- }
-
- protected String create(final String templateFolder, final String rootdiskFolder, final String userPath, final String datadiskFolder, final String datadiskName, final int datadiskSize, String localPath) {
-
- final Script command = new Script(_createvmPath, _timeout, s_logger);
-
- // for private templates, the script needs the snapshot name being used to create the VM
- command.add("-t", templateFolder);
- command.add("-i", rootdiskFolder);
- command.add("-u", userPath);
- if (datadiskSize != 0) {
- command.add("-f", datadiskFolder);
- command.add("-s", Integer.toString(datadiskSize));
- command.add("-n", datadiskName);
- }
-
- return command.execute();
- }
-
- @Override
- public PingCommand getCurrentStatus(final long id) {
- return new PingStorageCommand(Host.Type.Storage, id, new HashMap());
- }
-
- @Override
- public StartupCommand[] initialize() {
- final StartupStorageCommand cmd = new StartupStorageCommand(_parent, StoragePoolType.NetworkFilesystem, getTotalSize(), new HashMap());
- cmd.setResourceType(getStorageResourceType());
- cmd.setIqn(getIQN());
- fillNetworkInformation(cmd);
- return new StartupCommand [] {cmd};
- }
-
- protected String getIQN() {
- final Script command = new Script(_iqnPath, 500, s_logger);
- final OutputInterpreter.OneLineParser parser = new OutputInterpreter.OneLineParser();
- final String result = command.execute(parser);
- if (result != null) {
- throw new CloudRuntimeException("Unable to get iqn: " + result);
- }
-
- return parser.getLine();
- }
-
- @Override
- protected String findScript(String script) {
- return Script.findScript(_zfsScriptsDir, script);
- }
-
- @Override
- protected abstract String getDefaultScriptsDir();
-
- @Override
- public boolean configure(final String name, final Map params) throws ConfigurationException {
- if (!super.configure(name, params)) {
- s_logger.warn("Base class was unable to configure");
- return false;
- }
-
- _zfsScriptsDir = (String)params.get("zfs.scripts.dir");
- if (_zfsScriptsDir == null) {
- _zfsScriptsDir = getDefaultScriptsDir();
- }
-
- String value = (String)params.get("scripts.timeout");
- _timeout = NumbersUtil.parseInt(value, 1440) * 1000;
-
- _createvmPath = findScript("createvm.sh");
- if (_createvmPath == null) {
- throw new ConfigurationException("Unable to find the createvm.sh");
- }
- s_logger.info("createvm.sh found in " + _createvmPath);
-
- _delvmPath = findScript("delvm.sh");
- if (_delvmPath == null) {
- throw new ConfigurationException("Unable to find the delvm.sh");
- }
- s_logger.info("delvm.sh found in " + _delvmPath);
-
- _listvmdiskPath = findScript("listvmdisk.sh");
- if (_listvmdiskPath == null) {
- throw new ConfigurationException("Unable to find the listvmdisk.sh");
- }
- s_logger.info("listvmdisk.sh found in " + _listvmdiskPath);
-
- _listvmdisksizePath = findScript("listvmdisksize.sh");
- if (_listvmdisksizePath == null) {
- throw new ConfigurationException("Unable to find the listvmdisksize.sh");
- }
- s_logger.info("listvmdisksize.sh found in " + _listvmdisksizePath);
-
- _iqnPath = findScript("get_iqn.sh");
- if (_iqnPath == null) {
- throw new ConfigurationException("Unable to find get_iqn.sh");
- }
- s_logger.info("get_iqn.sh found in " + _iqnPath);
-
- _manageSnapshotPath = findScript("managesnapshot.sh");
- if (_manageSnapshotPath == null) {
- throw new ConfigurationException("Unable to find the managesnapshot.sh");
- }
- s_logger.info("managesnapshot.sh found in " + _manageSnapshotPath);
-
- _manageVolumePath = findScript("managevolume.sh");
- if (_manageVolumePath == null) {
- throw new ConfigurationException("Unable to find managevolume.sh");
- }
- s_logger.info("managevolume.sh found in " + _manageVolumePath);
-
- _createPrivateTemplatePath = findScript("create_private_template.sh");
- if (_createPrivateTemplatePath == null) {
- throw new ConfigurationException("Unable to find the create_private_template.sh");
- }
- s_logger.info("create_private_template.sh found in " + _createPrivateTemplatePath);
-
- _checkchildrenPath = findScript("checkchildren.sh");
- if (_checkchildrenPath == null) {
- throw new ConfigurationException("Unable to find the checkchildren.sh");
- }
-
- value = (String)params.get("developer");
- boolean isDeveloper = Boolean.parseBoolean(value);
-
- _instance = (String)params.get("instance");
- /*
- String guid = (String)params.get("guid");
- if (!isDeveloper && guid == null) {
- throw new ConfigurationException("Unable to find the guid");
- }
- _guid = guid;*/
- /*
- params.put("template.parent", _parent);
- _downloadManager = new DownloadManagerImpl();
- _downloadManager.configure("DownloadManager", params);*/
-
- return true;
- }
-
- @Override
- public Host.Type getType() {
- return Host.Type.Storage;
- }
-
- protected boolean hasChildren(final String path) {
- final Script script = new Script(_checkchildrenPath, _timeout, s_logger);
- script.add(path);
-
- return script.execute() != null; // not null means there's children.
- }
-
-
- public static class SizeParser extends OutputInterpreter {
- long size = 0;
- @Override
- public String interpret(final BufferedReader reader) throws IOException {
- String line = null;
- final StringBuilder buff = new StringBuilder();
- while ((line = reader.readLine()) != null) {
- buff.append(line);
- }
-
- size = Long.parseLong(buff.toString());
-
- return null;
- }
- }
-
- public static class PathParser extends OutputInterpreter {
- String path;
- @Override
- public String interpret(final BufferedReader reader) throws IOException {
- String line = null;
- final StringBuilder buff = new StringBuilder();
- while ((line = reader.readLine()) != null) {
- buff.append(line);
- }
-
- path = buff.toString();
- if (path != null && path.length() == 0) {
- path = null;
- }
-
- return null;
- }
- }
-
- protected class VolumeSnapshotRequest {
- private final long _volumeId;
- private final String _snapshotPath;
-
- public VolumeSnapshotRequest(long volumeId, String snapshotPath) {
- _volumeId = volumeId;
- _snapshotPath = snapshotPath;
- }
-
- public long getVolumeId() {
- return _volumeId;
- }
-
- public String getSnapshotPath() {
- return _snapshotPath;
- }
- }
-}
diff --git a/core/src/com/cloud/storage/template/DownloadManager.java b/core/src/com/cloud/storage/template/DownloadManager.java
index aab5bc882fb..e3838f4f95c 100644
--- a/core/src/com/cloud/storage/template/DownloadManager.java
+++ b/core/src/com/cloud/storage/template/DownloadManager.java
@@ -22,7 +22,6 @@ import java.util.Map;
import com.cloud.agent.api.storage.DownloadAnswer;
import com.cloud.agent.api.storage.DownloadCommand;
-import com.cloud.storage.StorageResource;
import com.cloud.storage.VMTemplateHostVO;
import com.cloud.storage.Storage.ImageFormat;
import com.cloud.utils.component.Manager;
@@ -104,9 +103,7 @@ public interface DownloadManager extends Manager {
* @return list of template info for installed templates
*/
public Map gatherTemplateInfo();
-
- public String setRootDir(String rootDir, StorageResource storage);
-
+
public String getPublicTemplateRepo();
}
\ No newline at end of file
diff --git a/core/src/com/cloud/storage/template/DownloadManagerImpl.java b/core/src/com/cloud/storage/template/DownloadManagerImpl.java
index ef7ce156e83..5e78a53c071 100644
--- a/core/src/com/cloud/storage/template/DownloadManagerImpl.java
+++ b/core/src/com/cloud/storage/template/DownloadManagerImpl.java
@@ -46,7 +46,6 @@ import com.cloud.agent.api.storage.DownloadProgressCommand.RequestType;
import com.cloud.exception.InternalErrorException;
import com.cloud.storage.Storage.ImageFormat;
import com.cloud.storage.StorageLayer;
-import com.cloud.storage.StorageResource;
import com.cloud.storage.VMTemplateHostVO;
import com.cloud.storage.template.Processor.FormatInfo;
import com.cloud.storage.template.TemplateDownloader.DownloadCompleteCallback;
@@ -208,19 +207,6 @@ public class DownloadManagerImpl implements DownloadManager {
private int installTimeoutPerGig = 180 * 60 * 1000;
private boolean _sslCopy;
- @Override
- public String setRootDir(String rootDir, StorageResource storage) {
- /*
- * if (!storage.existPath(rootDir + templateDownloadDir)) { s_logger.info("Creating template download path: " +
- * rootDir + templateDownloadDir); String result = storage.createPath(rootDir + templateDownloadDir); if (result
- * != null) { return "Cannot create " + rootDir + templateDownloadDir + " due to " + result; } }
- * this.templateDownloadDir = rootDir + templateDownloadDir;
- */
- this.publicTemplateRepo = rootDir + publicTemplateRepo;
-
- return null;
- }
-
/**
* Get notified of change of job status. Executed in context of downloader thread
*
diff --git a/core/src/com/cloud/storage/template/UploadManager.java b/core/src/com/cloud/storage/template/UploadManager.java
index e0c14efddc9..f922326c7a4 100755
--- a/core/src/com/cloud/storage/template/UploadManager.java
+++ b/core/src/com/cloud/storage/template/UploadManager.java
@@ -6,7 +6,6 @@ import com.cloud.agent.api.storage.DeleteEntityDownloadURLAnswer;
import com.cloud.agent.api.storage.DeleteEntityDownloadURLCommand;
import com.cloud.agent.api.storage.UploadAnswer;
import com.cloud.agent.api.storage.UploadCommand;
-import com.cloud.storage.StorageResource;
import com.cloud.storage.Storage.ImageFormat;
import com.cloud.storage.Upload.Status;
import com.cloud.utils.component.Manager;
@@ -54,8 +53,6 @@ public interface UploadManager extends Manager {
* @return answer representing status of upload.
*/
public UploadAnswer handleUploadCommand(UploadCommand cmd);
-
- public String setRootDir(String rootDir, StorageResource storage);
public String getPublicTemplateRepo();
diff --git a/core/src/com/cloud/storage/template/UploadManagerImpl.java b/core/src/com/cloud/storage/template/UploadManagerImpl.java
index ea335a6ebae..fb2c53c5d5c 100755
--- a/core/src/com/cloud/storage/template/UploadManagerImpl.java
+++ b/core/src/com/cloud/storage/template/UploadManagerImpl.java
@@ -24,7 +24,6 @@ import com.cloud.agent.api.storage.UploadCommand;
import com.cloud.agent.api.storage.UploadProgressCommand;
import com.cloud.storage.Storage.ImageFormat;
import com.cloud.storage.StorageLayer;
-import com.cloud.storage.StorageResource;
import com.cloud.storage.Upload;
import com.cloud.storage.UploadVO;
import com.cloud.storage.template.TemplateUploader.Status;
@@ -403,12 +402,6 @@ public class UploadManagerImpl implements UploadManager {
return 0;
}
- @Override
- public String setRootDir(String rootDir, StorageResource storage) {
- this.publicTemplateRepo = rootDir + publicTemplateRepo;
- return null;
- }
-
@Override
public boolean configure(String name, Map params)
throws ConfigurationException {
diff --git a/scripts/storage/zfs/iscsi/comstar/createtmplt.sh b/scripts/storage/zfs/iscsi/comstar/createtmplt.sh
deleted file mode 100755
index e992b3f7291..00000000000
--- a/scripts/storage/zfs/iscsi/comstar/createtmplt.sh
+++ /dev/null
@@ -1,270 +0,0 @@
-#!/usr/bin/env bash
-# $Id: createtmplt.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/comstar/createtmplt.sh $
-# createtmplt.sh -- install a template
-
-usage() {
- printf "Usage: %s: -t -n -f -s -c -d -h [-u]\n" $(basename $0) >&2
-}
-
-
-#set -x
-
-rollback_if_needed() {
- if [ $2 -gt 0 ]
- then
- printf "$3\n"
- #back out all changes
- zfs destroy -r $1
- exit 2
-fi
-}
-
-verify_cksum() {
- echo "$1 $2" | md5sum -c --status
- #printf "$1\t$2" | md5sum -c --status
- if [ $? -gt 0 ]
- then
- printf "Checksum failed, not proceeding with install\n"
- exit 3
- fi
-}
-
-untar() {
- local ft=$(file $1| awk -F" " '{print $2}')
- local basedir=$(dirname $1)
- case $ft in
- USTAR) local rootimg=$(tar tf $1 | grep $3)
- (cd $2; tar xf $1)
- rm -f $1
- printf "$2/$rootimg"
- ;;
- *) printf "$1"
- return 0
- ;;
- esac
-
-}
-
-uncompress() {
- local ft=$(file $1| awk -F" " '{print $2}')
- local imgfile=${1%.*} #strip out trailing file suffix
- local tmpfile=${imgfile}.tmp
-
- case $ft in
- gzip) gunzip -c $1 > $tmpfile
- ;;
- bzip2) bunzip2 -c $1 > $tmpfile
- ;;
- ZIP) unzip -p $1 | cat > $tmpfile
- ;;
- *) printf "$1"
- return 0
- ;;
- esac
-
- if [ $? -gt 0 ]
- then
- printf "Failed to uncompress file, exiting "
- exit 1
- fi
-
- mv $tmpfile $imgfile
- printf "$imgfile"
-
- return 0
-}
-
-create_vol_from_file() {
- local tmpltfs=$1
- local tmpltimg=$2
- local tgtvol=$3
- local tgtdisk=$4
- local volsize=$5
- local cleanup=$6
-
- zfs list -H -o name $tgtvol
-
- #create it if it doesn't exist
- if [ $? -gt 0 ]
- then
- zfs create -V $volsize -s $tgtvol
- if [ $? -gt 0 ]
- then
- printf "Failed to create the target root disk volume\n"
- exit 5
- fi
- fi
-
- local osversion=$(uname -v)
- if [ "$osversion" == "snv_111b" ]
- then
- #copy 64k of zeros for LUN metatdata
- dd if=/dev/zero of=$tgtdisk bs=64k count=1
- #copy the file to the disk
- dd if=$tmpltimg of=$tgtdisk bs=64k seek=1
- else
- #copy the file to the disk. Could just use 'cp' as well
- dd if=$tmpltimg of=$tgtdisk bs=1024k
- fi
-
-
- rollback_if_needed $tmpltfs $? "Failed to copy root disk"
-
- if [ "$cleanup" == "true" ]
- then
- rm -f $tmpltimg
- fi
-}
-
-tflag=
-nflag=
-fflag=
-sflag=
-hflag=
-hvm=false
-cleanup=false
-dflag=
-cflag=
-
-while getopts 'uht:n:f:s:c:d:' OPTION
-do
- case $OPTION in
- t) tflag=1
- tmpltfs="$OPTARG"
- ;;
- n) nflag=1
- tmpltname="$OPTARG"
- ;;
- f) fflag=1
- tmpltimg="$OPTARG"
- ;;
- s) sflag=1
- volsize="$OPTARG"
- ;;
- c) cflag=1
- cksum="$OPTARG"
- ;;
- d) dflag=1
- descr="$OPTARG"
- ;;
- h) hflag=1
- hvm="true"
- ;;
- u) cleanup="true"
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$tflag$nflag$fflag$sflag" != "1111" ]
-then
- usage
- exit 2
-fi
-
-if [ -n "$cksum" ]
-then
- verify_cksum $cksum $tmpltimg
-fi
-
-if [ ${tmpltfs:0:1} == / ]
-then
- tmpltfs=${tmpltfs:1}
-fi
-
-if [ ! -d /$tmpltfs ]
-then
- zfs create $tmpltfs
- if [ $? -gt 0 ]
- then
- printf "Failed to create user fs $tmpltfs\n" >&2
- exit 1
- fi
-fi
-
-if [[ $(zfs get -H -o value -p type $tmpltfs) != filesystem ]]
-then
- printf "template fs doesn't exist\n" >&2
- exit 2
-fi
-
-tmpltimg2=$(uncompress $tmpltimg)
-tmpltimg2=$(untar $tmpltimg2 /$tmpltfs vmi-root)
-
-if [ ! -f $tmpltimg2 ]
-then
- rollback_if_needed $tmpltfs 2 "root disk file $tmpltimg doesn't exist\n"
- exit 3
-fi
-
-# need the 'G' suffix on volume size
-if [ ${volsize:(-1)} != G ]
-then
- volsize=${volsize}G
-fi
-
-#determine source file size -- it needs to be less than or equal to volsize
-imgsize=$(ls -lh $tmpltimg2| awk -F" " '{print $5}')
-if [ ${imgsize:(-1)} == G ]
-then
- imgsize=${imgsize%G} #strip out the G
- imgsize=${imgsize%.*} #...and any decimal part
- let imgsize=imgsize+1 # add 1 to compensate for decimal part
- volsizetmp=${volsize%G}
- if [ $volsizetmp -lt $imgsize ]
- then
- volsize=${imgsize}G
- fi
-fi
-
-tgtvol=${tmpltfs}/vmi-root-${tmpltname}
-tgtdisk=/dev/zvol/dsk/${tgtvol}
-
-create_vol_from_file $tmpltfs $tmpltimg2 $tgtvol $tgtdisk $volsize $cleanup
-
-tmpltswap=$(ls -lh /$tmpltfs | grep swap)
-if [ $? -eq 0 ]
-then
- swapsize=$(echo $tmpltswap | awk '{print $5}')
- tmpltswap=$(echo $tmpltswap | awk '{print $NF}')
- tmpltswap=/${tmpltfs}/${tmpltswap}
- tgtvol=${tmpltfs}/vmi-swap-${tmpltname}
- tgtdisk=/dev/zvol/dsk/${tgtvol}
- create_vol_from_file $tmpltfs $tmpltswap $tgtvol $tgtdisk $swapsize $cleanup
-fi
-
-
-if [ "$hvm" != "true" ]
-then
- vmlinuz=$(ls /$tmpltfs/vmlinuz*)
- if [ "$vmlinuz" == "" ]
- then
- touch /$tmpltfs/pygrub
- fi
-fi
-
-rollback_if_needed $tmpltfs $? "Failed to create pygrub file"
-
-touch /$tmpltfs/template.properties
-rollback_if_needed $tmpltfs $? "Failed to create template.properties file"
-echo -n "" > /$tmpltfs/template.properties
-
-today=$(date '+%m_%d_%Y')
-echo "snapshot.name=$today" > /$tmpltfs/template.properties
-echo "description=$descr" >> /$tmpltfs/template.properties
-echo "name=$tmpltname" >> /$tmpltfs/template.properties
-echo "checksum=$cksum" >> /$tmpltfs/template.properties
-echo "hvm=$hvm" >> /$tmpltfs/template.properties
-echo "volume.size=$volsize" >> /$tmpltfs/template.properties
-
-zfs snapshot -r $tmpltfs@$today
-rollback_if_needed $tmpltfs $? "Failed to snapshot filesystem"
-
-if [ "$cleanup" == "true" ]
-then
- rm -f $tmpltimg
-fi
-
-exit 0
diff --git a/scripts/storage/zfs/iscsi/comstar/createvm.sh b/scripts/storage/zfs/iscsi/comstar/createvm.sh
deleted file mode 100755
index d24133ea595..00000000000
--- a/scripts/storage/zfs/iscsi/comstar/createvm.sh
+++ /dev/null
@@ -1,268 +0,0 @@
-#!/usr/bin/env bash
-# $Id: createvm.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/comstar/createvm.sh $
-# createvm.sh -- create a vm image directory by cloning (iscsi mode)
-# OpenSolaris
-
-usage() {
- printf "Usage: %s: -t -d -i -u \n" $(basename $0) >&2
-}
-
-logzfs() {
- if [ -z "$debug" ]
- then
- return
- fi
- local elapsed=0
- printf "$(date +'%H:%M:%S') $*\n" >&3
- if [ "$(echo $1| awk '{print $1}')" == "start:" ]
- then
- start="$(/usr/gnu/bin/date +'%s')"
- return
- fi
- if [ "$(echo $1| awk '{print $1}')" == "end:" ]
- then
- end="$(/usr/gnu/bin/date +'%s')"
- let elapsed=end-start
- printf "t=$elapsed $*\n" >&3
- fi
-}
-
-#ensure that the instance fs is mounted within the user fs
-check_valid_userfs() {
- local ifs=$1
- local ufs=$2
- local child=${ifs#$ufs}
- if [ ${#child} -eq $(( ${#ifs}-${#ufs} )) ]
- then
- return 0
- else
- printf "instance fs $ifs is not contained within user fs $ufs. Bailing\n" >&2
- exit 3;
- fi
-}
-
-get_instance() {
- echo $(basename $1)
-}
-
-get_latest_snapshot() {
- local fs=$1
- local tsnap=$(echo $fs | cut -f1 -d'@')
- if [ "$tsnap" == "$fs" ]
- then
- snap=$(zfs list -r -H -o name -S name -S creation -t snapshot $tsnap| head -1)
- if [ -z $snap ]
- then
- return 1
- fi
- echo $snap
- return 0
- else
- echo $fs
- return
- fi
-}
-
-#trap 'echo "killed..." >&3; exec 3>&-; exit 9' TERM INT KILL
-#set -x
-
-tflag=
-iflag=
-uflag=
-dflag=
-sflag=
-start=
-end=
-#debug=1
-
-while getopts 't:i:u:d:s:' OPTION
-do
- case $OPTION in
- t) tflag=1
- templatefs="$OPTARG"
- ;;
- i) iflag=1
- instancefs="$OPTARG"
- ;;
- u) uflag=1
- userfs="$OPTARG"
- ;;
- d) dflag=1
- diskfs="$OPTARG"
- ;;
- s) sflag=1
- diskfs=""
- disksize="$OPTARG"
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$tflag$iflag$uflag" != "111" ]
-then
- usage
- exit 2
-fi
-
-#either -d or -s but not both
-if [ "$dflag$sflag" == "11" ]
-then
- usage
- exit 2
-fi
-
-#if user has provided leading slash, strip it out
-if [ ${userfs:0:1} == / ]
-then
- userfs=${userfs:1}
-fi
-
-if [ ${templatefs:0:1} == / ]
-then
- templatefs=${templatefs:1}
-fi
-
-if [ ${instancefs:0:1} == / ]
-then
- instancefs=${instancefs:1}
-fi
-
-if [ -n "$diskfs" ]
-then
- if [ ${diskfs:0:1} == / ]
- then
- diskfs=${diskfs:1}
- fi
-fi
-
-if [ -n "$disksize" ]
-then
- suffix=${disksize:(-1)}
- echo $suffix
- case $suffix in
- G)
- ;;
- [0-9]) disksize=${disksize}G
- ;;
- *) printf "Error in disk size: expect G as a suffix or no suffix\n"
- exit 2
- ;;
- esac
-
-fi
-
-instance=$(get_instance $instancefs)
-if [ -n "$debug" ]
-then
- exec 3<>$(dirname $0)/../../../logs/create$instance.log
-fi
-
-check_valid_userfs $instancefs $userfs
-
-
-#if user has provided the exact snapshot of the template fs, use it,
-#else get the latest snapshot
-tsnap=$(echo $templatefs | cut -f1 -d'@')
-if [ "$tsnap" == "$templatefs" ]
-then
- logzfs "start: get_latest_snapshot"
- tsnap=$(get_latest_snapshot $templatefs)
- logzfs "end: get_latest_snapshot"
- if [ -z "$tsnap" ]
- then
- printf "No snapshots exist of filesystem $templatefs..bailing\n" >&2
- exit 4
- fi
-else
- tsnap=$templatefs
- templatefs=$(echo $templatefs | cut -f1 -d'@') #strip out snap version
-fi
-
-snapt=$(echo $tsnap | cut -f2 -d'@')
-
-if [ -n "$diskfs" ]
-then
- logzfs "start: get_latest_snapshot"
- disksnap=$(get_latest_snapshot $diskfs)
- logzfs "end: get_latest_snapshot"
- if [ -z "$disksnap" ]
- then
- printf "No snapshots exist of disk filesystem $diskfs..bailing\n" >&2
- exit 6
- fi
- diskfs=$(echo $diskfs | cut -d'@' -f1)
-fi
-
-#Clone root disk and associated files
-printf "Cloning root disk $tsnap to $instancefs\n" >&2
-logzfs "start: zfs clone -p $tsnap $instancefs"
-zfs clone -p $tsnap $instancefs
-if [ $? -gt 0 ]
-then
- printf "Failed to clone root disk $tsnap\n" >&2
- exit 5
-fi
-logzfs "end: zfs clone -p $tsnap $instancefs"
-
-#get root disk/swapdisk volume contained within templatefs
-logzfs "start: zfs list -H -o name -t volume -r $templatefs"
-for vol in $(zfs list -H -o name -t volume -r $templatefs )
-do
- #clone the snapshot
- logzfs "start: zfs clone $vol@$snapt $instancefs/$(basename $vol)"
- zfs clone $vol@$snapt $instancefs/$(basename $vol)
- if [ $? -gt 0 ]
- then
- printf "Failed to clone root disk $vol$snapt\n" >&2
- exit 5
- fi
- sbdadm create-lu /dev/zvol/dsk/$instancefs/$(basename $vol)
- if [ $? -gt 0 ]
- then
- printf "Failed to create the lun for /dev/zvol/dsk/$instancefs/$(basename $vol)\n" >&2
- exit 10
- fi
- logzfs "end: zfs clone $vol@$snapt $instancefs/$(basename $vol)"
-done
-
-rc=0
-#Clone datadisk
-if [ -n "$diskfs" ]
-then
- logzfs "start: zfs clone $disksnap $instancefs/datadisk1-$(basename $diskfs)"
- zfs clone $disksnap $instancefs/datadisk1-$(basename $diskfs)
- if [ $? -gt 0 ]
- then
- printf "Failed to clone data disk $disksnap\n" >&2
- exit 5
- fi
- sbdadm create-lu /dev/zvol/dsk/$instancefs/datadisk1-$(basename $diskfs)
- if [ $? -gt 0 ]
- then
- printf "Failed to create the lun for /dev/zvol/dsk/$instancefs/datadisk1-$(basename $diskfs)\n" >&2
- exit 10
- fi
- logzfs "end: zfs clone $disksnap $instancefs/datadisk1-$(basename $diskfs)"
-fi
-
-if [ -n "$disksize" ]
-then
- logzfs "start: zfs create $instancefs/datadisk1"
- zfs create -V $disksize -s $instancefs/datadisk1 #-s for sparse
- if [ $rc -gt 0 ]
- then
- printf "Failed to create data disk $instancefs/datadisk1\n" >&2
- exit 6
- fi
- sbdadm create-lu /dev/zvol/dsk/$instancefs/datadisk1
- if [ $? -gt 0 ]
- then
- printf "Failed to create the lun for /dev/zvol/dsk/$instancefs/datadisk1\n" >&2
- exit 10
- fi
- logzfs "end: zfs create $instancefs/datadisk1"
-fi
-
-exit 0
diff --git a/scripts/storage/zfs/iscsi/comstar/delvm.sh b/scripts/storage/zfs/iscsi/comstar/delvm.sh
deleted file mode 100755
index 8bb6a8be061..00000000000
--- a/scripts/storage/zfs/iscsi/comstar/delvm.sh
+++ /dev/null
@@ -1,203 +0,0 @@
-#!/usr/bin/env bash
-# $Id: delvm.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/comstar/delvm.sh $
-# delvm.sh -- delete a cloned image used for a vm
-# OpenSolaris
-
-usage() {
- printf "Usage: %s: -i -l | -u \n" $(basename $0) >&2
-}
-
-delete_lu() { #
- local lu=$1
- local result=
- result=$(sbdadm delete-lu $lu 2>&1)
- if [ $? -ne 0 ]
- then
- if [ $? -ne 1 ]
- then
- printf "Unable to delete lun: $result\n" >&2
- return 4
- fi
- echo $result | grep "not found"
- if [ $? -ne 0 ]
- then
- printf "Unable to delete lun: $result\n" >&2
- return 5
- fi
- fi
- return 0
-}
-
-delete_all_lu() {
- local lu_list=$(sbdadm list-lu | grep $1 | awk '{print $1}')
- local lu
- for lu in $lu_list
- do
- delete_lu $lu
- done
-}
-
-#set -x
-logzfs() {
- if [ -z "$debug" ]
- then
- return
- fi
- local elapsed=0
- printf "$(date +'%H:%M:%S') $*\n" >&3
- if [ "$(echo $1| awk '{print $1}')" == "start:" ]
- then
- start="$(/usr/gnu/bin/date +'%s')"
- return
- fi
- if [ "$(echo $1| awk '{print $1}')" == "end:" ]
- then
- end="$(/usr/gnu/bin/date +'%s')"
- let elapsed=end-start
- printf "t=$elapsed $*\n" >&3
- fi
-}
-get_instance() {
- echo $(basename $1)
-}
-
-iflag=
-uflag=
-lflag=
-userfs=
-instancefs=
-start=
-end=
-tgtname=
-#debug=1
-
-while getopts 'i:u:l:' OPTION
-do
- case $OPTION in
- i) iflag=1
- instancefs="$OPTARG"
- ;;
- u) uflag=1
- userfs="$OPTARG"
- ;;
- l) lflag=1
- tgtname="$OPTARG"
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$iflag$uflag" != "1" -a "$iflag$uflag" != "11" ]
-then
- usage
- exit 2
-fi
-
-if [[ -n $instancefs && ${instancefs:0:1} == / ]]
-then
- instancefs=${instancefs:1}
-fi
-
-if [[ -n $userfs && ${userfs:0:1} == / ]]
-then
- userfs=${userfs:1}
-fi
-
-if [ "$iflag" == "1" ]
-then
- result=$(zfs get -H -o value -p type $instancefs 2>&1)
- if [ $? -eq 0 ]
- then
- if [ $result != filesystem ]
- then
- printf "Supplied instance fs doesn't exist\n" >&2
- exit 1
- fi
- else
- echo $result | grep "dataset does not exist"
- if [ $? -eq 0 ]
- then
- exit 0
- else
- printf "Unable to get information on $instancefs due to $result\n" >&2
- exit 2
- fi
- fi
-fi
-
-if [[ "$uflag" == 1 && $(zfs get -H -o value -p type $userfs) != filesystem ]]
-then
- printf "Supplied user fs doesn't exist\n" >&2
- exit 1
-fi
-
-instance=$(get_instance $instancefs)
-if [ -n "$debug" ]
-then
- exec 3<>$(dirname $0)/../../../logs/del$instance.log
-fi
-
-if [ "$iflag" == 1 ]
-then
- printf "Going to destroy $instancefs and its children\n"
- logzfs "start: zfs destroy -r -f $instancefs "
- if [ "$lflag" == 1 ]
- then
- for l in `echo $tgtname | tr ',' ' '`
- do
- lu=`echo $l | cut -d':' -f5`
- delete_lu $lu
- if [ $? -ne 0 ]
- then
- exit $?
- fi
- done
- else
- delete_all_lu $instancefs
- fi
-
- result=$(zfs destroy -r -f $instancefs 2>&1)
- rc=$?
- logzfs "end: zfs destroy -r -f $instancefs "
- if [ $rc -gt 0 ]
- then
- echo $result | grep "dataset does not exist"
- if [ $? -ne 0 ]
- then
- sleep 10
- printf "Trying again to destroy instance fs $instancefs \n" >&2
- result=$(zfs destroy -r -f $instancefs 2>&1)
- if [ $? -ne 0 ]
- then
- printf "Failed to destroy instance fs $instancefs, numchildren=$numc, result=$result\n" >&2
- exit 5
- fi
- fi
- fi
-fi
-
-if [ "$uflag" == 1 ]
-then
- printf "Going to destroy $userfs and its children\n"
- logzfs "start: zfs destroy -r -f $userfs"
- delete_all_lu $userfs
- zfs destroy -r -f $userfs
- rc=$?
- logzfs "end: zfs destroy -r -f $userfs"
- if [ $rc -gt 0 ]
- then
- numc=$(zfs list -Hr $userfs 2> /dev/null| wc -l)
- if [ "$numc" -eq 1 ]
- then
- printf "Trying again to destroy user fs $userfs \n" >&2
- zfs destroy -r -f $userfs
- else
- printf "Failed to destroy user fs $userfs, numchildren=$numc\n" >&2
- exit 5
- fi
- fi
-fi
-
-exit 0
diff --git a/scripts/storage/zfs/iscsi/comstar/filebacked/createtmplt.sh b/scripts/storage/zfs/iscsi/comstar/filebacked/createtmplt.sh
deleted file mode 100755
index 53a54385441..00000000000
--- a/scripts/storage/zfs/iscsi/comstar/filebacked/createtmplt.sh
+++ /dev/null
@@ -1,247 +0,0 @@
-#!/usr/bin/env bash
-# $Id: createtmplt.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/comstar/filebacked/createtmplt.sh $
-# createtmplt.sh -- install a template
-
-usage() {
- printf "Usage: %s: -t -n -f -s -c -d -h [-u]\n" $(basename $0) >&2
-}
-
-
-#set -x
-
-rollback_if_needed() {
- if [ $2 -gt 0 ]
- then
- printf "$3\n"
- #back out all changes
- zfs destroy -r $1
- exit 2
-fi
-}
-
-verify_cksum() {
- echo "$1 $2" | md5sum -c --status
- #printf "$1\t$2" | md5sum -c --status
- if [ $? -gt 0 ]
- then
- printf "Checksum failed, not proceeding with install\n"
- exit 3
- fi
-}
-
-untar() {
- local ft=$(file $1| awk -F" " '{print $2}')
- local basedir=$(dirname $1)
- case $ft in
- USTAR) local rootimg=$(tar tf $1 | grep $3)
- (cd $2; tar xf $1)
- rm -f $1
- printf "$2/$rootimg"
- ;;
- *) printf "$1"
- return 0
- ;;
- esac
-
-}
-
-uncompress() {
- local ft=$(file $1| awk -F" " '{print $2}')
- local imgfile=${1%.*} #strip out trailing file suffix
- local tmpfile=${imgfile}.tmp
-
- case $ft in
- gzip) gunzip -c $1 > $tmpfile
- ;;
- bzip2) bunzip2 -c $1 > $tmpfile
- ;;
- ZIP) unzip -p $1 | cat > $tmpfile
- ;;
- *) printf "$1"
- return 0
- ;;
- esac
-
- if [ $? -gt 0 ]
- then
- printf "Failed to uncompress file, exiting "
- exit 1
- fi
-
- mv $tmpfile $imgfile
- printf "$imgfile"
-
- return 0
-}
-
-create_from_file() {
- local tmpltfs=$1
- local tmpltimg=$2
- local tgtfile=$3
- local volsize=$4
- local cleanup=$5
-
- #copy 64k of zeros for LUN metatdata
- dd if=/dev/zero of=/$tgtfile bs=64k count=1
-
- #copy the file to the disk
- dd if=$tmpltimg of=/$tgtfile bs=64k seek=1
-
- rollback_if_needed $tmpltfs $? "Failed to copy root disk"
-
- if [ "$cleanup" == "true" ]
- then
- rm -f $tmpltimg
- fi
-}
-
-tflag=
-nflag=
-fflag=
-sflag=
-hflag=
-hvm=false
-cleanup=false
-dflag=
-cflag=
-
-while getopts 'uht:n:f:s:c:d:' OPTION
-do
- case $OPTION in
- t) tflag=1
- tmpltfs="$OPTARG"
- ;;
- n) nflag=1
- tmpltname="$OPTARG"
- ;;
- f) fflag=1
- tmpltimg="$OPTARG"
- ;;
- s) sflag=1
- volsize="$OPTARG"
- ;;
- c) cflag=1
- cksum="$OPTARG"
- ;;
- d) dflag=1
- descr="$OPTARG"
- ;;
- h) hflag=1
- hvm="true"
- ;;
- u) cleanup="true"
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$tflag$nflag$fflag$sflag" != "1111" ]
-then
- usage
- exit 2
-fi
-
-if [ -n "$cksum" ]
-then
- verify_cksum $cksum $tmpltimg
-fi
-
-if [ ${tmpltfs:0:1} == / ]
-then
- tmpltfs=${tmpltfs:1}
-fi
-
-if [ ! -d /$tmpltfs ]
-then
- zfs create $tmpltfs
- if [ $? -gt 0 ]
- then
- printf "Failed to create user fs $tmpltfs\n" >&2
- exit 1
- fi
-fi
-
-if [[ $(zfs get -H -o value -p type $tmpltfs) != filesystem ]]
-then
- printf "template fs doesn't exist\n" >&2
- exit 2
-fi
-
-tmpltimg2=$(uncompress $tmpltimg)
-tmpltimg2=$(untar $tmpltimg2 /$tmpltfs vmi-root)
-
-if [ ! -f $tmpltimg2 ]
-then
- rollback_if_needed $tmpltfs 2 "root disk file $tmpltimg doesn't exist\n"
- exit 3
-fi
-
-# need the 'G' suffix on volume size
-if [ ${volsize:(-1)} != G ]
-then
- volsize=${volsize}G
-fi
-
-#determine source file size -- it needs to be less than or equal to volsize
-imgsize=$(ls -lh $tmpltimg2| awk -F" " '{print $5}')
-if [ ${imgsize:(-1)} == G ]
-then
- imgsize=${imgsize%G} #strip out the G
- imgsize=${imgsize%.*} #...and any decimal part
- let imgsize=imgsize+1 # add 1 to compensate for decimal part
- volsizetmp=${volsize%G}
- if [ $volsizetmp -lt $imgsize ]
- then
- volsize=${imgsize}G
- fi
-fi
-
-tgtfile=${tmpltfs}/vmi-root-${tmpltname}
-
-create_from_file $tmpltfs $tmpltimg2 $tgtfile $volsize $cleanup
-
-tmpltswap=$(ls -lh /$tmpltfs | grep swap)
-if [ $? -eq 0 ]
-then
- swapsize=$(echo $tmpltswap | awk '{print $5}')
- tmpltswap=$(echo $tmpltswap | awk '{print $NF}')
- tmpltswap=/${tmpltfs}/${tmpltswap}
- tgtfile=${tmpltfs}/vmi-swap-${tmpltname}
- create_from_file $tmpltfs $tmpltswap $tgtfile $swapsize $cleanup
-fi
-
-
-if [ "$hvm" != "true" ]
-then
- vmlinuz=$(ls /$tmpltfs/vmlinuz*)
- if [ "$vmlinuz" == "" ]
- then
- touch /$tmpltfs/pygrub
- fi
-fi
-
-rollback_if_needed $tmpltfs $? "Failed to create pygrub file"
-
-touch /$tmpltfs/template.properties
-rollback_if_needed $tmpltfs $? "Failed to create template.properties file"
-echo -n "" > /$tmpltfs/template.properties
-
-today=$(date '+%m_%d_%Y')
-echo "snapshot.name=$today" > /$tmpltfs/template.properties
-echo "description=$descr" >> /$tmpltfs/template.properties
-echo "name=$tmpltname" >> /$tmpltfs/template.properties
-echo "checksum=$cksum" >> /$tmpltfs/template.properties
-echo "hvm=$hvm" >> /$tmpltfs/template.properties
-echo "volume.size=$volsize" >> /$tmpltfs/template.properties
-
-zfs snapshot -r $tmpltfs@vmops_ss
-rollback_if_needed $tmpltfs $? "Failed to snapshot filesystem"
-
-if [ "$cleanup" == "true" ]
-then
- rm -f $tmpltimg
-fi
-
-exit 0
diff --git a/scripts/storage/zfs/iscsi/comstar/filebacked/createvm.sh b/scripts/storage/zfs/iscsi/comstar/filebacked/createvm.sh
deleted file mode 100755
index 318ece266bc..00000000000
--- a/scripts/storage/zfs/iscsi/comstar/filebacked/createvm.sh
+++ /dev/null
@@ -1,253 +0,0 @@
-#!/usr/bin/env bash
-# $Id: createvm.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/comstar/filebacked/createvm.sh $
-# createvm.sh -- create a vm image directory by cloning (iscsi mode)
-# OpenSolaris
-
-usage() {
- printf "Usage: %s: -t -d -i -u \n" $(basename $0) >&2
-}
-
-logzfs() {
- if [ -z "$debug" ]
- then
- return
- fi
- local elapsed=0
- printf "$(date +'%H:%M:%S') $*\n" >&3
- if [ "$(echo $1| awk '{print $1}')" == "start:" ]
- then
- start="$(/usr/gnu/bin/date +'%s')"
- return
- fi
- if [ "$(echo $1| awk '{print $1}')" == "end:" ]
- then
- end="$(/usr/gnu/bin/date +'%s')"
- let elapsed=end-start
- printf "t=$elapsed $*\n" >&3
- fi
-}
-
-#ensure that the instance fs is mounted within the user fs
-check_valid_userfs() {
- local ifs=$1
- local ufs=$2
- local child=${ifs#$ufs}
- if [ ${#child} -eq $(( ${#ifs}-${#ufs} )) ]
- then
- return 0
- else
- printf "instance fs $ifs is not contained within user fs $ufs. Bailing\n" >&2
- exit 3;
- fi
-}
-
-get_instance() {
- echo $(basename $1)
-}
-
-get_latest_snapshot() {
- local fs=$1
- local tsnap=$(echo $fs | cut -f1 -d'@')
- if [ "$tsnap" == "$fs" ]
- then
- snap=$(zfs list -r -H -o name -S creation -t snapshot $tsnap | egrep "@([0-9][0-9]_[0-9][0-9]_[0-9][0-9][0-9][0-9]|vmops_ss)$" | head -1)
- if [ -z $snap ]
- then
- return 1
- fi
- echo $snap
- return 0
- else
- echo $fs
- return
- fi
-}
-
-#trap 'echo "killed..." >&3; exec 3>&-; exit 9' TERM INT KILL
-# set -x
-
-kflag=
-tflag=
-iflag=
-uflag=
-dflag=
-sflag=
-start=
-end=
-#debug=1
-
-while getopts 't:i:u:s:k' OPTION
-do
- case $OPTION in
- k) kflag=1
- ;;
- t) tflag=1
- templatefs="$OPTARG"
- ;;
- i) iflag=1
- instancefs="$OPTARG"
- ;;
- u) uflag=1
- userfs="$OPTARG"
- ;;
- s) sflag=1
- disksize="$OPTARG"
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$tflag$iflag$uflag" != "111" ]
-then
- usage
- exit 2
-fi
-
-#either -d or -s but not both
-if [ "$dflag$sflag" == "11" ]
-then
- usage
- exit 2
-fi
-
-#if user has provided leading slash, strip it out
-if [ ${userfs:0:1} == / ]
-then
- userfs=${userfs:1}
-fi
-
-if [ ${templatefs:0:1} == / ]
-then
- templatefs=${templatefs:1}
-fi
-
-if [ ${instancefs:0:1} == / ]
-then
- instancefs=${instancefs:1}
-fi
-
-
-if [ -n "$disksize" ]
-then
- suffix=${disksize:(-1)}
- echo $suffix
- case $suffix in
- G)
- ;;
- [0-9]) disksize=${disksize}G
- ;;
- *) printf "Error in disk size: expect G as a suffix or no suffix\n"
- exit 2
- ;;
- esac
-
-fi
-
-instance=$(get_instance $instancefs)
-if [ -n "$debug" ]
-then
- exec 3<>$(dirname $0)/../../../logs/create$instance.log
-fi
-
-check_valid_userfs $instancefs $userfs
-
-
-#if user has provided the exact snapshot of the template fs, use it,
-#else get the latest snapshot
-tsnap=$(echo $templatefs | cut -f1 -d'@')
-if [ "$tsnap" == "$templatefs" ]
-then
- logzfs "start: get_latest_snapshot"
- tsnap=$(get_latest_snapshot $templatefs)
- logzfs "end: get_latest_snapshot"
- if [ -z "$tsnap" ]
- then
- printf "No snapshots exist of filesystem $templatefs..bailing\n" >&2
- exit 4
- fi
-else
- tsnap=$templatefs
- templatefs=$(echo $templatefs | cut -f1 -d'@') #strip out snap version
-fi
-
-snapt=$(echo $tsnap | cut -f2 -d'@')
-
-
-if [ "$kflag" == "1" ]; then
- # clone the data disk as well -- the tsnap variable and instancefs variables are not set up properly by this time
- printf "Cloning private template $tsnap to $instancefs\n" >&2
- logzfs "start: zfs clone -p $tsnap $instancefs"
- zfs clone -p $tsnap $instancefs
- zfs clone -p $templatefs/rootdisk@$snapt $instancefs/rootdisk
- zfs clone -p $templatefs/datadisk1@$snapt $instancefs/datadisk1
- if [ $? -gt 0 ]
- then
- printf "Failed to clone template $tsnap\n" >&2
- exit 9
- fi
- rootdisk=$(ls /$instancefs/rootdisk/vmi-root*)
- sbdadm create-lu $rootdisk
- if [ $? -ne 0 ]
- then
- printf "Failed to create the lun\n" >&2
- exit 10;
- fi
-
- datadisk=$(ls /$instancefs/datadisk1/data*)
- sbdadm create-lu -s $disksize $datadisk
- if [ $? -ne 0 ]
- then
- printf "Failed to create the lun\n" >&2
- exit 10;
- fi
-
- logzfs "end: zfs clone -p $tsnap $instancefs"
-else
-
- #Clone root disk and associated files
- printf "Cloning root disk $tsnap to $instancefs\n" >&2
- logzfs "start: zfs clone -p $tsnap $instancefs"
- zfs clone -p $tsnap $instancefs/rootdisk
- if [ $? -gt 0 ]
- then
- printf "Failed to clone root disk $tsnap\n" >&2
- exit 5
- fi
- rootdisk=$(ls /$instancefs/rootdisk/vmi-root*)
- sbdadm create-lu $rootdisk
- if [ $? -ne 0 ]
- then
- printf "Failed to create the lun\n" >&2
- exit 10;
- fi
-
- logzfs "end: zfs clone -p $tsnap $instancefs"
-
- rc=0
- if [ -n "$disksize" ]
- then
- logzfs "start: zfs create $instancefs/datadisk1"
- zfs create $instancefs/datadisk1
- rc=$?
- touch /$instancefs/datadisk1/datadisk1
- if [ $rc -eq 0 ]
- then
- sbdadm create-lu -s $disksize /$instancefs/datadisk1/datadisk1
- if [ $? -ne 0 ]
- then
- printf "Failed to create the lun\n" >&2
- exit 10;
- fi
- fi
- logzfs "end: zfs create $instancefs/datadisk1"
- fi
- if [ $rc -gt 0 ]
- then
- printf "Failed to create data disk $instancefs/datadisk1/datadisk1\n" >&2
- exit 6
- fi
-fi
-
-exit 0
diff --git a/scripts/storage/zfs/iscsi/comstar/filebacked/functions.sh b/scripts/storage/zfs/iscsi/comstar/filebacked/functions.sh
deleted file mode 100755
index e4f6dfeaea7..00000000000
--- a/scripts/storage/zfs/iscsi/comstar/filebacked/functions.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# $Id: functions.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/comstar/filebacked/functions.sh $
-# functions.sh - OpenSolaris utility functions
-#
-
-list_views() {
- for lu in $(sbdadm list-lu | awk '{print $1}')
- do
- if stmfadm list-view -l $lu >/dev/null 2>/dev/null
- then
- echo $lu
- stmfadm list-view -l $lu
- else
- echo $lu "no_view"
- fi
- done
-}
-
-list_zvol() { #
- for lu in $(sbdadm list-lu | grep zvol | awk '{print $1}')
- do
- if stmfadm list-lu -v $lu | grep $1 >/dev/null
- then
- echo "lu = $lu"
- stmfadm list-view -l $lu
- fi
- done
-}
-
-# takes about 3 seconds per volume
-destroy_zvol () { #
- local luname=$(sbdadm list-lu | grep $1 | awk '{print $1}');
- sbdadm delete-lu $luname;
- zfs destroy $1
-}
diff --git a/scripts/storage/zfs/iscsi/comstar/filebacked/listvmdisk.sh b/scripts/storage/zfs/iscsi/comstar/filebacked/listvmdisk.sh
deleted file mode 100755
index 54c004f4902..00000000000
--- a/scripts/storage/zfs/iscsi/comstar/filebacked/listvmdisk.sh
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/usr/bin/env bash
-# $Id: listvmdisk.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/comstar/filebacked/listvmdisk.sh $
-# listvmdisk.sh -- list disks of a VM (iscsi mode)
-# OpenSolaris
-# Bugs: does not handle hexadecimal numbers. Decimal only!
-
-usage() {
- printf "Usage: %s: -i [-r | -w | -d ] \n" $(basename $0) >&2
-}
-
-hosted() {
- uname -a | grep "101b" > /dev/null
- return $?
-}
-
-path_and_iqn() {
- local ifs=$1
- local pattern=$2
-
- local diskfs=$(zfs list -r -H -o name $ifs | grep $pattern)
- if [ "$diskfs" != "" ]
- then
- local luname=$(sbdadm list-lu | grep $diskfs | awk '{print $1}')
- local tgtname=$(itadm list-target | tail -1 | awk '{print $1}')
- if [ "$tgtname" != "" -a "$luname" != "" ]
- then
- tgtname=$tgtname:lu:$luname
- else
- tgtname=""
- fi
- fi
- if [ $? -gt 0 ]
- then
- return 6
- fi
- if [ "$diskfs" != "" -a "$tgtname" != "" ]
- then
- printf "$diskfs,$tgtname\n"
- return 0
- fi
- return 0
-}
-
-#set -x
-
-iflag=
-rflag=
-dflag=
-wflag=
-disknum=
-instancefs=
-
-while getopts 'i:d:rw' OPTION
-do
- case $OPTION in
- i) iflag=1
- instancefs="$OPTARG"
- ;;
- d) dflag=1
- disknum="$OPTARG"
- ;;
- r) rflag=1
- ;;
- w) wflag=1
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$iflag" != "1" -a "$rflag$dflag$wflag" != "1" ]
-then
- usage
- exit 2
-fi
-
-if [ ${instancefs:0:1} == / ]
-then
- instancefs=${instancefs:1}
-fi
-
-
-if [[ $(zfs get -H -o value -p type $instancefs) != filesystem ]]
-then
- printf "Supplied instance fs doesn't exist\n" >&2
- exit 1
-fi
-
-
-if [ "$rflag" == 1 ]
-then
- path_and_iqn $instancefs "root"
- exit $?
-fi
-
-if [ "$wflag" == 1 ]
-then
- path_and_iqn $instancefs "swap"
- exit $?
-fi
-
-if [ "$dflag" == 1 ]
-then
- if [[ $disknum -eq 0 ]]
- then
- path_and_iqn $instancefs "root"
- else
- path_and_iqn $instancefs "datadisk"$disknum
- fi
-
- exit $?
-fi
-exit 0
diff --git a/scripts/storage/zfs/iscsi/comstar/filebacked/listvmdisksize.sh b/scripts/storage/zfs/iscsi/comstar/filebacked/listvmdisksize.sh
deleted file mode 100755
index 064a5c1a0f5..00000000000
--- a/scripts/storage/zfs/iscsi/comstar/filebacked/listvmdisksize.sh
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/usr/bin/env bash
-# $Id: listvmdisksize.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/comstar/filebacked/listvmdisksize.sh $
-# listvmdisksize.sh -- list disk sizes of a VM (iscsi mode)
-#
-
-usage() {
- printf "Usage: %s: -d [-t | -a ] \n" $(basename $0) >&2
-}
-
-
-#####################################################################
-# Evaluate a floating point number expression.
-function float_eval()
-{
- local stat=0
- local result=0.0
- if [[ $# -gt 0 ]]; then
- result=$(echo "scale=0; $*" | bc 2>/dev/null)
- stat=$?
- if [[ $stat -eq 0 && -z "$result" ]]; then stat=1; fi
- fi
- echo $result
- return $stat
-}
-
-kmg_to_number()
-{
- local s=$1;
- local size=${s:0:$((${#s}-1))}
- local result=$1;
- local suffix=${s:(-1)}
- case $suffix in
- G) result=$(float_eval "$size*1024*1024*1024")
- ;;
- M) result=$(float_eval "$size*1024*1024")
- ;;
- K) result=$(float_eval "$size*1024")
- ;;
- esac
-
- result=$(echo $result | cut -d"." -f1) #strip out decimal precision
- echo $result
-}
-
-#set -x
-
-aflag=
-tflag=
-aflag=
-diskfs=
-
-while getopts 'd:ta' OPTION
-do
- case $OPTION in
- d) dflag=1
- diskfs="$OPTARG"
- ;;
- t) tflag=1
- ;;
- a) aflag=1
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$dflag" != "1" -a "$tflag$aflag" != "1" ]
-then
- usage
- exit 2
-fi
-
-if [ ${diskfs:0:1} == / ]
-then
- diskfs=${diskfs:1}
-fi
-
-
-if [[ $(zfs get -H -o value -p type $diskfs) != filesystem ]]
-then
- printf "Supplied disk doesn't exist\n" >&2
- exit 1
-fi
-
-
-if [ "$aflag" == 1 ]
-then
- used=$(zfs list -H -o used $diskfs)
- if [ $? -gt 0 ]
- then
- exit 5
- fi
- result=$(kmg_to_number $used)
- printf "$result\n"
- exit 0
-fi
-
-if [ "$tflag" == 1 ]
-then
- #total=$(zfs list -H -o refer $diskfs)
- total=$(sbdadm list-lu | grep $diskfs | awk '{print $2}')
- if [ $? -gt 0 ]
- then
- exit 5
- fi
- printf "$total\n"
- exit 0
-fi
-
-exit 0
diff --git a/scripts/storage/zfs/iscsi/comstar/filebacked/migratetmplts.sh b/scripts/storage/zfs/iscsi/comstar/filebacked/migratetmplts.sh
deleted file mode 100755
index 76deb781a6c..00000000000
--- a/scripts/storage/zfs/iscsi/comstar/filebacked/migratetmplts.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-# $Id: migratetmplts.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/comstar/filebacked/migratetmplts.sh $
-# set -x
-for dir in $(find /tank/vmops -name template)
-do
- dir=${dir:1} #strip out leading slash
- for tmplt in $(zfs list -H -t volume -o name -r $dir );
- do
- dd if=/dev/zvol/dsk/$tmplt of=/$tmplt bs=8096k;
- today=$(date '+%m_%d_%Y')
- zfs snapshot -r $(dirname $tmplt)@${today}
- #zfs destroy -Rf $tmplt
- echo "Done: $tmplt"
- done
-done
diff --git a/scripts/storage/zfs/iscsi/comstar/filebacked/upgradevmdisk.sh b/scripts/storage/zfs/iscsi/comstar/filebacked/upgradevmdisk.sh
deleted file mode 100755
index fe700d836de..00000000000
--- a/scripts/storage/zfs/iscsi/comstar/filebacked/upgradevmdisk.sh
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/usr/bin/env bash
-# $Id: upgradevmdisk.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/comstar/filebacked/upgradevmdisk.sh $
-# upgradevmdisk.sh -- upgrade size of disks of a VM (iscsi mode)
-
-usage() {
- printf "Usage: %s: -v -d \n" $(basename $0) >&2
-}
-
-upgrade_disk() {
- local ifs=$1
- local disk_size=$2
-
-
- local diskfs=$(zfs list -r -H -o name $ifs | grep datadisk1)
- local datadisk=/${diskfs}/$(ls /$diskfs/)
- sbdadm modify-lu -s ${disk_size}M ${datadisk}
-
- if [ $? -gt 0 ]
- then
- return 7
- fi
-
- return 0
-}
-
-#set -x
-
-vflag=
-dflag=
-disksize=
-instancefs=
-
-while getopts 'v:d:' OPTION
-do
- case $OPTION in
- v) vflag=1
- instancefs="$OPTARG"
- ;;
- d) dflag=1
- disksize="$OPTARG"
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$vflag" != "1" -a "$dflag" != "1" ]
-then
- usage
- exit 2
-fi
-
-if [ ${instancefs:0:1} == / ]
-then
- instancefs=${instancefs:1}
-fi
-
-
-if [[ $(zfs get -H -o value -p type $instancefs) != filesystem ]]
-then
- printf "Supplied instance fs doesn't exist\n" >&2
- exit 1
-fi
-
-if [ "$dflag" == 1 ]
-then
- if [[ $disksize -gt 0 ]]
- then
- upgrade_disk $instancefs $disksize
- fi
-
- exit $?
-fi
-exit 0
diff --git a/scripts/storage/zfs/iscsi/comstar/functions.sh b/scripts/storage/zfs/iscsi/comstar/functions.sh
deleted file mode 100755
index cf5cb1cba33..00000000000
--- a/scripts/storage/zfs/iscsi/comstar/functions.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# $Id: functions.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/comstar/functions.sh $
-# functions.sh - OpenSolaris utility functions
-#
-
-list_views() {
- for lu in $(sbdadm list-lu | grep zvol | awk '{print $1}')
- do
- if stmfadm list-view -l $lu >/dev/null 2>/dev/null
- then
- echo $lu
- stmfadm list-view -l $lu
- else
- echo $lu "no_view"
- fi
- done
-}
-
-list_zvol() { #
- for lu in $(sbdadm list-lu | grep zvol | awk '{print $1}')
- do
- if stmfadm list-lu -v $lu | grep $1 >/dev/null
- then
- echo "lu = $lu"
- stmfadm list-view -l $lu
- fi
- done
-}
-
-# takes about 3 seconds per volume
-destroy_zvol () { #
- local luname=$(sbdadm list-lu | grep $1 | awk '{print $1}');
- sbdadm delete-lu $luname;
- zfs destroy $1
-}
diff --git a/scripts/storage/zfs/iscsi/comstar/host_group_destroy.sh b/scripts/storage/zfs/iscsi/comstar/host_group_destroy.sh
deleted file mode 100755
index 90c67c8502e..00000000000
--- a/scripts/storage/zfs/iscsi/comstar/host_group_destroy.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# $Id: host_group_destroy.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/comstar/host_group_destroy.sh $
-# host_group_destroy.sh -- delete all iSCSI host groups
-#
-# Usage: host_group_destroy.sh
-#
-# Removes all iSCSI host groups that are not in use.
-#
-# OpenSolaris
-
-# Delete iSCSI host groups
-host_groups=$(stmfadm list-hg | cut -d' ' -f 3)
-
-for host_group in $host_groups
-do
- stmfadm delete-hg $host_group
-done
-
diff --git a/scripts/storage/zfs/iscsi/comstar/listvmdisk.sh b/scripts/storage/zfs/iscsi/comstar/listvmdisk.sh
deleted file mode 100755
index d88097147b3..00000000000
--- a/scripts/storage/zfs/iscsi/comstar/listvmdisk.sh
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/usr/bin/env bash
-# $Id: listvmdisk.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/comstar/listvmdisk.sh $
-# listvmdisk.sh -- list disks of a VM (iscsi mode)
-# OpenSolaris
-# Bugs: does not handle hexadecimal numbers. Decimal only!
-
-usage() {
- printf "Usage: %s: -i [-r | -w | -d ] \n" $(basename $0) >&2
-}
-
-path_and_iqn() {
- local ifs=$1
- local pattern=$2
-
- local diskvol=$(zfs list -r -H -o name -t volume $ifs | grep $pattern)
- if [ "$diskvol" != "" ]
- then
- local luname=$(sbdadm list-lu | grep $diskvol | awk '{print $1}')
- local tgtname=$(itadm list-target | tail -1 | awk '{print $1}')
- if [ "$tgtname" != "" -a "$luname" != "" ]
- then
- tgtname=$tgtname:lu:$luname
- else
- tgtname=""
- fi
- fi
- if [ $? -gt 0 ]
- then
- return 6
- fi
- if [ "$diskvol" != "" -a "$tgtname" != "" ]
- then
- printf "$diskvol,$tgtname\n"
- return 0
- fi
- return 0
-}
-
-#set -x
-
-iflag=
-rflag=
-dflag=
-wflag=
-disknum=
-instancefs=
-
-while getopts 'i:d:rw' OPTION
-do
- case $OPTION in
- i) iflag=1
- instancefs="$OPTARG"
- ;;
- d) dflag=1
- disknum="$OPTARG"
- ;;
- r) rflag=1
- ;;
- w) wflag=1
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$iflag" != "1" -a "$rflag$dflag$wflag" != "1" ]
-then
- usage
- exit 2
-fi
-
-if [ ${instancefs:0:1} == / ]
-then
- instancefs=${instancefs:1}
-fi
-
-
-if [[ $(zfs get -H -o value -p type $instancefs) != filesystem ]]
-then
- printf "Supplied instance fs doesn't exist\n" >&2
- exit 1
-fi
-
-
-if [ "$rflag" == 1 ]
-then
- path_and_iqn $instancefs "root"
- exit $?
-fi
-
-if [ "$wflag" == 1 ]
-then
- path_and_iqn $instancefs "swap"
- exit $?
-fi
-
-if [ "$dflag" == 1 ]
-then
- if [[ $disknum -eq 0 ]]
- then
- path_and_iqn $instancefs "root"
- else
- path_and_iqn $instancefs "datadisk"$disknum
- fi
-
- exit $?
-fi
-exit 0
diff --git a/scripts/storage/zfs/iscsi/comstar/lu_info.sh b/scripts/storage/zfs/iscsi/comstar/lu_info.sh
deleted file mode 100755
index 6cf49569cb2..00000000000
--- a/scripts/storage/zfs/iscsi/comstar/lu_info.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env bash
-# $Id: lu_info.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/comstar/lu_info.sh $
-# lu_info.sh -- provide info on an LU of the form:
-#
-# Target: tank/vmops/vm/u000002/r000002/vmi-swap-routing
-# iSCSI Name: iqn.1986-03.com.sun:02:f8a76fae-6545-4756-9573-dc8154b8c0fa
-# Connections: 0
-#
-# OpenSolaris
-
-usage() {
- printf "Usage: %s path \n" $(basename $0) >&2
-}
-
-hosted() {
- uname -a | grep "101b" > /dev/null
- return $?
-}
-
-if [ $# -ne 1 ]
-then
- usage
- exit 1
-fi
-
-if hosted
-then
- iscsitadm list target $1
-else
- path=$1
- luname=$(sbdadm list-lu | grep $1 | awk '{print $1}')
- tgtname=$(itadm list-target | tail -1 | awk '{print $1}')
- tgtname=$tgtname:lu:$luname
- conn_count=$(stmfadm list-lu -v $luname | grep View | awk '{print $5}')
- printf "Target: %s\n" $path
- printf " iSCSI Name: %s\n" $tgtname
- printf " Connections: %s\n" $conn_count
-fi
diff --git a/scripts/storage/zfs/iscsi/comstar/lu_share.sh b/scripts/storage/zfs/iscsi/comstar/lu_share.sh
deleted file mode 100755
index dfa5fb5d735..00000000000
--- a/scripts/storage/zfs/iscsi/comstar/lu_share.sh
+++ /dev/null
@@ -1,295 +0,0 @@
-#!/usr/bin/env bash
-# $Id: lu_share.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/comstar/lu_share.sh $
-# lu_share.sh -- make a logical unit (LU) available over iSCSI
-# OpenSolaris
-
-usage() {
- printf "Usage: %s -i -t [ -u | -m ]\n" $(basename $0) >&2
-}
-
-valid_target_name() { #
- echo $1 | grep ':lu:' >/dev/null
- return $?
-}
-
-target_iqn_from_target_name() { #
- echo $1 | cut -d':' -f1,2,3
-}
-
-hg_from_initiator_iqn() { #
- echo $1
- return 0
-}
-
-lu_name_from_target_name() { #
- echo $1 | cut -d':' -f5
-}
-
-view_entry_from_hg_and_lu_name() { #
- local hg=$1
- local lu_name=$2
- local view=
- local last_view=
- local last_hg=
- for w in $(stmfadm list-view -l $lu_name)
- do
- case $w in
- [0-9]*) last_view=$w
- ;;
- esac
-
- if [ "$w" == "$hg" ]
- then
- echo $last_view
- return 0
- fi
- done
- return 1
-}
-
-create_host_group() { #
- local i_iqn=$1
- local host_group=
- local hg=
-
- local lines=$(stmfadm list-hg -v $i_iqn | grep $i_iqn | wc -l)
- if [ $lines -eq 2 ]
- then
- return 0
- fi
-
- local result=
- result=$(stmfadm create-hg $i_iqn 2>&1)
- if [ $? -ne 0 ]
- then
- echo $result | grep "already exists" > /dev/null
- if [ $? -ne 0 ]
- then
- printf "%s: create-hg %s failed due to %s\n" $(basename $0) $i_iqn $result >&2
- return 11
- fi
- fi
-
- result=$(stmfadm add-hg-member -g $i_iqn $i_iqn 2>&1)
- if [ $? -ne 0 ]
- then
- echo $result | grep "already exists" > /dev/null
- if [ $? -ne 0 ]
- then
- printf "%s: unable to add %s due to %s\n" $(basename $0) $i_iqn $result >&2
- return 12
- fi
- fi
- return 0
-}
-
-add_view() { #
- local i=1
- local hg=$1
- local lu=$2
-
- while [ $i -lt 500 ]
- do
- local lun=$[ ( $RANDOM % 512 ) ]
- local result=
- result=$(stmfadm add-view -h $hg -n $lun $lu 2>&1)
- if [ $? -eq 0 ]
- then
- printf "lun %s for luname %s\n" $lun $lu
- #stmfadm list-view -l $lu
- #sbdadm list-lu
- return 0
- fi
- echo $result | grep "view entry exists" > /dev/null
- if [ $? -eq 0 ]
- then
- return 0
- fi
- echo $result | grep "LUN already in use" > /dev/null
- if [ $? -ne 0 ]
- then
- echo $result
- return 1
- fi
- let i=i+1
- done
- printf "Unable to add view after lots of tries\n" >&2
- return 1
-}
-
-add_view_and_hg() { #
- local i_iqn=$1
- local lu_name=$2
- local hg=$(hg_from_initiator_iqn $i_iqn)
- local result=
- result=$(add_view $hg $lu_name)
- if [ $? -eq 0 ]
- then
- echo $result
- return 0
- fi
-
- # create host group if necessary and try again
- echo $result | grep "invalid host group" > /dev/null
- if [ $? -ne 0 ]
- then
- printf "Unable to add view due to: $result\n" >&2
- return 22
- fi
- if ! create_host_group $i_iqn
- then
- printf "%s: create_host_group failed: %s %s\n" $(basename $0) $i_iqn $lu_name >&2
- return 22
- fi
- result=$(add_view $hg $lu_name)
- if [ $? -eq 0 ]
- then
- echo $result
- return 0
- fi
- printf "Unable to create view due to: $result\n" >&2
- return 24
-}
-
-remove_view() { #
- local i_iqn=$1
- local lu_name=$2
- local hg=$(hg_from_initiator_iqn $i_iqn)
- local view=$(view_entry_from_hg_and_lu_name $hg $lu_name)
- if [ -n "$hg" -a -n "$view" ]
- then
- local result=
- result=$(stmfadm remove-view -l $lu_name $view 2>&1)
- if [ $? -ne 0 ]
- then
- echo $result | grep "not found"
- if [ $? -eq 0 ]
- then
- return 0
- fi
- echo $result | grep "no views found"
- if [ $? -eq 0 ]
- then
- return 0
- fi
- printf "Unable to remove view due to: $result\n" >&2
- return 5
- fi
- fi
- return 0
-}
-
-remove_view_unknown_init_iqn() { #
- local view_count=$(stmfadm list-view -l $1 2>/dev/null | grep View | wc -l)
- local view_number
- # if no view for LU, then report success
- if [ $view_count -eq 0 ]
- then
- return 0
- fi
- # if no init iqn specified, LU should only have one view
- # if more than one view, squawk and do nothing
- if [ "$view_count" == "1" ]
- then
- view_number=$(stmfadm list-view -l $1 2>/dev/null | grep View | awk '{print $NF}')
- stmfadm remove-view -l $1 $view_number
- else
- printf "remove_view_unknown_init_iqn: %s views! \n" $view_count >&2
- fi
-}
-
-remove_all_views() { #
- local lu_name=$1
- stmfadm remove-view -a -l $lu_name
- if [ $? -eq 1 ]
- then
- return 0
- fi
-}
-
-#set -x
-
-if [ $# -lt 4 ]
-then
- usage
- exit 1
-fi
-
-iflag=
-tflag=
-uflag=
-mflag=
-
-while getopts 'mui:t:' OPTION
-do
- case $OPTION in
- i) iflag=1
- init_iqn="$OPTARG"
- ;;
- m) mflag=1
- ;;
- t) tflag=1
- tgtname="$OPTARG"
- ;;
- u) uflag=1
- ;;
- *) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$iflag$tflag" != "11" -o "$mflag$uflag" == "11" ]
-then
- usage
- exit 3
-fi
-
-if ! valid_target_name $tgtname
-then
- printf "%s: invalid target name format: %s\n" $(basename $0) $tgtname >&2
- exit 4
-fi
-
-lu_name=$(lu_name_from_target_name $tgtname)
-
-if [ "$uflag" == "1" ]
-then
- if [ "$init_iqn" == "unshare_all" ]
- then
- if ! remove_all_views $lu_name
- then
- printf "%s: remove_all_views failed: %s\n" $(basename $0) $lu_name >&2
- exit 20
- fi
- else
- if [ "$init_iqn" == "n/a" ]
- then
- if ! remove_view_unknown_init_iqn $lu_name
- then
- printf "%s: remove_view_unknown_init_iqn failed: %s\n" $(basename $0) $lu_name >&2
- exit 25
- fi
- else
- if ! remove_view $init_iqn $lu_name
- then
- printf "%s: remove_view failed: %s\n" $(basename $0) $lu_name >&2
- exit 21
- fi
- fi
- fi
-else
- if [ "$mflag" == "1" ]
- then
- remove_all_views $lu_name
- fi
- # finally add a view of the lu
- RANDOM=$(perl -e 'print time;')
- if ! add_view_and_hg $init_iqn $lu_name
- then
- printf "%s: add_view failed: %s %s\n" $(basename $0) $host_group $lu_name >&2
- exit 23
- fi
-fi
-
-exit 0
diff --git a/scripts/storage/zfs/iscsi/comstar/upgradevmdisk.sh b/scripts/storage/zfs/iscsi/comstar/upgradevmdisk.sh
deleted file mode 100755
index c5176af7be5..00000000000
--- a/scripts/storage/zfs/iscsi/comstar/upgradevmdisk.sh
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/usr/bin/env bash
-# $Id: upgradevmdisk.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/comstar/upgradevmdisk.sh $
-# upgradevmdisk.sh -- upgrade size of disks of a VM (iscsi mode)
-
-usage() {
- printf "Usage: %s: -v -d \n" $(basename $0) >&2
-}
-
-upgrade_disk() {
- local ifs=$1
- local disk_size=$2
-
- zfs set volsize=${disk_size}M $ifs
-
- if [ $? -gt 0 ]
- then
- return 6
- fi
-
- sbdadm modify-lu -s ${disk_size}M /dev/zvol/dsk/${ifs}
-
- if [ $? -gt 0 ]
- then
- return 7
- fi
-
- return 0
-}
-
-#set -x
-
-vflag=
-dflag=
-disksize=
-instancefs=
-
-while getopts 'v:d:' OPTION
-do
- case $OPTION in
- v) vflag=1
- instancefs="$OPTARG"
- ;;
- d) dflag=1
- disksize="$OPTARG"
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$vflag" != "1" -a "$dflag" != "1" ]
-then
- usage
- exit 2
-fi
-
-if [ ${instancefs:0:1} == / ]
-then
- instancefs=${instancefs:1}
-fi
-
-
-if [[ $(zfs get -H -o value -p type $instancefs) != volume ]]
-then
- printf "Supplied instance fs doesn't exist\n" >&2
- exit 1
-fi
-
-if [ "$dflag" == 1 ]
-then
- if [[ $disksize -gt 0 ]]
- then
- upgrade_disk $instancefs $disksize
- fi
-
- exit $?
-fi
-exit 0
diff --git a/scripts/storage/zfs/iscsi/comstar/view_and_lu_remove.sh b/scripts/storage/zfs/iscsi/comstar/view_and_lu_remove.sh
deleted file mode 100755
index ed9cdab260c..00000000000
--- a/scripts/storage/zfs/iscsi/comstar/view_and_lu_remove.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/env bash
-# $Id: view_and_lu_remove.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/comstar/view_and_lu_remove.sh $
-# view_and_lu_remove.sh -- remove views and LU's under a ZFS file system tree
-#
-# Usage: view_and_lu_remove.sh
-#
-# Removes outstanding views and deletes LU's recursively under a ZFS file
-# system path.
-#
-# OpenSolaris
-
-usage() {
- printf "Usage: %s: \n" $(basename $0) >&2
-}
-
-#set -x
-
-zfspath=$1
-
-if [ -z "$1" ]
-then
- usage
- exit 1
-fi
-
-paths=$(zfs list -Hro name $zfspath)
-
-if [ -z "$paths" ]
-then
- printf "%s: zfs path %s does not exist.\n" $(basename $0) >&2
- exit 2
-fi
-
-lu_names=$(sbdadm list-lu | grep $zfspath | awk '{print $1}')
-
-for lu in $lu_names
-do
- stmfadm remove-view -a -l $lu 0 2>/dev/null
- sbdadm delete-lu $lu
-done
-
-sleep 2
-
-exit 0
diff --git a/scripts/storage/zfs/iscsi/comstar/zfs_destroy.sh b/scripts/storage/zfs/iscsi/comstar/zfs_destroy.sh
deleted file mode 100755
index d04f6e615f9..00000000000
--- a/scripts/storage/zfs/iscsi/comstar/zfs_destroy.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env bash
-# $Id: zfs_destroy.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/comstar/zfs_destroy.sh $
-# zfs_destroy.sh -- delete a cloned image used for a vm
-#
-# Usage: zfs_destroy
-#
-# Removes outstanding views, deletes LU's, and then performs a
-# "zfs destroy -f -r ".
-#
-# OpenSolaris
-
-usage() {
- printf "Usage: %s: \n" $(basename $0) >&2
-}
-
-#set -x
-
-get_instance() {
- echo $(basename $1)
-}
-
-zfspath=$1
-
-if [ -z "$1" ]
-then
- usage
- exit 1
-fi
-
-paths=$(zfs list -Hro name $zfspath)
-
-if [ -z "$paths" ]
-then
- printf "%s: zfs path %s does not exist.\n" $(basename $0) >&2
- exit 2
-fi
-
-lu_names=$(sbdadm list-lu 2>&1 | grep $zfspath | awk '{print $1}')
-
-for lu in $lu_names
-do
- stmfadm remove-view -a -l $lu 0 2>/dev/null
- sbdadm delete-lu $lu
-done
-
-zfs destroy -r -f $zfspath
-
-exit 0
diff --git a/scripts/storage/zfs/iscsi/create_private_template.sh b/scripts/storage/zfs/iscsi/create_private_template.sh
deleted file mode 100755
index ac8b4a299b6..00000000000
--- a/scripts/storage/zfs/iscsi/create_private_template.sh
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/usr/bin/env bash
-# $Id: create_private_template.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/create_private_template.sh $
-# create_private_template.sh -- create a private template from a snapshot
-#
-
-usage() {
- printf "Usage: %s: -p -n \n" $(basename $0) >&2
- exit 2
-}
-
-create_template() {
- local fspath=$1
- local snapshotname=$2
- local template_path=$3
- local user_dir=$4
- local instance_dir=$5
- local tname=$6
-
- if [ -d "/$template_path/$user_dir/$instance_dir/$tname" ]; then
- printf "template exists at path: $template_path/$user_dir/$instance_dir/$tname\n" >&2
- return 4
- fi
-
- if [ ! -d "/$template_path/$user_dir" ]; then
- zfs create $template_path/$user_dir
- if [ $? -gt 0 ]
- then
- printf "***Failed to create private template path $template_path/$user_dir\n" >&2
- return 6
- fi
- fi
-
- if [ ! -d "/$template_path/$user_dir/$instance_dir" ]; then
- zfs create $template_path/$user_dir/$instance_dir
- if [ $? -gt 0 ]
- then
- printf "***Failed to create private template path $template_path/$user_dir/$instance_dir\n" >&2
- return 6
- fi
- fi
-
- zfs send $fspath@$snapshotname | zfs recv $template_path/$user_dir/$instance_dir/$tname
- zfs send $fspath/rootdisk@$snapshotname | zfs recv $template_path/$user_dir/$instance_dir/$tname/rootdisk
- zfs send $fspath/datadisk1@$snapshotname | zfs recv $template_path/$user_dir/$instance_dir/$tname/datadisk1
-
- ##### other things we could try are clone then promote
- # zfs clone $fspath@$snapshotname $template_path
- # zfs clone $fspath/rootdisk@$snapshotname $template_path/rootdisk
- # zfs clone $fspath/datadisk1@$snapshotname $template_path/datadisk1
- # zfs promote $template_path
-
- if [ $? -gt 0 ]
- then
- printf "***Failed to receive snapshot $snapshotname for path $fspath\n" >&2
- return 5
- fi
-
-}
-
-#set -x
-
-pflag=
-nflag=
-dflag=
-uflag=
-iflag=
-sflag=
-pathval=
-templatename=
-snapshot=
-install_dir=
-user_folder=
-instance_folder=
-
-while getopts 'p:n:d:u:i:s:' OPTION
-do
- case $OPTION in
- p) pflag=1
- pathval="$OPTARG"
- ;;
- n) nflag=1
- templatename="$OPTARG"
- ;;
- s) sflag=1
- snapshot="$OPTARG"
- ;;
- d) dflag=1
- install_dir="$OPTARG"
- ;;
- u) uflag=1
- user_folder="$OPTARG"
- ;;
- i) iflag=1
- instance_folder="$OPTARG"
- ;;
- ?) usage
- ;;
- esac
-done
-
-if [ "$pflag$nflag$dflag$uflag$iflag$sflag" != "111111" ]
-then
- usage
-fi
-
-create_template $pathval $snapshot $install_dir $user_folder $instance_folder $templatename
-exit $?
diff --git a/scripts/storage/zfs/iscsi/createdatadisk.sh b/scripts/storage/zfs/iscsi/createdatadisk.sh
deleted file mode 100755
index 67f0214c855..00000000000
--- a/scripts/storage/zfs/iscsi/createdatadisk.sh
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/usr/bin/env bash
-# $Id: createdatadisk.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/createdatadisk.sh $
-# createdatadisk.sh -- create a thin-provisioned data disk
-#
-
-usage() {
- printf "Usage: %s: -i -s \n" $(basename $0) >&2
-}
-
-
-#set -x
-
-iflag=
-sflag=
-cflag=
-disknum=
-datadisk=
-
-while getopts 'i:s:c:' OPTION
-do
- case $OPTION in
- i) iflag=1
- instancefs="$OPTARG"
- ;;
- c) cflag=1
- disknum="$OPTARG"
- datadisk="datadisk-$disknum"
- ;;
- s) sflag=1
- diskfs=""
- disksize="$OPTARG"
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$iflag$sflag$cflag" != "111" ]
-then
- usage
- exit 2
-fi
-
-if [ ${instancefs:0:1} == / ]
-then
- instancefs=${instancefs:1}
-fi
-
-
-if [ -n "$disksize" ]
-then
- suffix=${disksize:(-1)}
- echo $suffix
- case $suffix in
- G)
- ;;
- [0-9]) disksize=${disksize}G
- ;;
- *) printf "Error in disk size: expect G as a suffix or no suffix\n"
- exit 2
- ;;
- esac
-
-fi
-
-if [ -n "$disksize" ]
-then
- zfs create -V $disksize -s $instancefs/$datadisk #-s for sparse
- rc=$?
-fi
-
-if [ $rc -gt 0 ]
-then
- printf "Failed to create data disk $instancefs/$datadisk\n" >&2
- exit 6
-fi
-
-exit 0
diff --git a/scripts/storage/zfs/iscsi/createtmplt.sh b/scripts/storage/zfs/iscsi/createtmplt.sh
deleted file mode 100755
index 37cc27e7bc7..00000000000
--- a/scripts/storage/zfs/iscsi/createtmplt.sh
+++ /dev/null
@@ -1,270 +0,0 @@
-#!/usr/bin/env bash
-# $Id: createtmplt.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/createtmplt.sh $
-# createtmplt.sh -- install a template
-
-usage() {
- printf "Usage: %s: -t -n -f -s -c -d -h [-u]\n" $(basename $0) >&2
-}
-
-
-#set -x
-
-rollback_if_needed() {
- if [ $2 -gt 0 ]
- then
- printf "$3\n"
- #back out all changes
- zfs destroy -r $1
- exit 2
-fi
-}
-
-verify_cksum() {
- echo "$1 $2" | md5sum -c --status
- #printf "$1\t$2" | md5sum -c --status
- if [ $? -gt 0 ]
- then
- printf "Checksum failed, not proceeding with install\n"
- exit 3
- fi
-}
-
-untar() {
- local ft=$(file $1| awk -F" " '{print $2}')
- local basedir=$(dirname $1)
- case $ft in
- USTAR) local rootimg=$(tar tf $1 | grep $3)
- (cd $2; tar xf $1)
- rm -f $1
- printf "$2/$rootimg"
- ;;
- *) printf "$1"
- return 0
- ;;
- esac
-
-}
-
-uncompress() {
- local ft=$(file $1| awk -F" " '{print $2}')
- local imgfile=${1%.*} #strip out trailing file suffix
- local tmpfile=${imgfile}.tmp
-
- case $ft in
- gzip) gunzip -c $1 > $tmpfile
- ;;
- bzip2) bunzip2 -c $1 > $tmpfile
- ;;
- ZIP) unzip -p $1 | cat > $tmpfile
- ;;
- *) printf "$1"
- return 0
- ;;
- esac
-
- if [ $? -gt 0 ]
- then
- printf "Failed to uncompress file, exiting "
- exit 1
- fi
-
- mv $tmpfile $imgfile
- printf "$imgfile"
-
- return 0
-}
-
-create_vol_from_file() {
- local tmpltfs=$1
- local tmpltimg=$2
- local tgtvol=$3
- local tgtdisk=$4
- local volsize=$5
- local cleanup=$6
-
- zfs list -H -o name $tgtvol
-
- #create it if it doesn't exist
- if [ $? -gt 0 ]
- then
- zfs create -V $volsize -s $tgtvol
- if [ $? -gt 0 ]
- then
- printf "Failed to create the target root disk volume\n"
- exit 5
- fi
- fi
-
- local osversion=$(uname -v)
- if [ "$osversion" == "snv_111b" ]
- then
- #copy 64k of zeros for LUN metatdata
- dd if=/dev/zero of=$tgtdisk bs=64k count=1
- #copy the file to the disk
- dd if=$tmpltimg of=$tgtdisk bs=64k seek=1
- else
- #copy the file to the disk. Could just use 'cp' as well
- dd if=$tmpltimg of=$tgtdisk bs=1024k
- fi
-
-
- rollback_if_needed $tmpltfs $? "Failed to copy root disk"
-
- if [ "$cleanup" == "true" ]
- then
- rm -f $tmpltimg
- fi
-}
-
-tflag=
-nflag=
-fflag=
-sflag=
-hflag=
-hvm=false
-cleanup=false
-dflag=
-cflag=
-
-while getopts 'uht:n:f:s:c:d:' OPTION
-do
- case $OPTION in
- t) tflag=1
- tmpltfs="$OPTARG"
- ;;
- n) nflag=1
- tmpltname="$OPTARG"
- ;;
- f) fflag=1
- tmpltimg="$OPTARG"
- ;;
- s) sflag=1
- volsize="$OPTARG"
- ;;
- c) cflag=1
- cksum="$OPTARG"
- ;;
- d) dflag=1
- descr="$OPTARG"
- ;;
- h) hflag=1
- hvm="true"
- ;;
- u) cleanup="true"
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$tflag$nflag$fflag$sflag" != "1111" ]
-then
- usage
- exit 2
-fi
-
-if [ -n "$cksum" ]
-then
- verify_cksum $cksum $tmpltimg
-fi
-
-if [ ${tmpltfs:0:1} == / ]
-then
- tmpltfs=${tmpltfs:1}
-fi
-
-if [ ! -d /$tmpltfs ]
-then
- zfs create $tmpltfs
- if [ $? -gt 0 ]
- then
- printf "Failed to create user fs $tmpltfs\n" >&2
- exit 1
- fi
-fi
-
-if [[ $(zfs get -H -o value -p type $tmpltfs) != filesystem ]]
-then
- printf "template fs doesn't exist\n" >&2
- exit 2
-fi
-
-tmpltimg2=$(uncompress $tmpltimg)
-tmpltimg2=$(untar $tmpltimg2 /$tmpltfs vmi-root)
-
-if [ ! -f $tmpltimg2 ]
-then
- rollback_if_needed $tmpltfs 2 "root disk file $tmpltimg doesn't exist\n"
- exit 3
-fi
-
-# need the 'G' suffix on volume size
-if [ ${volsize:(-1)} != G ]
-then
- volsize=${volsize}G
-fi
-
-#determine source file size -- it needs to be less than or equal to volsize
-imgsize=$(ls -lh $tmpltimg2| awk -F" " '{print $5}')
-if [ ${imgsize:(-1)} == G ]
-then
- imgsize=${imgsize%G} #strip out the G
- imgsize=${imgsize%.*} #...and any decimal part
- let imgsize=imgsize+1 # add 1 to compensate for decimal part
- volsizetmp=${volsize%G}
- if [ $volsizetmp -lt $imgsize ]
- then
- volsize=${imgsize}G
- fi
-fi
-
-tgtvol=${tmpltfs}/vmi-root-${tmpltname}
-tgtdisk=/dev/zvol/dsk/${tgtvol}
-
-create_vol_from_file $tmpltfs $tmpltimg2 $tgtvol $tgtdisk $volsize $cleanup
-
-tmpltswap=$(ls -lh /$tmpltfs | grep swap)
-if [ $? -eq 0 ]
-then
- swapsize=$(echo $tmpltswap | awk '{print $5}')
- tmpltswap=$(echo $tmpltswap | awk '{print $NF}')
- tmpltswap=/${tmpltfs}/${tmpltswap}
- tgtvol=${tmpltfs}/vmi-swap-${tmpltname}
- tgtdisk=/dev/zvol/dsk/${tgtvol}
- create_vol_from_file $tmpltfs $tmpltswap $tgtvol $tgtdisk $swapsize $cleanup
-fi
-
-
-if [ "$hvm" != "true" ]
-then
- vmlinuz=$(ls /$tmpltfs/vmlinuz*)
- if [ "$vmlinuz" == "" ]
- then
- touch /$tmpltfs/pygrub
- fi
-fi
-
-rollback_if_needed $tmpltfs $? "Failed to create pygrub file"
-
-touch /$tmpltfs/template.properties
-rollback_if_needed $tmpltfs $? "Failed to create template.properties file"
-echo -n "" > /$tmpltfs/template.properties
-
-today=$(date '+%m_%d_%Y')
-echo "snapshot.name=$today" > /$tmpltfs/template.properties
-echo "description=$descr" >> /$tmpltfs/template.properties
-echo "name=$tmpltname" >> /$tmpltfs/template.properties
-echo "checksum=$cksum" >> /$tmpltfs/template.properties
-echo "hvm=$hvm" >> /$tmpltfs/template.properties
-echo "volume.size=$volsize" >> /$tmpltfs/template.properties
-
-zfs snapshot -r $tmpltfs@$today
-rollback_if_needed $tmpltfs $? "Failed to snapshot filesystem"
-
-if [ "$cleanup" == "true" ]
-then
- rm -f $tmpltimg
-fi
-
-exit 0
diff --git a/scripts/storage/zfs/iscsi/createvm.sh b/scripts/storage/zfs/iscsi/createvm.sh
deleted file mode 100755
index efd287e3308..00000000000
--- a/scripts/storage/zfs/iscsi/createvm.sh
+++ /dev/null
@@ -1,248 +0,0 @@
-#!/usr/bin/env bash
-# $Id: createvm.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/createvm.sh $
-# createvm.sh -- create a vm image directory by cloning (iscsi mode)
-#
-
-usage() {
- printf "Usage: %s: -t -d -i -u \n" $(basename $0) >&2
-}
-
-logzfs() {
- if [ -z "$debug" ]
- then
- return
- fi
- local elapsed=0
- printf "$(date +'%H:%M:%S') $*\n" >&3
- if [ "$(echo $1| awk '{print $1}')" == "start:" ]
- then
- start="$(/usr/gnu/bin/date +'%s')"
- return
- fi
- if [ "$(echo $1| awk '{print $1}')" == "end:" ]
- then
- end="$(/usr/gnu/bin/date +'%s')"
- let elapsed=end-start
- printf "t=$elapsed $*\n" >&3
- fi
-}
-
-#ensure that the instance fs is mounted within the user fs
-check_valid_userfs() {
- local ifs=$1
- local ufs=$2
- local child=${ifs#$ufs}
- if [ ${#child} -eq $(( ${#ifs}-${#ufs} )) ]
- then
- return 0
- else
- printf "instance fs $ifs is not contained within user fs $ufs. Bailing\n" >&2
- exit 3;
- fi
-}
-
-get_instance() {
- echo $(basename $1)
-}
-
-get_latest_snapshot() {
- local fs=$1
- local tsnap=$(echo $fs | cut -f1 -d'@')
- if [ "$tsnap" == "$fs" ]
- then
- snap=$(zfs list -r -H -o name -S name -S creation -t snapshot $tsnap| head -1)
- if [ -z $snap ]
- then
- return 1
- fi
- echo $snap
- return 0
- else
- echo $fs
- return
- fi
-}
-
-trap 'echo "killed..." >&3; exec 3>&-; exit 9' TERM INT KILL
-#set -x
-
-tflag=
-iflag=
-uflag=
-dflag=
-sflag=
-start=
-end=
-debug=1
-
-while getopts 't:i:u:d:s:' OPTION
-do
- case $OPTION in
- t) tflag=1
- templatefs="$OPTARG"
- ;;
- i) iflag=1
- instancefs="$OPTARG"
- ;;
- u) uflag=1
- userfs="$OPTARG"
- ;;
- d) dflag=1
- diskfs="$OPTARG"
- ;;
- s) sflag=1
- diskfs=""
- disksize="$OPTARG"
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$tflag$iflag$uflag" != "111" ]
-then
- usage
- exit 2
-fi
-
-#either -d or -s but not both
-if [ "$dflag$sflag" == "11" ]
-then
- usage
- exit 2
-fi
-
-#if user has provided leading slash, strip it out
-if [ ${userfs:0:1} == / ]
-then
- userfs=${userfs:1}
-fi
-
-if [ ${templatefs:0:1} == / ]
-then
- templatefs=${templatefs:1}
-fi
-
-if [ ${instancefs:0:1} == / ]
-then
- instancefs=${instancefs:1}
-fi
-
-if [ -n "$diskfs" ]
-then
- if [ ${diskfs:0:1} == / ]
- then
- diskfs=${diskfs:1}
- fi
-fi
-
-if [ -n "$disksize" ]
-then
- suffix=${disksize:(-1)}
- echo $suffix
- case $suffix in
- G)
- ;;
- [0-9]) disksize=${disksize}G
- ;;
- *) printf "Error in disk size: expect G as a suffix or no suffix\n"
- exit 2
- ;;
- esac
-
-fi
-
-instance=$(get_instance $instancefs)
-if [ -n "$debug" ]
-then
- exec 3<>$(dirname $0)/../../logs/create$instance.log
-fi
-
-check_valid_userfs $instancefs $userfs
-
-
-#if user has provided the exact snapshot of the template fs, use it,
-#else get the latest snapshot
-tsnap=$(echo $templatefs | cut -f1 -d'@')
-if [ "$tsnap" == "$templatefs" ]
-then
- logzfs "start: get_latest_snapshot"
- tsnap=$(get_latest_snapshot $templatefs)
- logzfs "end: get_latest_snapshot"
- if [ -z "$tsnap" ]
- then
- printf "No snapshots exist of filesystem $templatefs..bailing\n" >&2
- exit 4
- fi
-else
- tsnap=$templatefs
- templatefs=$(echo $templatefs | cut -f1 -d'@') #strip out snap version
-fi
-
-snapt=$(echo $tsnap | cut -f2 -d'@')
-
-if [ -n "$diskfs" ]
-then
- logzfs "start: get_latest_snapshot"
- disksnap=$(get_latest_snapshot $diskfs)
- logzfs "end: get_latest_snapshot"
- if [ -z "$disksnap" ]
- then
- printf "No snapshots exist of disk filesystem $diskfs..bailing\n" >&2
- exit 6
- fi
- diskfs=$(echo $diskfs | cut -d'@' -f1)
-fi
-
-#Clone root disk and associated files
-printf "Cloning root disk $tsnap to $instancefs\n" >&2
-logzfs "start: zfs clone -p $tsnap $instancefs"
-zfs clone -p $tsnap $instancefs
-if [ $? -gt 0 ]
-then
- printf "Failed to clone root disk $snap\n" >&2
- exit 5
-fi
-logzfs "end: zfs clone -p $tsnap $instancefs"
-
-#get root disk/swapdisk volume contained within templatefs
-logzfs "start: zfs list -H -o name -t volume -r $templatefs"
-for vol in $(zfs list -H -o name -t volume -r $templatefs )
-do
- #clone the snapshot
- logzfs "start: zfs clone $vol@$snapt $instancefs/$(basename $vol)"
- zfs clone $vol@$snapt $instancefs/$(basename $vol)
- rc=$?
- logzfs "end: zfs clone $vol@$snapt $instancefs/$(basename $vol)"
-done
-
-rc=0
-#Clone datadisk
-if [ -n "$diskfs" ]
-then
- logzfs "start: zfs clone $disksnap $instancefs/datadisk1-$(basename $diskfs)"
- zfs clone $disksnap $instancefs/datadisk1-$(basename $diskfs)
- rc=$?
- logzfs "end: zfs clone $disksnap $instancefs/datadisk1-$(basename $diskfs)"
-fi
-if [ $rc -gt 0 ]
-then
- printf "Failed to clone data disk $disksnap\n" >&2
- exit 5
-fi
-
-if [ -n "$disksize" ]
-then
- logzfs "start: zfs create $instancefs/datadisk1"
- zfs create -V $disksize -s $instancefs/datadisk1 #-s for sparse
- rc=$?
- logzfs "end: zfs create $instancefs/datadisk1"
-fi
-if [ $rc -gt 0 ]
-then
- printf "Failed to create data disk $instancefs/datadisk1\n" >&2
- exit 6
-fi
-
-exit 0
diff --git a/scripts/storage/zfs/iscsi/delvm.sh b/scripts/storage/zfs/iscsi/delvm.sh
deleted file mode 100755
index 092414fcdfb..00000000000
--- a/scripts/storage/zfs/iscsi/delvm.sh
+++ /dev/null
@@ -1,133 +0,0 @@
-#!/usr/bin/env bash
-# $Id: delvm.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/delvm.sh $
-# delvm.sh -- delete a cloned image used for a vm
-#
-
-usage() {
- printf "Usage: %s: -i -u \n" $(basename $0) >&2
-}
-
-
-#set -x
-logzfs() {
- if [ -z "$debug" ]
- then
- return
- fi
- local elapsed=0
- printf "$(date +'%H:%M:%S') $*\n" >&3
- if [ "$(echo $1| awk '{print $1}')" == "start:" ]
- then
- start="$(/usr/gnu/bin/date +'%s')"
- return
- fi
- if [ "$(echo $1| awk '{print $1}')" == "end:" ]
- then
- end="$(/usr/gnu/bin/date +'%s')"
- let elapsed=end-start
- printf "t=$elapsed $*\n" >&3
- fi
-}
-get_instance() {
- echo $(basename $1)
-}
-
-iflag=
-uflag=
-userfs=
-instancefs=
-start=
-end=
-debug=1
-
-while getopts 'i:u:' OPTION
-do
- case $OPTION in
- i) iflag=1
- instancefs="$OPTARG"
- ;;
- u) uflag=1
- userfs="$OPTARG"
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$iflag$uflag" != "1" -a "$iflag$uflag" != "11" ]
-then
- usage
- exit 2
-fi
-
-if [[ -n $instancefs && ${instancefs:0:1} == / ]]
-then
- instancefs=${instancefs:1}
-fi
-
-if [[ -n $userfs && ${userfs:0:1} == / ]]
-then
- userfs=${userfs:1}
-fi
-
-if [[ "$iflag" == 1 && $(zfs get -H -o value -p type $instancefs) != filesystem ]]
-then
- printf "Supplied instance fs doesn't exist\n" >&2
- exit 1
-fi
-
-if [[ "$uflag" == 1 && $(zfs get -H -o value -p type $userfs) != filesystem ]]
-then
- printf "Supplied user fs doesn't exist\n" >&2
- exit 1
-fi
-instance=$(get_instance $instancefs)
-if [ -n "$debug" ]
-then
- exec 3<>$(dirname $0)/../../logs/del$instance.log
-fi
-
-if [ "$iflag" == 1 ]
-then
- printf "Going to destroy $instancefs and its children\n"
- logzfs "start: zfs destroy -r -f $instancefs "
- zfs destroy -r -f $instancefs
- rc=$?
- logzfs "end: zfs destroy -r -f $instancefs "
- if [ $rc -gt 0 ]
- then
- numc=$(zfs list -Hr $instancefs 2> /dev/null| wc -l)
- if [ "$numc" -eq 1 ]
- then
- printf "Trying again to destroy instance fs $instancefs \n" >&2
- zfs destroy -r -f $instancefs
- else
- printf "Failed to destroy instance fs $instancefs, numchildren=$numc\n" >&2
- exit 5
- fi
- fi
-fi
-
-if [ "$uflag" == 1 ]
-then
- printf "Going to destroy $userfs and its children\n"
- logzfs "start: zfs destroy -r -f $userfs"
- zfs destroy -r -f $userfs
- rc=$?
- logzfs "end: zfs destroy -r -f $userfs"
- if [ $rc -gt 0 ]
- then
- numc=$(zfs list -Hr $userfs 2> /dev/null| wc -l)
- if [ "$numc" -eq 1 ]
- then
- printf "Trying again to destroy user fs $userfs \n" >&2
- zfs destroy -r -f $userfs
- else
- printf "Failed to destroy user fs $userfs, numchildren=$numc\n" >&2
- exit 5
- fi
- fi
-fi
-
-exit 0
diff --git a/scripts/storage/zfs/iscsi/get_iqn.sh b/scripts/storage/zfs/iscsi/get_iqn.sh
deleted file mode 100755
index e0403d021a6..00000000000
--- a/scripts/storage/zfs/iscsi/get_iqn.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/env bash
-# $Id: get_iqn.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/get_iqn.sh $
-# get_iqn.sh -- return iSCSI iqn of initiator (Linux) or target (OpenSolaris)
-
-usage() {
- printf "Usage: %s \n" $(basename $0) >&2
-}
-
-linux() {
- uname -a | grep "Linux" > /dev/null
- return $?
-}
-
-opensolaris() {
- uname -a | grep "SunOS" > /dev/null
- return $?
-}
-
-hosted() {
- uname -a | grep "101b" > /dev/null
- return $?
-}
-
-if [ $# -ne 0 ]
-then
- usage
- exit 1
-fi
-
-if linux
-then
- initiator_iqn=$(cat /etc/iscsi/initiatorname.iscsi | cut -d'=' -f2)
- printf "%s\n" $initiator_iqn
- exit 0
-fi
-
-if opensolaris && hosted
-then
- printf "unique_iqn_per_zvol\n"
- exit 0
-fi
-
-if opensolaris
-then
- tgt_iqn=$(itadm list-target | tail -1 | awk '{print $1}')
- printf "%s\n" $tgt_iqn
- exit 0
-fi
-
-printf "Unexpected operating system!\n" >&2
-exit 2
\ No newline at end of file
diff --git a/scripts/storage/zfs/iscsi/listvmdisk.sh b/scripts/storage/zfs/iscsi/listvmdisk.sh
deleted file mode 100755
index bca7518086c..00000000000
--- a/scripts/storage/zfs/iscsi/listvmdisk.sh
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/usr/bin/env bash
-# $Id: listvmdisk.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/listvmdisk.sh $
-# listvmdisk.sh -- list disks of a VM (iscsi mode)
-# Bugs: does not handle hexadecimal numbers. Decimal only!
-
-usage() {
- printf "Usage: %s: -i [-r | -w | -d ] \n" $(basename $0) >&2
-}
-
-path_and_iqn() {
- local ifs=$1
- local pattern=$2
-
- local diskvol=$(zfs list -r -H -o name -t volume $ifs | grep $pattern)
- if [ "$diskvol" != "" ]
- then
- local tgtname=$(iscsitadm list target $diskvol | grep Name | awk '{print $3}')
- fi
- if [ $? -gt 0 ]
- then
- return 6
- fi
- if [ "$diskvol" != "" -a "$tgtname" != "" ]
- then
- printf "$diskvol,$tgtname\n"
- return 0
- fi
- return 0
-}
-
-#set -x
-
-iflag=
-rflag=
-dflag=
-wflag=
-disknum=
-instancefs=
-
-while getopts 'i:d:rw' OPTION
-do
- case $OPTION in
- i) iflag=1
- instancefs="$OPTARG"
- ;;
- d) dflag=1
- disknum="$OPTARG"
- ;;
- r) rflag=1
- ;;
- w) wflag=1
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$iflag" != "1" -a "$rflag$dflag$wflag" != "1" ]
-then
- usage
- exit 2
-fi
-
-if [ ${instancefs:0:1} == / ]
-then
- instancefs=${instancefs:1}
-fi
-
-
-if [[ $(zfs get -H -o value -p type $instancefs) != filesystem ]]
-then
- printf "Supplied instance fs doesn't exist\n" >&2
- exit 1
-fi
-
-
-if [ "$rflag" == 1 ]
-then
- path_and_iqn $instancefs "root"
- exit $?
-fi
-
-if [ "$wflag" == 1 ]
-then
- path_and_iqn $instancefs "swap"
- exit $?
-fi
-
-if [ "$dflag" == 1 ]
-then
- if [[ $disknum -eq 0 ]]
- then
- path_and_iqn $instancefs "root"
- else
- path_and_iqn $instancefs "datadisk"$disknum
- fi
-
- exit $?
-fi
-exit 0
diff --git a/scripts/storage/zfs/iscsi/listvmdisksize.sh b/scripts/storage/zfs/iscsi/listvmdisksize.sh
deleted file mode 100755
index ce9834cac81..00000000000
--- a/scripts/storage/zfs/iscsi/listvmdisksize.sh
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/usr/bin/env bash
-# $Id: listvmdisksize.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/listvmdisksize.sh $
-# listvmdisksize.sh -- list disk sizes of a VM (iscsi mode)
-#
-
-usage() {
- printf "Usage: %s: -d [-t | -a ] \n" $(basename $0) >&2
-}
-
-
-#####################################################################
-# Evaluate a floating point number expression.
-function float_eval()
-{
- local stat=0
- local result=0.0
- if [[ $# -gt 0 ]]; then
- result=$(echo "scale=0; $*" | bc 2>/dev/null)
- stat=$?
- if [[ $stat -eq 0 && -z "$result" ]]; then stat=1; fi
- fi
- echo $result
- return $stat
-}
-
-kmg_to_number()
-{
- local s=$1;
- local size=${s:0:$((${#s}-1))}
- local result=$1;
- local suffix=${s:(-1)}
- case $suffix in
- G) result=$(float_eval "$size*1024*1024*1024")
- ;;
- M) result=$(float_eval "$size*1024*1024")
- ;;
- K) result=$(float_eval "$size*1024")
- ;;
- esac
-
- result=$(echo $result | cut -d"." -f1) #strip out decimal precision
- echo $result
-}
-
-#set -x
-
-aflag=
-tflag=
-aflag=
-diskfs=
-
-while getopts 'd:ta' OPTION
-do
- case $OPTION in
- d) dflag=1
- diskfs="$OPTARG"
- ;;
- t) tflag=1
- ;;
- a) aflag=1
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$dflag" != "1" -a "$tflag$aflag" != "1" ]
-then
- usage
- exit 2
-fi
-
-if [ ${diskfs:0:1} == / ]
-then
- diskfs=${diskfs:1}
-fi
-
-
-if [[ $(zfs get -H -o value -p type $diskfs) != volume ]]
-then
- printf "Supplied disk volume doesn't exist\n" >&2
- exit 1
-fi
-
-
-if [ "$aflag" == 1 ]
-then
- used=$(zfs list -H -o used -t volume $diskfs)
- if [ $? -gt 0 ]
- then
- exit 5
- fi
- result=$(kmg_to_number $used)
- printf "$result\n"
- exit 0
-fi
-
-if [ "$tflag" == 1 ]
-then
- total=$(zfs list -H -o volsize $diskfs)
- if [ $? -gt 0 ]
- then
- exit 5
- fi
- result=$(kmg_to_number $total)
- printf "$result\n"
- exit 0
-fi
-
-exit 0
diff --git a/scripts/storage/zfs/iscsi/listvmtmplt.sh b/scripts/storage/zfs/iscsi/listvmtmplt.sh
deleted file mode 100755
index a6c9433d13a..00000000000
--- a/scripts/storage/zfs/iscsi/listvmtmplt.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/env bash
-# $Id: listvmtmplt.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/listvmtmplt.sh $
-# listtmplt.sh -- list templates under a directory
-
-usage() {
- printf "Usage: %s: -r \n" $(basename $0) >&2
-}
-
-
-#set -x
-
-rflag=
-rootdir=
-
-while getopts 'r:' OPTION
-do
- case $OPTION in
- r) rflag=1
- rootdir="$OPTARG"
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$rflag" != "1" ]
-then
- usage
- exit 2
-fi
-
-if [ ${rootdir:0:1} == / ]
-then
- rootdir=${rootdir:1}
-fi
-
-
-if [[ $(zfs get -H -o value -p type $rootdir) != filesystem ]]
-then
- printf "Supplied root directory fs doesn't exist\n" >&2
- exit 1
-fi
-
-for i in $(find /$rootdir -name template.properties -size +0 );
-do
- d=$(dirname $i)
- echo ${d#/} #remove leading slash
-done
-
-exit 0
diff --git a/scripts/storage/zfs/iscsi/lu_info.sh b/scripts/storage/zfs/iscsi/lu_info.sh
deleted file mode 100755
index 7245963d374..00000000000
--- a/scripts/storage/zfs/iscsi/lu_info.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env bash
-# $Id: lu_info.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/lu_info.sh $
-
-iscsitadm list target $1
diff --git a/scripts/storage/zfs/iscsi/lu_share.sh b/scripts/storage/zfs/iscsi/lu_share.sh
deleted file mode 100755
index bfda31310fd..00000000000
--- a/scripts/storage/zfs/iscsi/lu_share.sh
+++ /dev/null
@@ -1 +0,0 @@
-# $Id: lu_share.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/lu_share.sh $
diff --git a/scripts/storage/zfs/iscsi/managesnapshot.sh b/scripts/storage/zfs/iscsi/managesnapshot.sh
deleted file mode 100755
index e96466bebf4..00000000000
--- a/scripts/storage/zfs/iscsi/managesnapshot.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/usr/bin/env bash
-# $Id: managesnapshot.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/managesnapshot.sh $
-# managesnapshot.sh -- manage snapshots (create, destroy, rollback)
-#
-
-usage() {
- printf "Usage: %s: -c -n \n" $(basename $0) >&2
- printf "Usage: %s: -d -n \n" $(basename $0) >&2
- printf "Usage: %s: -r -n \n" $(basename $0) >&2
- exit 2
-}
-
-create_snapshot() {
- local fspath=$1
- local snapshotname=$2
-
- zfs snapshot -r $fspath@$snapshotname
- if [ $? -gt 0 ]
- then
- printf "***Failed to create snapshot $snapshotname for path $fspath\n" >&2
- return 5
- fi
-}
-
-destroy_snapshot() {
- local fspath=$1
- local snapshotname=$2
-
- zfs destroy -rRf $fspath@$snapshotname
- if [ $? -gt 0 ]
- then
- printf "***Failed to destroy snapshot $snapshotname for path $fspath\n" >&2
- return 6
- fi
-}
-
-rollback_snapshot() {
- local fspath=$1
- local snapshotname=$2
-
- zfs rollback -r $fspath/datadisk1@$snapshotname
- zfs rollback -r $fspath/rootdisk@$snapshotname
- zfs rollback -r $fspath@$snapshotname
- if [ $? -gt 0 ]
- then
- printf "***Failed to rollback to snapshot $snapshotname for path $fspath\n" >&2
- return 7
- fi
-}
-
-#set -x
-
-cflag=
-dflag=
-rflag=
-nflag=
-pathval=
-snapshot=
-
-while getopts 'c:d:r:n:' OPTION
-do
- case $OPTION in
- c) cflag=1
- pathval="$OPTARG"
- ;;
- d) dflag=1
- pathval="$OPTARG"
- ;;
- r) rflag=1
- pathval="$OPTARG"
- ;;
- n) nflag=1
- snapshot="$OPTARG"
- ;;
- ?) usage
- ;;
- esac
-done
-
-if [ "$nflag" != "1" ]
-then
- usage
-fi
-
-if [ "$cflag$dflag$rflag" != "1" ]
-then
- printf "***Specify one of -c (create), -d (destroy), or -r (rollback) and a path for the target snapshot\n" >&2
- usage
-fi
-
-if [ "$cflag" == "1" ]
-then
- create_snapshot $pathval $snapshot
- exit $?
-elif [ "$dflag" == "1" ]
-then
- destroy_snapshot $pathval $snapshot
- exit $?
-elif [ "$rflag" == "1" ]
-then
- rollback_snapshot $pathval $snapshot
- exit $?
-fi
-
-exit 0
diff --git a/scripts/storage/zfs/iscsi/managevolume.sh b/scripts/storage/zfs/iscsi/managevolume.sh
deleted file mode 100755
index c7c294124d7..00000000000
--- a/scripts/storage/zfs/iscsi/managevolume.sh
+++ /dev/null
@@ -1,163 +0,0 @@
-#!/usr/bin/env bash
-# $Id: managevolume.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/managevolume.sh $
-# modifyvolume.sh -- add or delete a disk volume
-#
-
-usage() {
- echo "Usage: modifydisk.sh -f -p -s [-d ] \n"
-}
-
-check_params() {
- # The folder, path, and size must be passed in
- if [ "$fflag$pflag$sflag" != "111" ]
- then
- return 1
- else
- return 0
- fi
-}
-
-cleanup_and_exit_if_error() {
- local return_code=$1
- local msg=$2
- local path=$3
-
- if [ $return_code -gt 0 ]
- then
- delete_disk $path
- exit_if_error $return_code "$msg"
- fi
-}
-
-exit_if_error() {
- local return_code=$1
- local msg=$2
-
- if [ $return_code -gt 0 ]
- then
- printf "${msg}\n"
- exit 1
- fi
-}
-
-make_folder() {
- local folder=$1
-
- if [ ! -d ${folder} ]
- then
- mkdir -p ${folder}
- fi
-}
-
-check_disk() {
- local folder=$1
- local path=$2
-
- make_folder $folder
-
- if [ -f $path ]
- then
- return 1
- else
- return 0
- fi
-}
-
-delete_disk() {
- local path=$1
-
- if [ -f $path ]
- then
- rm $path
- fi
-
- return 0
-}
-
-create_disk() {
- local path=$1
- local size=$2
-
- size=$(convert_size_to_gb $size)
-
- if [ $? -gt 0 ]
- then
- return 1
- fi
-
- qemu-img create -f qcow2 $path $size
-
- return $?
-}
-
-convert_size_to_gb() {
- local size=$1
-
- suffix=${size:(-1)}
- case $suffix in
- G)
- ;;
- [0-9]) size=${size}G
- ;;
- *) printf "Error in disk size: expect G as a suffix or no suffix\n"
- return 1
- ;;
- esac
-
- echo $size
- return 0
-}
-
-# set -x
-
-fflag=0
-pflag=0
-sflag=0
-dflag=0
-
-while getopts 'f:p:s:d:' OPTION
-do
- case $OPTION in
- f) fflag=1
- folder="$OPTARG"
- ;;
- p) pflag=1
- path="$OPTARG"
- ;;
- s) sflag=1
- size="$OPTARG"
- ;;
- d) dflag=1
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-# Check all parameters
-check_params
-exit_if_error $? "$(usage)"
-
-if [ "$dflag" == "0" ]
-then
- # Add the volume
-
- # Create the folder if necessary, and make sure there is no existing disk there
- check_disk $folder $path
- cleanup_and_exit_if_error $? "Failed to create disk at $path; path already exists." $path
-
- # Create the disk
- create_disk $path $size
- cleanup_and_exit_if_error $? "Failed to create disk at $path of size $datadisksize." $path
-
-else
- # Delete the volume
-
- delete_disk $path
-
-fi
-
-exit 0
-
-
diff --git a/scripts/storage/zfs/iscsi/showdisks.sh b/scripts/storage/zfs/iscsi/showdisks.sh
deleted file mode 100755
index c65bfc87dfe..00000000000
--- a/scripts/storage/zfs/iscsi/showdisks.sh
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/usr/bin/env bash
-# $Id: showdisks.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/showdisks.sh $
-# mapiscsi.sh -- list of active iscsi sessions and the corresponding VM
-#
-
-usage() {
- printf "Usage: %s \n" $(basename $0) >&2
- exit 2
-}
-
-get_disktype () {
- local vmdisk=$1
- if [[ $vmdisk =~ ^.*root.*$ ]]
- then
- echo "root";
- return 0
- fi
- if [[ $vmdisk =~ ^.*swap.*$ ]]
- then
- echo "swap";
- return 0
- fi
- if [[ $vmdisk =~ ^.*datadisk.*$ ]]
- then
- echo "datadisk";
- return 0
- fi
-}
-
-mirror_state0() {
- local vmname=$1
- local disktype=$2
- mirr=$(ls -l /dev/md/ | grep $vmname-$disktype | awk '{print $(NF-2)}')
- mdadm --query /dev/md/$mirr &> /dev/null
- if [ $? -ne 0 -o "$mirr" == "" ]
- then
- state="Not mirrored"
- else
- state=$(mdadm --detail /dev/md/$mirr | grep "State : " | awk '{print $3 $4 $5}')
- fi
- echo $state
-}
-
-mirror_state1() {
- local vmname=$1
- local disktype=$2
- local disk=$3
- mirr=$(ls -l /dev/md/ | grep $vmname-$disktype | awk '{print $(NF-2)}')
- mdadm --query /dev/md/$mirr &> /dev/null
- if [ $? -eq 0 -a "$mirr" != "" ]
- then
- state=$(mdadm --detail /dev/md/$mirr | grep "$disk" | awk '{print $(NF-2), $(NF-1)}')
- fi
- echo $state
-}
-
-if [ "$1" == "" ]
-then
- usage
-fi
-vmname=$1
-
-if ! xm list | grep -w $vmname > /dev/null
-then
- printf "%s: vm $vmname not found\n" $(basename $0)
- exit 2
-fi
-
-#set -x
-
-disks=$(ls -l /dev/disk/by-vm | grep $vmname | awk '{print $NF}')
-for d in $disks
-do
- vmdisk=$(ls -l /dev/disk/by-vm | grep -w $d | awk '{print $(NF-2)}')
- disktype=$(get_disktype $vmdisk)
- lasttoken=$(echo $vmdisk | awk -F"-" '{print $NF}')
- case "$lasttoken" in
- "root");;
- "swap");;
- "[0-9]") ;;
- *) vmdisk=${vmdisk%-*} #strip the ip address of storage host;;
- esac
-
- if [[ $vmdisk =~ ^.*datadisk.*$ ]]; then vmdisk=${vm%-*}; fi
- disk=$d
- d=${d##*/}
- iqn=$(ls -l /dev/disk/by-path | grep -w $d | awk '{print $(NF-2)}')
- ip=$(echo $iqn | awk -F: '{print $1}')
- ip=${ip#ip-}
-
- mirrstate="[$(mirror_state0 $vmname $disktype)]"
- diskstate="[$(mirror_state1 $vmname $disktype $disk)]"
-
- echo $vmname $disktype $disk $ip $mirrstate $diskstate
-
-
-done
-exit 0
-
diff --git a/scripts/storage/zfs/iscsi/upgradevmdisk.sh b/scripts/storage/zfs/iscsi/upgradevmdisk.sh
deleted file mode 100755
index 8075aefb7ed..00000000000
--- a/scripts/storage/zfs/iscsi/upgradevmdisk.sh
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/env bash
-# $Id: upgradevmdisk.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/iscsi/upgradevmdisk.sh $
-# upgradevmdisk.sh -- upgrade size of disks of a VM (iscsi mode)
-
-usage() {
- printf "Usage: %s: -f -d \n" $(basename $0) >&2
-}
-
-upgrade_disk() {
- local ifs=$1
- local disk_size=$2
-
- zfs set volsize=${disk_size}M $ifs
-
- if [ $? -gt 0 ]
- then
- return 6
- fi
-
- return 0
-}
-
-#set -x
-
-vflag=
-dflag=
-disksize=
-instancefs=
-
-while getopts 'v:d:' OPTION
-do
- case $OPTION in
- v) vflag=1
- instancefs="$OPTARG"
- ;;
- d) dflag=1
- disksize="$OPTARG"
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$vflag" != "1" -a "$dflag" != "1" ]
-then
- usage
- exit 2
-fi
-
-if [ ${instancefs:0:1} == / ]
-then
- instancefs=${instancefs:1}
-fi
-
-
-if [[ $(zfs get -H -o value -p type $instancefs) != volume ]]
-then
- printf "Supplied instance fs doesn't exist\n" >&2
- exit 1
-fi
-
-if [ "$dflag" == 1 ]
-then
- if [[ $disksize -gt 0 ]]
- then
- upgrade_disk $instancefs $disksize
- fi
-
- exit $?
-fi
-exit 0
diff --git a/scripts/storage/zfs/nfs/createvm.sh b/scripts/storage/zfs/nfs/createvm.sh
deleted file mode 100755
index 9d4fba6f0a0..00000000000
--- a/scripts/storage/zfs/nfs/createvm.sh
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/usr/bin/env bash
-# $Id: createvm.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/nfs/createvm.sh $
-# createvm.sh -- create a vm image directory by cloning
-#
-
-usage() {
- printf "Usage: %s: -t -d -i -u \n" $(basename $0) >&2
-}
-
-#ensure that the instance fs is mounted within the user fs
-check_valid_userfs() {
- local ifs=$1
- local ufs=$2
- local child=${ifs#$ufs}
- if [ ${#child} -eq $(( ${#ifs}-${#ufs} )) ]
- then
- return 0
- else
- printf "instance fs $ifs is not contained within user fs $ufs. Bailing\n" >&2
- exit 3;
- fi
-}
-
-get_latest_snapshot() {
- local fs=$1
- snap=$(zfs list -r -H -o name -S creation -t snapshot $fs| head -1)
- if [ -z $snap ]
- then
- return 1
- fi
- echo $snap
- return 0
-}
-
-clone_contained_datadisks() {
- local templatefs=$1
- local instancefs=$2
- for diskfs in $(find /$templatefs -type d | grep datadisk)
- do
- diskfs=${diskfs:1} #strip out leading slash
- disksnap=$(get_latest_snapshot $diskfs)
- if [ -z $disksnap ]
- then
- printf "No snapshots exist of disk filesystem $diskfs..bailing\n" >&2
- return 6
- fi
- disk=$(basename $disksnap | cut -f1 -d'@')
- disk="$instancefs/$disk"
- printf "Cloning datadisk $disksnap to $disk\n" >&2
- zfs clone $disksnap $disk
- #printf "disksnap=$disksnap target=$disk\n"
- if [ $? -gt 0 ]
- then
- printf "Failed to clone datadisk $disksnap\n" >&2
- return 7
- fi
- done
-}
-
-#set -x
-
-tflag=
-iflag=
-uflag=
-dflag=
-
-while getopts 't:i:u:d:' OPTION
-do
- case $OPTION in
- t) tflag=1
- templatefs="$OPTARG"
- ;;
- i) iflag=1
- instancefs="$OPTARG"
- ;;
- u) uflag=1
- userfs="$OPTARG"
- ;;
- d) dflag=1
- diskfs="$OPTARG"
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$tflag$iflag$uflag" != "111" ]
-then
- usage
- exit 2
-fi
-
-#if user has provided leading slash, strip it out
-if [ ${userfs:0:1} == / ]
-then
- userfs=${userfs:1}
-fi
-
-if [ ${templatefs:0:1} == / ]
-then
- templatefs=${templatefs:1}
-fi
-
-if [ ${instancefs:0:1} == / ]
-then
- instancefs=${instancefs:1}
-fi
-
-if [ -n "$diskfs" ]
-then
- if [ ${diskfs:0:1} == / ]
- then
- diskfs=${diskfs:1}
- fi
-fi
-
-check_valid_userfs $instancefs $userfs
-
-#if userfs doesn't exist, create it
-if [ ! -d /$userfs ]
-then
- zfs create $userfs
- if [ $? -gt 0 ]
- then
- printf "Failed to create user fs $userfs\n" >&2
- exit 5
- fi
-fi
-
-#if user has provided the exact snapshot of the template fs, use it,
-#else get the latest snapshot
-tsnap=$(echo $templatefs | cut -f2 -d'@')
-if [ $tsnap == $templatefs ]
-then
- tsnap=$(get_latest_snapshot $templatefs)
- if [ -z $tsnap ]
- then
- printf "No snapshots exist of filesystem $templatefs..bailing\n" >&2
- exit 4
- fi
-else
- tsnap=$templatefs
- templatefs=$(echo $templatefs | cut -f1 -d'@') #strip out snap version
-fi
-
-if [ -n "$diskfs" ]
-then
- disksnap=$(get_latest_snapshot $diskfs)
- if [ -z $disksnap ]
- then
- printf "No snapshots exist of disk filesystem $diskfs..bailing\n" >&2
- exit 6
- fi
-fi
-
-#Clone root disk and associated files
-printf "Cloning root disk $tsnap to $instancefs\n" >&2
-zfs clone $tsnap $instancefs
-if [ $? -gt 0 ]
-then
- printf "Failed to clone root disk $snap\n" >&2
- exit 5
-fi
-
-#Clone datadisk
-if [ -n "$diskfs" ]
-then
- zfs clone $disksnap $instancefs/datadisk1
-else
- clone_contained_datadisks $templatefs $instancefs
-fi
-
-exit 0
diff --git a/scripts/storage/zfs/nfs/delvm.sh b/scripts/storage/zfs/nfs/delvm.sh
deleted file mode 100755
index 1b1032cfa8c..00000000000
--- a/scripts/storage/zfs/nfs/delvm.sh
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/usr/bin/env bash
-# $Id: delvm.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/nfs/delvm.sh $
-# delvm.sh -- delete a cloned image used for a vm
-#
-
-usage() {
- printf "Usage: %s: -i -u \n" $(basename $0) >&2
-}
-
-
-#set -x
-
-iflag=
-uflag=
-userfs=
-instancefs=
-
-while getopts 'i:u:' OPTION
-do
- case $OPTION in
- i) iflag=1
- instancefs="$OPTARG"
- ;;
- u) uflag=1
- userfs="$OPTARG"
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$iflag$uflag" != "1" -a "$iflag$uflag" != "11" ]
-then
- usage
- exit 2
-fi
-
-if [[ -n $instancefs && ${instancefs:0:1} == / ]]
-then
- instancefs=${instancefs:1}
-fi
-
-if [[ -n $userfs && ${userfs:0:1} == / ]]
-then
- userfs=${userfs:1}
-fi
-
-if [[ "$iflag" == 1 && $(zfs get -H -o value -p type $instancefs) != filesystem ]]
-then
- printf "Supplied instance fs doesn't exist\n" >&2
- exit 1
-fi
-
-if [[ "$uflag" == 1 && $(zfs get -H -o value -p type $userfs) != filesystem ]]
-then
- printf "Supplied user fs doesn't exist\n" >&2
- exit 1
-fi
-
-if [ "$iflag" == 1 ]
-then
- zfs destroy -r $instancefs
- if [ $? -gt 0 ]
- then
- printf "Failed to destroy instance fs\n" >&2
- exit 5
- fi
-fi
-
-if [ "$uflag" == 1 ]
-then
- zfs destroy -r $userfs
- if [ $? -gt 0 ]
- then
- printf "Failed to destroy user fs\n" >&2
- exit 5
- fi
-fi
-
-exit 0
diff --git a/scripts/storage/zfs/nfs/listclones.sh b/scripts/storage/zfs/nfs/listclones.sh
deleted file mode 100755
index 233640e7461..00000000000
--- a/scripts/storage/zfs/nfs/listclones.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/env bash
-# $Id: listclones.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/nfs/listclones.sh $
-# listclones.sh -- list all cloned filesystems under a parent fs
-#
-
-usage() {
- printf "Usage: %s: -p \n" $(basename $0) >&2
-}
-
-
-#set -x
-
-pflag=
-
-while getopts 'p:' OPTION
-do
- case $OPTION in
- p) pflag=1
- parentFs="$OPTARG"
- ;;
- esac
-done
-
-if [ "$pflag" != "1" ]
-then
- usage
- exit 2
-fi
-
-
-zfs list -H -r -o name,origin $parentFs | awk '$2 != "-" {print $1}' | grep -v datadisk
diff --git a/scripts/storage/zfs/nfs/listvmdisk.sh b/scripts/storage/zfs/nfs/listvmdisk.sh
deleted file mode 100755
index 1d1cc09a04c..00000000000
--- a/scripts/storage/zfs/nfs/listvmdisk.sh
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/usr/bin/env bash
-# $Id: listvmdisk.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/nfs/listvmdisk.sh $
-# listvmdisk.sh -- list disks of a VM
-# Bugs: does not handle hexadecimal numbers. Decimal only!
-
-usage() {
- printf "Usage: %s: -i [-r | -d ] \n" $(basename $0) >&2
-}
-
-
-#set -x
-
-iflag=
-rflag=
-dflag=
-disknum=
-instancefs=
-
-while getopts 'i:d:r' OPTION
-do
- case $OPTION in
- i) iflag=1
- instancefs="$OPTARG"
- ;;
- d) dflag=1
- disknum="$OPTARG"
- ;;
- r) rflag=1
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$iflag" != "1" -a "$rflag$dflag" != "1" ]
-then
- usage
- exit 2
-fi
-
-if [ ${instancefs:0:1} == / ]
-then
- instancefs=${instancefs:1}
-fi
-
-
-if [[ $(zfs get -H -o value -p type $instancefs) != filesystem ]]
-then
- printf "Supplied instance fs doesn't exist\n" >&2
- exit 1
-fi
-
-
-if [ "$rflag" == 1 ]
-then
- zfs list -r -H -o name -t filesystem $instancefs | grep -v datadisk
- if [ $? -gt 0 ]
- then
- exit 5
- fi
- exit 0
-fi
-
-if [ "$dflag" == 1 ]
-then
- if [[ $disknum -eq 0 ]]
- then
- zfs list -r -H -o name -t filesystem $instancefs | grep -v datadisk
- else
- zfs list -r -H -o name -t filesystem $instancefs | grep datadisk$disknum
- fi
- if [ $? -gt 0 ]
- then
- exit 0
- fi
- exit 0
-fi
-exit 0
diff --git a/scripts/storage/zfs/nfs/listvmdisksize.sh b/scripts/storage/zfs/nfs/listvmdisksize.sh
deleted file mode 100755
index 83568812218..00000000000
--- a/scripts/storage/zfs/nfs/listvmdisksize.sh
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/usr/bin/env bash
-# $Id: listvmdisksize.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/nfs/listvmdisksize.sh $
-# listvmdisksize.sh -- list disk sizes of a VM
-#
-
-usage() {
- printf "Usage: %s: -d [-t | -a ] \n" $(basename $0) >&2
-}
-
-
-#####################################################################
-# Evaluate a floating point number expression.
-function float_eval()
-{
- local stat=0
- local result=0.0
- if [[ $# -gt 0 ]]; then
- result=$(echo "scale=0; $*" | bc 2>/dev/null)
- stat=$?
- if [[ $stat -eq 0 && -z "$result" ]]; then stat=1; fi
- fi
- echo $result
- return $stat
-}
-
-
-#set -x
-
-aflag=
-tflag=
-aflag=
-diskfs=
-
-while getopts 'd:ta' OPTION
-do
- case $OPTION in
- d) dflag=1
- diskfs="$OPTARG"
- ;;
- t) tflag=1
- ;;
- a) aflag=1
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$dflag" != "1" -a "$tflag$aflag" != "1" ]
-then
- usage
- exit 2
-fi
-
-if [ ${diskfs:0:1} == / ]
-then
- diskfs=${diskfs:1}
-fi
-
-
-if [[ $(zfs get -H -o value -p type $diskfs) != filesystem ]]
-then
- printf "Supplied disk fs doesn't exist\n" >&2
- exit 1
-fi
-
-
-if [ "$aflag" == 1 ]
-then
- used=$(zfs list -H -o used -t filesystem $diskfs)
- if [ $? -gt 0 ]
- then
- exit 5
- fi
- result=$used
- size=${used:0:$((${#used}-1))}
- suffix=${used:(-1)}
- case $suffix in
- G) result=$(float_eval "$size*1024*1024*1024")
- ;;
- M) result=$(float_eval "$size*1024*1024")
- ;;
- K) result=$(float_eval "$size*1024")
- ;;
- esac
-
- result=$(echo $result | cut -d"." -f1) #strip out decimal precision
- printf "$result\n"
- exit 0
-fi
-
-if [ "$tflag" == 1 ]
-then
- result=$(ls -l /$diskfs | grep vmi-root | awk '{print $5}')
- if [ "$result" == "" ]
- then
- result=$(ls -l /$diskfs | grep vmi-data| awk '{print $5}')
- fi
- printf "$result\n"
- exit 0
-fi
-
-exit 0
diff --git a/scripts/storage/zfs/nfs/rundomr.sh b/scripts/storage/zfs/nfs/rundomr.sh
deleted file mode 100755
index f9ee7bd87de..00000000000
--- a/scripts/storage/zfs/nfs/rundomr.sh
+++ /dev/null
@@ -1,196 +0,0 @@
-#!/usr/bin/env bash
-# $Id: rundomr.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/nfs/rundomr.sh $
-# rundomr.sh -- start a domR
-#
-#
-#set -x
-
-usage() {
- printf "Usage: %s: -v -i -m -a -A -p -P -n -N -g -l \n" $(basename $0) >&2
-}
-
-check_vnetd_running() {
- /sbin/lsmod | grep vnet_module > /dev/null
- local module_loaded=$?
- if [[ ( -z $(pidof vnetd) ) && ( $module_loaded -ne 0 ) ]]
- then
- printf 'vnet: Neither userspace daemon running nor kernel module loaded!, not starting vm '"$vmname\n" >&2
- exit 2
- fi
-
-}
-
-# check if ip address is already used
-check_ip() {
- ping -c 1 -n -q $1 > /dev/null
- if [ $? -eq 0 ]
- then
- printf "Error: ip address $1 already in use...exiting\n" >&2
- exit 2
- fi
-}
-
-
-create_vnet () {
- local vnetid=$1
- local bridgeid="vnbr""$vnetid"
- local vnifid="vnif""$vnetid"
- local longvnetid="0000:0000:0000:0000:0000:0000:0000:""$vnetid"
-
- eval "$2=$bridgeid"
-
- # Create the vnet even if it already exists. /usr/sbin/vn operation is
- # idempotent
- vn vnet-create -b ${bridgeid} ${longvnetid} &> /dev/null
-
- #echo $bridgeid $vnifid $longvnetid
- return 0
-}
-
-
-vflag=
-iflag=
-mflag=
-aflag=
-gflag=
-lflag=
-nflag=
-Aflag=
-dflag=
-bflag=
-pflag=
-Iflag=
-Nflag=
-dnsoptions=
-xenbr=
-
-while getopts 'v:i:m:a:A:g:l:n:d:b:p:I:N:' OPTION
-do
- case $OPTION in
- v) vflag=1
- vnetid="$OPTARG"
- ;;
- i) iflag=1
- eth1ip="$OPTARG"
- ;;
- m) mflag=1
- ram="$OPTARG"
- ;;
- a) aflag=1
- eth0mac="$OPTARG"
- ;;
- A) Aflag=1
- eth1mac="mac=$OPTARG"
- ;;
- g) gflag=1
- gateway="$OPTARG"
- ;;
- n) nflag=1
- eth1mask="$OPTARG"
- ;;
- l) lflag=1
- vmname="$OPTARG"
- ;;
- d) dflag=1
- dnsoptions="$OPTARG"
- ;;
- p) pflag=1
- eth2mac="$OPTARG"
- ;;
- I) Iflag=1
- eth2ip="$OPTARG"
- ;;
- N) Nflag=1
- eth2mask="$OPTARG"
- ;;
- b) bflag=1
- xenbr="$OPTARG"
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-#-d & -b is optional
-if [ "$Aflag$vflag$mflag$iflag$aflag$nflag$gflag$lflag" != "11111111" ]
-then
- usage
- exit 2
-fi
-
-shift $(($OPTIND - 1))
-imagedir=$1
-
-if [ -z $imagedir ]
-then
- usage
- exit 2
-fi
-
-
-if xm list $vmname &>/dev/null
-then
- printf "Error: domR $vmname already exists\n" >&2
- exit 2
-fi
-
-#make sure vnetd is running
-check_vnetd_running
-
-# grab the kernel, bootloader and disk images
-kernel="$imagedir/"$(ls $imagedir | grep vmlinuz)
-ramdisk="$imagedir/"$(ls $imagedir | grep initrd)
-rootdisk="$imagedir/"$(ls $imagedir | grep vmi-root)
-swapdisk="$imagedir/"$(ls $imagedir | grep swap)
-
-if [ "$rootdisk" == "$imagedir/" ]
-then
- printf "Error: No root disk found\nVM $vmname not started\n" >&2
- exit 2
-fi
-
-
-if [ "$kernel" == "$imagedir/" ] || [ "$ramdisk" == "$imagedir/" ]
-then
- printf "Could not find kernel and initrd images, exiting\n" >&2
- exit 2
-fi
-
-#ensure no ip address clash
-check_ip $eth1ip
-
-
-
-# Create the vnet locally if not already created
-bridge=""
-if ! create_vnet "$vnetid" bridge ; then
- printf "Failed to create vnet, exiting\n" >&2
- exit 5
-fi
-
-eth2br=
-if [ -n "$xenbr" ]
-then
- eth2br=",bridge=$xenbr"
-fi
-#echo $eth2br
-
-# create the domR. Pass eth1 ip configuration in the "extra" flag
-xm new /dev/null kernel="$kernel" name="$vmname" disk="tap:aio:$rootdisk,xvda1,w" disk="tap:aio:$swapdisk,xvda2,w" ramdisk="$ramdisk" memory=$ram vif="mac=$eth0mac,bridge=$bridge" vif="$eth1mac,bridge=eth0" vif="mac=$eth2mac$eth2br" root="/dev/xvda1 ro" ip="$eth1ip" extra="fastboot eth1ip=$eth1ip eth1mask=$eth1mask eth2ip=$eth2ip eth2mask=$eth2mask gateway=$gateway $dnsoptions"
-
-
-if [ $? -gt 0 ]; then
- exit 10
-fi
-
-#Kick off the vm
-xm start $vmname
-
-if [ $? -gt 0 ]; then
- exit 20
-fi
-
-exit 0
-
-
diff --git a/scripts/storage/zfs/nfs/runvm.sh b/scripts/storage/zfs/nfs/runvm.sh
deleted file mode 100755
index d989f5952b0..00000000000
--- a/scripts/storage/zfs/nfs/runvm.sh
+++ /dev/null
@@ -1,304 +0,0 @@
-#!/usr/bin/env bash
-# $Id: runvm.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/nfs/runvm.sh $
-# runvm.sh -- start a vm from a directory containing the kernel and os images
-#
-#
-
-usage() {
- printf "Usage: %s: -v -i -m -a -g -c -w -l -n <# cores> -u \n" $(basename $0) >&2
-}
-
-check_vnetd_running() {
- /sbin/lsmod | grep vnet_module > /dev/null
- local module_loaded=$?
- if [[ ( -z $(pidof vnetd) ) && ( $module_loaded -ne 0 ) ]]
- then
- printf 'vnet: Neither userspace daemon running nor kernel module loaded!, not starting vm '"$vmname\n" >&2
- exit 2
- fi
-
-}
-
-is_xen_3_3 () {
- local a;
- local b;
- a=$(xm info | grep xen_minor | cut -d":" -f2);
- b=$(echo $a)
- if [ $b -lt 3 ]
- then
- return 1
- fi
-
- return 0
-}
-
-
-get_dom0_ip () {
- if ifconfig eth0 &> /dev/null;
- then
- eval "$1=$(ifconfig eth0 | awk '/inet addr/ {split ($2,A,":"); print A[2]}')"
- return 0
- elif ifconfig eth1 &> /dev/null;
- then
- eval "$1=$(ifconfig eth1 | awk '/inet addr/ {split ($2,A,":"); print A[2]}')"
- return 0;
- fi
- return 1;
-}
-
-create_vnet () {
- local vnetid=$1
- local bridgeid="vnbr""$vnetid"
- local vnifid="vnif""$vnetid"
- local longvnetid="0000:0000:0000:0000:0000:0000:0000:""$vnetid"
-
- eval "$2=$bridgeid"
-
- # Create the vnet even if it already exists. /usr/sbin/vn operation is
- # idempotent
- vn vnet-create -b ${bridgeid} ${longvnetid} &> /dev/null
-
- #echo $bridgeid $vnifid $longvnetid
- return 0
-}
-
-
-# check if gateway domain is up and running
-check_gw() {
- ping -c 1 -n -q $1 > /dev/null
- if [ $? -gt 0 ]
- then
- sleep 1
- ping -c 1 -n -q $1 > /dev/null
- fi
- return $?;
-}
-
-#Append an entry into dhcp hosts file and knock the dhcp server on its head
-add_dhcp_entry() {
- local gw=$1
- local mac=$2
- local ip=$3
- local vm=$4
- ssh -o StrictHostKeyChecking=no -i ./id_rsa root@$gw "/root/edithosts.sh $mac $ip $vm" >/dev/null
- if [ $? -gt 0 ]
- then
- $5=1
- return 1
- fi
- return 0
-}
-
-#set -x
-
-vflag=
-iflag=
-mflag=
-aflag=
-gflag=
-lflag=
-cflag=
-vcpus=0
-cpucap=0
-vncpwd="password"
-
-while getopts 'v:i:m:a:g:l:c:n:u:w:' OPTION
-do
- case $OPTION in
- v) vflag=1
- vnetid="$OPTARG"
- ;;
- i) iflag=1
- ipaddr="$OPTARG"
- ;;
- m) mflag=1
- ram="$OPTARG"
- ;;
- a) aflag=1
- macaddr="$OPTARG"
- ;;
- g) gflag=1
- gateway="$OPTARG"
- ;;
- l) lflag=1
- vmname="$OPTARG"
- ;;
- c) cflag=1
- vncconsole="$OPTARG"
- ;;
- w) wflag=1
- vncpwd="$OPTARG"
- ;;
- n) nflag=1
- vcpus="$OPTARG"
- ;;
- u) uflag=1
- cpucap="$OPTARG"
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$vflag$mflag$iflag$aflag$gflag$lflag$cflag" != "1111111" ]
-then
- usage
- exit 2
-fi
-
-wincpuopts=""
-if [ "$vcpus" == 0 -a "$cpucap" == 0 ]
-then
- #Windows doesn't like it
- wincpuopts=""
-elif [ "$vcpus" == 0 ]
-then
- wincpuopts="cpu_cap=$cpucap"
-elif [ "$cpucap" == 0 ]
-then
- wincpuopts="vcpus=$vcpus"
-else
- wincpuopts="vcpus=$vcpus cpu_cap=$cpucap"
-fi
-
-
-shift $(($OPTIND - 1))
-imagedir=$1
-
-if [ -z $imagedir ]
-then
- usage
- exit 2
-fi
-if [ "$vmname" == gateway ]
-then
- printf "Error: $vmname is illegal (this is the hostname of domR)\n" >&2
- exit 2
-fi
-if xm list $vmname &>/dev/null
-then
- printf "Error: vm $vmname already exists\n" >&2
- exit 2
-fi
-
-if [ "$ipaddr" == "10.1.1.1" ]
-then
- printf "Error: 10.1.1.1 is the gateway and cannot be assigned to a vm\n" >&2
- exit 2
-fi
-
-#make sure vnetd is running
-check_vnetd_running
-
-# grab the kernel, bootloader and disk images
-kernel="$imagedir/"$(ls $imagedir | grep vmlinuz)
-ramdisk="$imagedir/"$(ls $imagedir | grep initrd)
-rootdisk="$imagedir/"$(ls $imagedir | grep vmi-root)
-swapdisk="$imagedir/"$(ls $imagedir | grep swap)
-datadisk1="$imagedir/"$(ls $imagedir | grep vmi-data1)
-datadisk2="$imagedir/"$(ls $imagedir | grep vmi-data2)
-
-#set -x
-
-if [ "$rootdisk" == "$imagedir/" ]
-then
- printf "Error: No root disk found\nVM $vmname not started\n" >&2
- exit 2
-fi
-if [ "$datadisk1" == "$imagedir/" ]
-then
- #look for subdirs called 'datadisk'
- i=0
- datadisks=( )
- for diskfs in $(find $imagedir -type d | grep datadisk)
- do
- datadisks[$i]=$(find $diskfs | grep vmi-data | head -1) #expect only 1 disk
- let i=i+1
- done
- datadisk1=${datadisks[0]};
- if [ -z "$datadisk1" ]
- then
- printf "Error: No data disk found\nVM $vmname not started\n" >&2
- exit 2
- fi
-fi
-
-linux=0
-windows=0
-pygr=0
-
-if [ "$kernel" != "$imagedir/" ] && [ "$ramdisk" != "$imagedir/" ]
-then
- #Linux kernel
- linux=1
- builder="linux"
- device_model=""
-elif [ -f "$imagedir/pygrub" ]
-then
- #pygrub linux image
- pygr=1
-else
- kernel="/usr/lib/xen/boot/hvmloader"
- windows=1
- builder="hvm"
- device_model="/usr/lib64/xen/bin/qemu-dm"
-fi
-
-#get dom 0 ip to figure out which ip to bind vnc to
-dom0ip=""
-get_dom0_ip dom0ip
-
-# check if gateway domain is up and running
-if ! check_gw "$gateway"
-then
- printf "Unable to ping the gateway domain, exiting\n" >&2
- exit 3
-fi
-
-#Append an entry into dhcp hosts file and knock the dhcp server on its head
-added=0
-if ! add_dhcp_entry $gateway $macaddr $ipaddr $vmname $added
-then
- printf "Unable add dhcp entry on gateway (reason=$added), exiting\n" >&2
- exit 4
-fi
-
-# Create the vnet locally if not already created
-bridge=""
-if ! create_vnet "$vnetid" bridge ; then
- printf "Failed to create vnet, exiting\n" >&2
- exit 5
-fi
-
-#hvm disk prefix for 3.1 is file:, for 3.3 it is tap:aio
-hvmdisk="tap:aio"
-if ! is_xen_3_3
-then
- hvmdisk="file"
-fi
-
-# create the vm (linux)
-if [ $linux -eq 1 ]; then
- xm new /dev/null kernel="$kernel" name="$vmname" disk="tap:aio:$rootdisk,xvda1,w" disk="tap:aio:$swapdisk,xvda2,w" disk="tap:aio:$datadisk1,xvda3,w" ramdisk="$ramdisk" memory=$ram vif="mac=$macaddr,bridge=$bridge" dhcp="dhcp" root="/dev/xvda1 ro" vnc=1 vnclisten="$dom0ip" vfb="type=vnc,vncdisplay=$vncconsole,vncpasswd=$vncpwd" ip="$ipaddr" extra="fastboot" vcpus=$vcpus cpu_cap=$cpucap
-elif [ $pygr -eq 1 ]; then
- xm new /dev/null bootloader="/usr/bin/pygrub" name="$vmname" disk="tap:aio:$rootdisk,sda,w" disk="tap:aio:$datadisk1,sdb,w" memory=$ram vif="mac=$macaddr,bridge=$bridge" dhcp="dhcp" root="/dev/sda ro" vnc=1 vnclisten="$dom0ip" vfb="type=vnc,vncdisplay=$vncconsole,vncpasswd=$vncpwd" ip="$ipaddr" extra="fastboot" vcpus=$vcpus cpu_cap=$cpucap
-else
- #create the vm (windows/HVM)
- xm new /dev/null kernel="$kernel" name="$vmname" disk="$hvmdisk:$rootdisk,hda,w" disk="$hvmdisk:$datadisk1,hdb,w" builder="$builder" device_model="$device_model" memory=$ram vif="mac=$macaddr,bridge=$bridge,type=ioemu" dhcp="dhcp" vnc=1 vnclisten="$dom0ip" vncdisplay="$vncconsole" vncpasswd="$vncpwd" usbdevice="tablet" localtime="yes" $wincpuopts
-fi
-
-if [ $? -gt 0 ]; then
- exit 10
-fi
-
-#Kick off the vm
-xm start $vmname
-
-if [ $? -gt 0 ]; then
- exit 20
-fi
-
-exit 0
-
-
diff --git a/scripts/storage/zfs/nfs/stopvm.sh b/scripts/storage/zfs/nfs/stopvm.sh
deleted file mode 100755
index 4c03e0f5f5c..00000000000
--- a/scripts/storage/zfs/nfs/stopvm.sh
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/usr/bin/env bash
-# $Id: stopvm.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/nfs/stopvm.sh $
-# stopvm.sh -- stop one or all vm
-#
-#
-
-usage() {
- printf "Usage: %s: <-a|-l > \n" $(basename $0) >&2
-}
-
-unmount_disks() {
- disks=$(xm list -l $1 | grep tap:aio | cut -d":" -f3 | cut -d")" -f1)
- imagedirs=$(for d in $disks; do dskdir=$(dirname $d); echo ${#dskdir}:$dskdir; done | sort -n -r | cut -d":" -f2 | uniq)
- for i in $imagedirs
- do
- umount $i
- printf "Unmounted $i result=$?\n"
- done
-}
-
-stop_one_vm() {
- if ! xm list $1 &>/dev/null
- then
- printf "Error: vm $1 does not exist\n" >&2
- return 2
- fi
-
-
- local domId=0;
- if xm list $1 -l | grep domid
- then
- status=($(xm list $1 | grep $1))
- domId=${status[1]};
- fi
-
- if [ $domId -gt 0 ]
- then
- #Try a graceful shutdown
- xm shutdown $1 -w
- unmount_disks $1
- else
- #printf "Domain $1 is already shutdown\n"
- unmount_disks $1
- xm delete $1
- return 0
- fi
-
- if [ $? -gt 0 ]; then
- #Try an undignified shutdown
- xm destroy $1 -w
- unmount_disks $1
- fi
-
- if [ $? -gt 0 ]; then
- #Try an undignified shutdown
- printf "Failed to terminate instance $1\n">&2
- return 20
- else
- xm delete $1
- fi
-
- return 0;
-
-}
-
-stop_all_vms() {
- for i in `xm list | grep -v Domain-0| grep -v Name| awk -F" " '{print $1}'`
- do
- stop_one_vm $i
- done
-
-}
-
-
-
-lflag=
-aflag=
-
-while getopts 'al:' OPTION
-do
- case $OPTION in
- l) lflag=1
- vmname="$OPTARG"
- ;;
- a) aflag=1
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$aflag$lflag" != "1" ]
-then
- usage
- exit 2
-fi
-
-if [ "$aflag" == "1" ]
-then
- stop_all_vms;
- exit 0
-fi
-
-stop_one_vm $vmname
-
-exit 0
-
-
diff --git a/scripts/storage/zfs/zfs_mount_recovery.sh b/scripts/storage/zfs/zfs_mount_recovery.sh
deleted file mode 100755
index 2d4c35adb7d..00000000000
--- a/scripts/storage/zfs/zfs_mount_recovery.sh
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/bin/env bash
-# $Id: zfs_mount_recovery.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/storage/zfs/zfs_mount_recovery.sh $
-# zfs_mount_recovery.sh -- recover from early boot zfs mount failure
-#
-# Usage:
-#
-# zfs_mount_recovery.sh [-f]
-#
-# Command line options:
-#
-# -f Force: Unmount/remount nonroot zfs filesystem even if the
-# system/filesystem/local service is working properly.
-#
-# OpenSolaris
-
-usage() {
- printf "Usage: %s [-f]\n" $(basename $0) >&2
-}
-
-#set -x
-
-if [ $# -gt 2 ]
-then
- usage
- exit 1
-fi
-
-force_flag=
-
-while getopts 'f' OPTION
-do
- case $OPTION in
- f) force_flag=1
- ;;
- *) usage
- exit 2
- ;;
- esac
-done
-
-state=$(svcs -a | grep system/filesystem/local | awk '{print $1}')
-
-if [ "$state" == "online" -a -z "$force_flag" ]
-then
- exit 0
-fi
-
-rootpool_name="rootpool"
-
-pool_name=$(zpool list -H | grep -v $rootpool_name | awk '{print $1}')
-
-if [ -z "$pool_name" ]
-then
- printf "no storage pool configured\n" >&2
- exit 3
-fi
-
-# unmount any mounted child filesystems of affected storage pool
-
-for path in $(zfs mount | grep $pool_name | awk '{print $1}')
-do
- zfs unmount -f $path 2>/dev/null
-done
-
-rm -rf /${pool_name:-zzz}
-
-for path in $(zfs list -H -o name,type | grep ^$pool_name | grep filesystem | awk '{print $1}')
-do
- zfs mount -O $path
-done
-
-svcadm clear system/filesystem/local
-
-exit 0
diff --git a/scripts/vm/storage/iscsi/comstar/iscsi_common.sh b/scripts/vm/storage/iscsi/comstar/iscsi_common.sh
deleted file mode 100755
index 71e9d22c7ad..00000000000
--- a/scripts/vm/storage/iscsi/comstar/iscsi_common.sh
+++ /dev/null
@@ -1,168 +0,0 @@
-#!/usr/bin/env bash
-# $Id: iscsi_common.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/vm/storage/iscsi/comstar/iscsi_common.sh $
-# iscsi_common.sh -- mount volume from ISCSI server
-#
-#
-
-# check if server is up and running
-check_iscsi_server() {
- local pings=1
- while ! ping -c 1 -n -q $1 > /dev/null && [ $pings -ne $2 ]
- do
- let pings=pings+1
- done
-
- printf "##check_iscsi_server: number of pings=%s\n" $pings
- [ $pings -eq $2 ] && return 1
- return 0;
-}
-
-target_iqn() { # either iscsitgtd or comstar
- if echo $1 | grep :lu: >/dev/null
- then
- echo $1 | cut -d':' -f1,2,3
- else
- echo $1
- fi
-}
-
-do_iscsi_login () {
- local t_iqn=$(target_iqn $1)
- local rc=0
- #create a record in the client database
- iscsiadm -m node -T $t_iqn -p $2 -o new
- rc=$?
- if [ $rc -gt 0 ]
- then
- printf "Failed to create ISCSI initiator record for target rc=$rc\n" >&2
- return 6
- fi
- # do not autologin upon restart
- iscsiadm -m node -T $t_iqn -p $2 -o update -n node.startup -v manual
-
- #login to the target
- iscsiadm -m node -T $t_iqn -p $2 -l
- rc=$?
- if [ $rc -gt 0 ]
- then
- printf "Failed to login to target, rc=$rc\n" >&2
- return 7
- fi
-}
-
-
-get_device_links() {
- local n=20
- local dev=
- local host=$1
- local iqn=$2
- local disktype=$3
- while [ -z "$dev" -a $n -gt 0 ]
- do
- sleep 3;
- let n=n-1;
- dev=$(ls -l /dev/disk/by-path/ip-$host*$iqn*| awk '{print $NF}' | awk -F"/" '{print $NF}' | head -1)
- done
-
- if [ $n -eq 0 ]
- then
- printf "****Timed out waiting for $disktype device to register**\n"
- fi
- printf "$dev\n"
-}
-
-do_iscsi_logout() {
- local t_iqn=$(target_iqn $1)
- local rc=0
- if [ "$1" == "" ]
- then
- return $rc
- fi
- iscsiadm -m node -T $t_iqn -u #logout
- rc=$?
- if [ $rc -gt 0 ]
- then
- printf "*****Warning: failed to logout of $1 rc=$rc\n"
- fi
- iscsiadm -m node -T $t_iqn -o delete #delete record from db
- if [ $? -gt 0 ]
- then
- printf "*****Warning: failed to delete iscsi record $1 rc=$rc\n"
- fi
- return $rc
-}
-
-# unmount a local directory and all data disks within
-unmount_all() {
- local rc=0
- local err=0
- local localdir=$1
- local vmname=$2
- local disks=$(ls -l $DISKDIR | grep $vmname | awk '{print $NF}') #/dev/sdb
- for d in $disks ;
- do
- disknum=$(echo $d | awk -F"/" '{print $NF}') #sdb
- tgt=$(ls -l /dev/disk/by-path | grep -w $disknum | awk '{print $(NF-2)}' | grep -v part | cut -d: -f2- | cut -d- -f3-)
- softlink=$(ls -l $DISKDIR |grep $vmname| grep $d | awk '{print $(NF-2)}') #vmname-root or vmname-swap or vmname-data
- rm $DISKDIR/$softlink #delete soft link
- rc=$?
- if [ $rc -gt 0 ]
- then
- printf "*****Warning: failed to delete $DISKDIR/$softlink rc=$rc\n"
- let err=err+1
- fi
- do_iscsi_logout $tgt
- let err=err+$?
- done
-
- #unmount the image filesystem from nfs
- local errmsg=$(umount $localdir 2>&1)
- rc=$?
- if [ $rc -gt 0 ]
- then
- echo $errmsg | grep "not mounted"
- if [ $? -eq 1 ]
- then
- printf "*****Warning: unmount failed rc=$rc\n"
- let err=err+1
- fi
- fi
- rm -fr $localdir
-
- return $err
-}
-
-#find the block device for a particular vm disk
-get_blkdev() {
- local vmname=$1
- local disktype=$2
- local disk=$(ls -l $DISKDIR | grep $vmname-$disktype | awk '{print $NF}') #/dev/sdb
- echo $disk
-}
-
-# unmount an iscsi disk
-unmount_disk() {
- local rc=0
- local err=0
- local vmname=$1
- local disktype=$2
- local disks=$(ls -l $DISKDIR | grep $vmname | grep $disktype | awk '{print $NF}') #/dev/sdb
- for d in $disks ;
- do
- local disknum=$(echo $d | awk -F"/" '{print $NF}') #sdb
- local tgt=$(ls -l /dev/disk/by-path | grep -w $disknum | awk '{print $(NF-2)}' | grep -v part | cut -d: -f2- | cut -d- -f3-)
- local softlink=$(ls -l $DISKDIR |grep $vmname| grep $d | awk '{print $(NF-2)}') #vmname-root or vmname-swap or vmname-data
- rm $DISKDIR/$softlink #delete soft link
- rc=$?
- if [ $rc -gt 0 ]
- then
- printf "*****Warning: failed to delete $DISKDIR/$softlink rc=$rc\n"
- let err=err+1
- fi
- do_iscsi_logout $tgt
- let err=err+$?
- done
- return $err
-}
-
-DISKDIR="/dev/disk/by-vm/"
diff --git a/scripts/vm/storage/iscsi/comstar/mapiscsi.sh b/scripts/vm/storage/iscsi/comstar/mapiscsi.sh
deleted file mode 100755
index b4b35ca6a8c..00000000000
--- a/scripts/vm/storage/iscsi/comstar/mapiscsi.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/env bash
-# $Id: mapiscsi.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/vm/storage/iscsi/comstar/mapiscsi.sh $
-# mapiscsi.sh -- list of active iscsi sessions and the corresponding VM
-#
-# COMSTAR version
-#
-# typical output:
-#
-
-usage() {
- printf "Usage: %s: \n" $(basename $0) >&2
-}
-
-#set -x
-
-iqn="iqn.2009-99.unk.nown:02:00000000-0000-0000-0000-000000000000:lu:00000000000000000000000000000000"
-
-for vm in $(ls -l /dev/disk/by-vm | grep dev | awk '{print $(NF-2)}')
-do
- lasttoken=$(echo $vm | awk -F"-" '{print $NF}')
- case "$lasttoken" in
- "root");;
- "swap");;
- [0-9]) ;;
- *) vm=${vm%-*} #strip the ip address of storage host;;
- esac
-
- if [[ $vm =~ ^.*datadisk.*$ ]]; then vm=${vm%-*}; fi
- echo $iqn $vm
-done
diff --git a/scripts/vm/storage/iscsi/comstar/mountrootdisk.sh b/scripts/vm/storage/iscsi/comstar/mountrootdisk.sh
deleted file mode 100755
index fb1a934a846..00000000000
--- a/scripts/vm/storage/iscsi/comstar/mountrootdisk.sh
+++ /dev/null
@@ -1,235 +0,0 @@
-#!/usr/bin/env bash
-# $Id: mountrootdisk.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/vm/storage/iscsi/comstar/mountrootdisk.sh $
-# mountrootdisk.sh -- mount image directory from NFS and ISCSI server
-#
-#
-
-dir=$(dirname $0)
-. $dir/iscsi_common.sh
-. $dir/mirror_common.sh
-
-usage() {
- printf "Usage: %s: [-u | -m ] -h -r -t -w -l -n -b [-M -H -T -W ]\n" $(basename $0) >&2
- exit 2
-}
-
-login() {
- local vmname=$1
- local iqn=$2
- local host=$3
- local localdir=$4
- do_iscsi_login $iqn $host
- if [ $? -gt 0 ]
- then
- printf "***Failed to login to $iqn at $host\n" >&2
- unmount_all $localdir $vmname
- exit 5
- fi
-}
-
-make_links() {
- local vmname=$1
- local host=$2
- local iqn=$3
- local disktype=$4
- local localdir=$5
- blkdev=$(get_device_links $host $iqn $disktype)
- if [ "$blkdev" == "" ]
- then
- printf "***Failed to get device links for $iqn $vmname $disktype\n" >&2
- unmount_all $localdir $vmname
- exit 8
- fi
- echo "/dev/$blkdev"
- ln -s /dev/$blkdev $DISKDIR/$vmname-$disktype-$host
- return $?
-}
-
-#set -x
-
-hflag=
-rflag=
-lflag=
-uflag=
-mflag=
-nflag=
-tflag=
-Mflag=
-Tflag=
-Wflag=
-bflag=
-rootname=
-swpname=
-rootmirror=
-swpmirror=
-tgthost=
-tgtmirror=
-bootloader="PyGrub"
-
-while getopts 'umxw:t:n:h:H:r:l:T:W:Mb:' OPTION
-do
- case $OPTION in
- h) hflag=1
- tgthost="$OPTARG"
- ;;
- H) Hflag=1
- tgtmirror="$OPTARG"
- ;;
- r) rflag=1
- remotedir="$OPTARG"
- ;;
- t) tflag=1
- rootname="$OPTARG"
- ;;
- T) Tflag=1
- rootmirror="$OPTARG"
- ;;
- w) wflag=1
- swpname="$OPTARG"
- ;;
- b) bflag=1
- bootloader="$OPTARG"
- ;;
- W) Wflag=1
- swpmirror="$OPTARG"
- ;;
- l) lflag=1
- localdir="$OPTARG"
- ;;
- n) nflag=1
- vmname="$OPTARG"
- ;;
- u) uflag=1
- ;;
- m) mflag=1
- ;;
- M) Mflag=1
- ;;
- x) set -x
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$hflag$rflag$lflag$nflag$tflag" != "11111" ] && [ "$uflag$lflag$nflag" != "111" ]
-then
- usage
-fi
-
-if [ "$uflag$mflag" != "1" ]
-then
- printf "***Specify one of -u (unmount) or -m (mount)\n" >&2
- usage
-fi
-
-
-if [ "$uflag" == "1" ]
-then
- if [ "$Mflag$uflag" == "1" ]
- then
- unmount_all $localdir $vmname
- rc=$?
- exit $rc
- elif [ "$Mflag$uflag" == "11" ]
- then
- stop_mirror $vmname root
- rc=$?
- stop_mirror $vmname swap
- unmount_all $localdir $vmname
- rc=$?
- exit $rc
- fi
-fi
-
-
-#create the local dir if necessary
-if ! mkdir -p $localdir
-then
- printf "***Unable to create local directory, exiting\n" >&2
-fi
-
-#create disk directory if needed
-if [ ! -d $DISKDIR ];
-then
- mkdir $DISKDIR
-fi
-
-#check if the iscsi target portal is up and running
-if ! check_iscsi_server "$tgthost" 4
-then
- printf "***Unable to ping the iscsi target host $tgthost, exiting\n" >&2
- exit 3
-fi
-
-if [ "$Mflag" == 1 ]
-then
- if ! check_iscsi_server "$tgtmirror" 4
- then
- printf "***Unable to ping the iscsi target host $tgtmirror, exiting\n" >&2
- exit 3
- fi
-fi
-
-bootloader=$(echo $bootloader | tr [A-Z] [a-z])
-if [ "$bootloader" == "external" ]
-then
- #mount the local dir (for kernel, ramdisk, etc)
- mount -t nfs $tgthost:$remotedir $localdir -o intr,rsize=32768,wsize=32768,hard
- if [ $? -gt 0 ]
- then
- printf "***Failed to mount $remotedir at $localdir\n" >&2
- exit 5
- fi
-fi
-
-login $vmname $rootname $tgthost $localdir
-sleep 1
-
-if [ -n "$swpname" ]
-then
- login $vmname $swpname $tgthost $localdir
- sleep 1
-fi
-
-if [ -n "$rootmirror" ]
-then
- login $vmname $rootmirror $tgtmirror $localdir
- sleep 1
-fi
-
-if [ -n "$swpmirror" ]
-then
- login $vmname $swpmirror $tgtmirror $localdir
- sleep 1
-fi
-
-#figure out the device number and make a softlink
-root0dev=$(make_links $vmname $tgthost $rootname root $localdir)
-
-if [ -n "$swpname" ]
-then
- swap0dev=$(make_links $vmname $tgthost $swpname swap $localdir)
-fi
-
-if [ -n "$rootmirror" ]
-then
- root1dev=$(make_links $vmname $tgtmirror $rootmirror root $localdir)
-fi
-
-if [ -n "$swpmirror" ]
-then
- swap1dev=$(make_links $vmname $tgtmirror $swpmirror swap $localdir)
-fi
-
-if [ "$Mflag" == "1" ]
-then
- build_mirror $vmname root $root0dev $root1dev
- if [ "$swap0dev" ]
- then
- build_mirror $vmname swap $swap0dev $swap1dev
- fi
-fi
-
-exit 0
diff --git a/scripts/vm/storage/iscsi/comstar/mountvm.sh b/scripts/vm/storage/iscsi/comstar/mountvm.sh
deleted file mode 100755
index 980eb5e3a98..00000000000
--- a/scripts/vm/storage/iscsi/comstar/mountvm.sh
+++ /dev/null
@@ -1,469 +0,0 @@
-#!/usr/bin/env bash
-# $Id: mountvm.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/vm/storage/iscsi/comstar/mountvm.sh $
-# mountvm.sh -- mount image directory from NFS and ISCSI server
-#
-# COMSTAR version
-
-usage() {
- printf "Usage: %s: [-u | -m ] -h -r -t -w -1 -l -n \n" $(basename $0) >&2
-}
-
-# check if server is up and running
-check_iscsi_server() {
- local pings=1
- while ! ping -c 1 -n -q $1 > /dev/null && [ $pings -ne $2 ]
- do
- let pings=pings+1
- done
-
- printf "##check_iscsi_server: number of pings=%s\n" $pings
- [ $pings -eq $2 ] && return 1
- return 0
-}
-
-target_iqn() { # either iscsitgtd or comstar
- echo $1 | cut -d':' -f1,2,3
-}
-
-get_lu_name() { #
- #
- echo $1 | cut -d':' -f5
-}
-
-do_iscsi_login () { # target-iqn # ip-addr
- local t_iqn=$(target_iqn $1)
- local rc=0
-
- local sid=
- # if already logged in, rescan scsi and return success
- sid=$(iscsiadm -m session | grep $2 | grep $t_iqn | awk '{print $2}' | tr -d '[]')
- if [ -n "$sid" ]
- then
- return $sid
- fi
-
- #create a record in the client database
- iscsiadm -m node -T $t_iqn -p $2 -o new
- rc=$?
- if [ $rc -gt 0 ]
- then
- printf "Failed to create ISCSI initiator record for target rc=$rc\n" >&2
- return -6
- fi
- # do not autologin upon restart
- iscsiadm -m node -T $t_iqn -p $2 -o update -n node.startup -v manual
-
- # login to the target
- iscsiadm -m node -T $t_iqn -p $2 -l
- rc=$?
- if [ $rc -gt 0 ]
- then
- printf "Failed to login to target, rc=$rc\n" >&2
- return -7
- fi
-
- sid=$(iscsiadm -m session | grep $2 | grep $t_iqn | awk '{print $2}' | tr -d '[]')
- if [ -n "$sid" ]
- then
- return $sid
- fi
-}
-
-
-get_device_links() { #
- local n=20
- local dev=
- local lu_name=$(get_lu_name $2)
- local disks=
- local lu=
- local sid=$1
-
- # Let's unplug all the unused devices first
- unplug_unused_scsi_by_sid $sid 1>&2
-
- while [ $n -gt 0 ]
- do
- let n=n-1
- iscsiadm -m session -r $sid --rescan > /dev/null 2>&1
- disks=$(iscsiadm -m session -r $sid -P 3 | grep Attached | grep running | awk '{print $4}')
- for d in $disks
- do
- lu=$(scsi_id -g -s /block/$d)
- if [ "$lu" == "3$lu_name" ]
- then
- # we found it but now wait for the /dev to appear.
- local m=10
- while [ $m -gt 0 ]
- do
- if ls -l /dev/$d > /dev/null 2>&1; then
- printf "$d\n"
- return 0
- fi
- let m=m-1
- printf "Waiting for /dev/$d to appear\n" >&2
- sleep 1
- done
- printf "Unable to get /dev/$d to appear\n" >&2
- return 2
- fi
- done
- sleep 3
- done
-
- if [ $n -eq 0 ]
- then
- printf "****Timed out waiting for $3 device to register**\n" >&2
- fi
- return 1
-}
-
-
-#unplug scsi disk by lun
-unplug_scsi_by_lu() { # lu
- local rc=0
- local unplug_lu=$1
- if [ -z "$unplug_lu" ]
- then
- return $rc
- fi
- disks=$(iscsiadm -m session -P 3 | grep Attached | grep running | awk '{print $4}')
- for d in $disks
- do
- lu=$(scsi_id -g -s /block/$d)
- if [ "$lu" == "$unplug_lu" ]
- then
- fsync /dev/$d > /dev/null 2>&1
- echo 1 >/sys/block/$d/device/delete
- if [ $? -gt 0 ]
- then
- printf "*****Warning: fail to unplug iscsi disk $d\n" >&2
- else
- printf "*****Info: succeed to unplug iscsi disk $d\n" >&2
- fi
- fi
- done
-}
-
-
-#unplug scsi disk
-unplug_scsi_by_disk() { # disk sd*
- local rc=0
- if [ "$1" == "" ]
- then
- return $rc
- fi
- echo 1 >/sys/block/$1/device/delete
- if [ $? -gt 0 ]
- then
- printf "*****Warning: fail to unplug iscsi disk $1\n" >&2
- else
- printf "*****Info: succeed to unplug iscsi disk $1\n" >&2
- fi
-}
-
-
-
-# unmount a local directory and all data disks within
-unmount_all() {
- local rc=0
- local err=0
- local localdir=$1
- local vmname=$2
- local disks=$(ls -1 $DISKDIR/$vmname*) #/dev/sdb
- for softlink in $disks
- do
- local disknum=$(ls -l $softlink | awk '{print $NF}' | awk -F"/" '{print $NF}') #sdb
- printf " $disknum \n" >&2
- if [ -n "$softlink" ]
- then
- rm -f $softlink #delete soft link
- rc=$?
- if [ $rc -gt 0 ]
- then
- printf "*****Warning: failed to delete $softlink rc=$rc\n" >&2
- let err=err+1
- fi
- fi
-
- lun=$(ls -l /dev/disk/by-path/ip* | grep -w $disknum | awk '{print $(NF-2)}' | grep -v part | cut -d: -f2- | cut -d- -f3-)
- printf " $lun \n" >&2
- if [ -n "$lun" ]
- then
- pathids=$(ls -l /dev/disk/by-path/ip*$lun | awk -F"/" '{print $NF}')
- printf " $pathids \n" >&2
- for pathid in $pathids
- do
- unplug_scsi_by_disk $pathid
- let err=err+$?
- done
- fi
- done
-
- #unmount the image filesystem from nfs
- local errmsg=$(umount $localdir 2>&1)
- rc=$?
- if [ $rc -gt 0 ]
- then
- echo $errmsg | grep "not mounted"
- if [ $? -eq 1 ]
- then
- printf "*****Warning: unmount failed rc=$rc\n" >&2
- let err=err+1
- fi
- fi
- rm -fr $localdir
-
- return $err
-}
-
-
-# unplug all unused scsi device under /dev/sd*
-unplug_unused_scsi_by_sid() { # sid
- local rc=0
- # clean LUN without disk map
- local session=session$1
- local targets=$(ls /sys/class/iscsi_session/$session/device/ -1 | grep target)
- if [ -z "$targets" ]
- then
- return 0
- fi
- for target in $targets
- do
- local luns=$(ls /sys/class/iscsi_session/$session/device/$target/ | grep :)
- if [ -z "$luns" ]
- then
- continue
- fi
- for lun in $luns
- do
- local disk=$(ls /sys/class/iscsi_session/$session/device/$target/$lun/ | grep "block:" | cut -d: -f2)
- if [ -z "$disk" ]
- then
- echo 1 > /sys/class/iscsi_session/$session/device/$target/$lun/delete
- if [ $? -gt 0 ]
- then
- printf "*****Warning: fail to delete lun $lun\n" >&2
- else
- printf "*****Info: succeed to delete lun $lun\n" >&2
- fi
- else
- local lu=$(scsi_id -g -s /block/$disk)
- if [ -z "$lu" ]
- then
- temp=$(ls -l /dev/disk/by-vm | grep "$disk$")
- if [ -z "$temp" ]
- then
- unplug_scsi_by_disk $disk
- fi
- fi
- fi
- done
- done
-
- return $err
-}
-
-#set -x
-
-hflag=
-rflag=
-lflag=
-uflag=
-mflag=
-nflag=
-tflag=
-dflag=
-bflag=
-tgtname=
-swpname=
-datatgtname=
-bootloader='PyGrub'
-DISKDIR="/dev/disk/by-vm"
-
-while getopts 'umxw:t:n:h:r:l:1:b:' OPTION
-do
- case $OPTION in
- h) hflag=1
- iscsitgthost="$OPTARG"
- ;;
- r) rflag=1
- remotedir="$OPTARG"
- ;;
- t) tflag=1
- tgtname="$OPTARG"
- ;;
- w) wflag=1
- swpname="$OPTARG"
- ;;
- l) lflag=1
- localdir="$OPTARG"
- ;;
- 1) dflag=1
- datatgtname="$OPTARG"
- ;;
- n) nflag=1
- vmname="$OPTARG"
- ;;
- b) bflag=1
- bootloader="$OPTARG"
- ;;
- u) uflag=1
- ;;
- m) mflag=1
- ;;
- x) set -x
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-bootloader=$(echo $bootloader | tr '[A-Z]' '[a-z]')
-
-if [ "$hflag$rflag$lflag$nflag$tflag" != "11111" ] && [ "$uflag$lflag$nflag" != "111" ]
-then
- usage
- exit 2
-fi
-
-if [ "$uflag$mflag" != "1" ] && [ "$uflag$mflag" != "" ]
-then
- printf "***Specify one of -u (unmount) or -m (mount)\n" >&2
- usage
- exit 2
-fi
-
-if [ "$uflag" == "1" ]
-then
- unmount_all $localdir $vmname
- rc=$?
- exit $rc
-fi
-
-#create the local dir if necessary
-if ! mkdir -p $localdir
-then
- printf "***Unable to create local directory, exiting\n" >&2
- exit 2
-fi
-
-#create disk directory if needed
-if [ ! -d $DISKDIR ]
-then
- mkdir $DISKDIR
-fi
-
-#check if the iscsi target portal is up and running
-if ! check_iscsi_server "$iscsitgthost" 4
-then
- printf "***Unable to ping the iscsi target host $iscsitgthost, exiting\n" >&2
- exit 3
-fi
-
-if [ "$bootloader" == "external" ]
-then
- #mount the local dir (for kernel, ramdisk, etc)
- mount -t nfs $iscsitgthost:$remotedir $localdir -o intr,rsize=32768,wsize=32768,hard
- if [ $? -gt 0 ]
- then
- printf "***Failed to mount $remotedir at $localdir\n" >&2
- exit 4
- fi
-fi
-
-do_iscsi_login $tgtname $iscsitgthost
-rootsid=$?
-if [ $rootsid -lt 0 ]
-then
- printf "***Failed to login to $tgtname at $iscsitgthost\n" >&2
- unmount_all $localdir $vmname
- exit 5
-fi
-sleep 1
-
-swapsid=
-if [ -n "$swpname" ]
-then
- do_iscsi_login $swpname $iscsitgthost
- swapsid=$?
- if [ $swapsid -lt 0 ]
- then
- printf "***Failed to login to $swapname at $iscsitgthost\n" >&2
- unmount_all $localdir $vmname
- exit 6
- fi
- sleep 1
-fi
-
-datasid=
-if [ -n "$datatgtname" ]
-then
- do_iscsi_login $datatgtname $iscsitgthost
- datasid=$?
- if [ $datasid -lt 0 ]
- then
- printf "***Failed to login to $datatgtname at $iscsitgthost\n" >&2
- unmount_all $localdir $vmname
- exit 7
- fi
- sleep 1
-fi
-
-#figure out the device number and make a softlink
-rootdev=$(get_device_links $rootsid $tgtname root)
-if [ "$rootdev" == "" ]
-then
- printf "***Failed to get device links for $tgtname\n" >&2
- unmount_all $localdir $vmname
- exit 8
-fi
-
-ln -s /dev/$rootdev $DISKDIR/$vmname-root
-if [ $? -ne 0 ]
-then
- printf "***Failed to create softlink from /dev/$rootdev to $DISKDIR/$vmname-root\n" >&2
- exit 9
-fi
-
-printf "$DISKDIR/$vmname-root = $rootdev"
-
-swapdev=
-if [ -n "$swpname" ]
-then
- swapdev=$(get_device_links $swapsid $swpname swap)
- if [ "$swapdev" == "" ]
- then
- printf "***Failed to get device links for $swapname\n" >&2
- unmount_all $localdir $vmname
- exit 9
- fi
- ln -s /dev/$swapdev $DISKDIR/$vmname-swap
- if [ $? -ne 0 ]
- then
- printf "***Failed to create softlink from /dev/$swapdev to $DISKDIR/$vmname-swap\n" >&2
- exit 10
- fi
- printf "$DISKDIR/$vmname-swap = $swapdev"
-fi
-
-datadev=
-if [ -n "$datatgtname" ]
-then
- datadev=$(get_device_links $datasid $datatgtname data)
- if [ "$datadev" == "" ]
- then
- printf "***Failed to get device links for $datatgtname\n" >&2
- unmount_all $localdir $vmname
- exit 10
- fi
- ln -s /dev/$datadev $DISKDIR/$vmname-datadisk-1
- if [ $? -ne 0 ]
- then
- printf "***Failed to create softlink from /dev/$datadev to $DISKDIR/$vmanme-datadisk-1\n" >&2
- exit 11
- fi
- printf "$DISKDIR/$vmname-datadisk-1 = $datadev"
-fi
-
-exit 0
diff --git a/scripts/vm/storage/iscsi/get_iqn.sh b/scripts/vm/storage/iscsi/get_iqn.sh
deleted file mode 100755
index b54253315ea..00000000000
--- a/scripts/vm/storage/iscsi/get_iqn.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/env bash
-# $Id: get_iqn.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/vm/storage/iscsi/get_iqn.sh $
-# get_iqn.sh -- return iSCSI iqn of initiator (Linux) or target (OpenSolaris)
-
-usage() {
- printf "Usage: %s \n" $(basename $0) >&2
-}
-
-linux() {
- uname -a | grep "Linux" > /dev/null
- return $?
-}
-
-opensolaris() {
- uname -a | grep "SunOS" > /dev/null
- return $?
-}
-
-hosted() {
- uname -a | grep "101b" > /dev/null
- return $?
-}
-
-if [ $# -ne 0 ]
-then
- usage
- exit 1
-fi
-
-if linux
-then
- initiator_iqn=$(cat /etc/iscsi/initiatorname.iscsi | cut -d'=' -f2)
- printf "%s\n" $initiator_iqn
- exit 0
-fi
-
-if opensolaris && hosted
-then
- printf "unique_iqn_per_zvol\n"
- exit 0
-fi
-
-if opensolaris
-then
- tgt_iqn=$(itadm list-target | tail -1 | awk '{print $1}')
- printf "%s\n" $tgt_iqn
- exit 0
-fi
-
-printf "Unexpected operating system!\n" >&2
-exit 2
\ No newline at end of file
diff --git a/scripts/vm/storage/iscsi/iscsi_common.sh b/scripts/vm/storage/iscsi/iscsi_common.sh
deleted file mode 100755
index 667158a0cd1..00000000000
--- a/scripts/vm/storage/iscsi/iscsi_common.sh
+++ /dev/null
@@ -1,157 +0,0 @@
-#!/usr/bin/env bash
-# $Id: iscsi_common.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/vm/storage/iscsi/iscsi_common.sh $
-# iscsi_common.sh -- mount volume from ISCSI server
-#
-#
-
-# check if server is up and running
-check_iscsi_server() {
- local pings=1
- while ! ping -c 1 -n -q $1 > /dev/null && [ $pings -ne $2 ]
- do
- let pings=pings+1
- done
-
- printf "##check_iscsi_server: number of pings=$pings\n"
- [ $pings -eq $2 ] && return 1
- return 0;
-}
-
-do_iscsi_login () {
- local rc=0
- #create a record in the client database
- iscsiadm -m node -T $1 -p $2 -o new
- rc=$?
- if [ $rc -gt 0 ]
- then
- printf "Failed to create ISCSI initiator record for target rc=$rc\n" >&2
- return 6
- fi
- # do not autologin upon restart
- iscsiadm -m node -T $1 -p $2 -o update -n node.startup -v manual
-
- #login to the target
- iscsiadm -m node -T $1 -p $2 -l
- rc=$?
- if [ $rc -gt 0 ]
- then
- printf "Failed to login to target, rc=$rc\n" >&2
- return 7
- fi
-}
-
-
-get_device_links() {
- local n=20
- local dev=
- local host=$1
- local iqn=$2
- local disktype=$3
- while [ -z "$dev" -a $n -gt 0 ]
- do
- sleep 3;
- let n=n-1;
- dev=$(ls -l /dev/disk/by-path/ip-$host*$iqn*| awk '{print $NF}' | awk -F"/" '{print $NF}' | head -1)
- done
-
- if [ $n -eq 0 ]
- then
- printf "****Timed out waiting for $disktype device to register**\n"
- fi
- printf "$dev\n"
-}
-
-do_iscsi_logout() {
- local rc=0
- if [ "$1" == "" ]
- then
- return $rc
- fi
- iscsiadm -m node -T $1 -u #logout
- rc=$?
- if [ $rc -gt 0 ]
- then
- printf "*****Warning: failed to logout of $1 rc=$rc\n"
- fi
- iscsiadm -m node -T $1 -o delete #delete record from db
- if [ $? -gt 0 ]
- then
- printf "*****Warning: failed to delete iscsi record $1 rc=$rc\n"
- fi
- return $rc
-}
-
-# unmount a local directory and all data disks within
-unmount_all() {
- local rc=0
- local err=0
- local localdir=$1
- local vmname=$2
- local disks=$(ls -l $DISKDIR | grep $vmname | awk '{print $NF}') #/dev/sdb
- for d in $disks ;
- do
- disknum=$(echo $d | awk -F"/" '{print $NF}') #sdb
- tgt=$(ls -l /dev/disk/by-path | grep -w $disknum | awk '{print $(NF-2)}' | grep -v part | cut -d: -f2- | cut -d- -f3-)
- softlink=$(ls -l $DISKDIR |grep $vmname| grep $d | awk '{print $(NF-2)}') #vmname-root or vmname-swap or vmname-data
- rm $DISKDIR/$softlink #delete soft link
- rc=$?
- if [ $rc -gt 0 ]
- then
- printf "*****Warning: failed to delete $DISKDIR/$softlink rc=$rc\n"
- let err=err+1
- fi
- do_iscsi_logout $tgt
- let err=err+$?
- done
-
- #unmount the image filesystem from nfs
- local errmsg=$(umount $localdir 2>&1)
- rc=$?
- if [ $rc -gt 0 ]
- then
- echo $errmsg | grep "not mounted"
- if [ $? -eq 1 ]
- then
- printf "*****Warning: unmount failed rc=$rc\n"
- let err=err+1
- fi
- fi
- rm -fr $localdir
-
- return $err
-}
-
-#find the block device for a particular vm disk
-get_blkdev() {
- local vmname=$1
- local disktype=$2
- local disk=$(ls -l $DISKDIR | grep $vmname-$disktype | awk '{print $NF}') #/dev/sdb
- echo $disk
-}
-
-# unmount an iscsi disk
-unmount_disk() {
- local rc=0
- local err=0
- local vmname=$1
- local disktype=$2
- local disks=$(ls -l $DISKDIR | grep $vmname | grep $disktype | awk '{print $NF}') #/dev/sdb
- for d in $disks ;
- do
- local disknum=$(echo $d | awk -F"/" '{print $NF}') #sdb
- local tgt=$(ls -l /dev/disk/by-path | grep -w $disknum | awk '{print $(NF-2)}' | grep -v part | cut -d: -f2- | cut -d- -f3-)
- local softlink=$(ls -l $DISKDIR |grep $vmname| grep $d | awk '{print $(NF-2)}') #vmname-root or vmname-swap or vmname-data
- rm $DISKDIR/$softlink #delete soft link
- rc=$?
- if [ $rc -gt 0 ]
- then
- printf "*****Warning: failed to delete $DISKDIR/$softlink rc=$rc\n"
- let err=err+1
- fi
- do_iscsi_logout $tgt
- let err=err+$?
- done
- return $err
-}
-
-DISKDIR="/dev/disk/by-vm/"
diff --git a/scripts/vm/storage/iscsi/iscsikill.sh b/scripts/vm/storage/iscsi/iscsikill.sh
deleted file mode 100755
index d4dbb34ae2a..00000000000
--- a/scripts/vm/storage/iscsi/iscsikill.sh
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/usr/bin/env bash
-# $Id: iscsikill.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/vm/storage/iscsi/iscsikill.sh $
-#
-# iscsikill.sh
-#
-# kill all vms with disk to a iscsi connection and log out of the iscsi connection.
-#
-
-usage() {
- printf "Usage: %s: -r -t -p \n" $(basename $0) >&2
-}
-
-#set -x
-
-rflag=
-tflag=
-pflag=0
-
-while getopts 'r:t:p:' OPTION
-do
- case $OPTION in
- r) rflag=1
- sessionid="$OPTARG"
- ;;
- t) tflag=1
- target="$OPTARG"
- ;;
- p) pflag=1
- portal="$OPTARG"
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$rflag$tflag$pflag" != "111" ]
-then
- usage
- exit 2
-fi
-
-state=`iscsiadm -m session -r $sessionid -P 3 | grep "iSCSI Session State:" | awk '{print $NF}'`
-if [ $state == "FREE" -o $state == "FAILED" ]
-then
- for disk in `iscsiadm -m session -r $sessionid -P 3 | grep "Attached scsi disk" | awk '{print "/dev/"$4}'`
- do
- vmname=`ls -l /dev/disk/by-vm | grep $disk | grep -v datadisk | awk '{print $9}'`
- if [ "$vmname" != "" ]
- then
- vmname=${vmname%-*}
- echo "Shutting down vm: $vmname"
- xm shutdown $vmname > /dev/null 2>&1
- if [ $? -eq 0 ]
- then
- echo "Deleting vm: $vmname"
- xm delete $vmname > /dev/null 2>&1
- if [ $? -eq 0 ]
- then
- echo "Deleted vm: $vmname"
- else
- echo "Failed to delete vm: $vmname"
- fi
- else
- echo "Failed to shutdown vm: $vmname"
- fi
- fi
- done
-
- iscsiadm -m session -r $sessionid -u
- iscsiadm -m node -T $target -p $portal -o delete
-else
- echo "session is no longer in FREE or FAILED state"
-fi
-
-
diff --git a/scripts/vm/storage/iscsi/iscsimon.sh b/scripts/vm/storage/iscsi/iscsimon.sh
deleted file mode 100755
index 9dac2395558..00000000000
--- a/scripts/vm/storage/iscsi/iscsimon.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env bash
-# $Id: iscsimon.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/vm/storage/iscsi/iscsimon.sh $
-#
-# iscsimon.sh
-#
-# Monitor iscsi connections for failures, and stop vm's if necessary
-#
-
-err=0
-for sid in `iscsiadm -m session | awk '{print $2}' | tr -d '[]'`
-do
- state=`iscsiadm -m session -r $sid -P 1 | grep "iSCSI Session State:" | awk '{print $NF}'`
- if [ $state == "FREE" -o $state == "FAILED" ]
- then
- echo "DOWN" $sid `iscsiadm -m session -r $sid -P 1 | grep Target | awk '{print $2}'` `iscsiadm -m session -r $sid -P 1 | grep "Current Portal" | awk '{print $3}'`
- err=1
- fi
-done
-
-if [ $err -eq 0 ]
-then
- echo "OK"
-fi
diff --git a/scripts/vm/storage/iscsi/mapiscsi.sh b/scripts/vm/storage/iscsi/mapiscsi.sh
deleted file mode 100755
index 536c068d996..00000000000
--- a/scripts/vm/storage/iscsi/mapiscsi.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/env bash
-# $Id: mapiscsi.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/vm/storage/iscsi/mapiscsi.sh $
-# mapiscsi.sh -- list of active iscsi sessions and the corresponding VM
-#
-
-usage() {
- printf "Usage: %s: \n" $(basename $0) >&2
-}
-
-#set -x
-for i in $(iscsiadm -m session 2> /dev/null | awk '{print $4}')
-do
- ls -l /dev/disk/by-path/*$i* > /dev/null 2>&1
- if [ $? -eq 0 ]; then
- disknum=$(ls -l /dev/disk/by-path/*$i*| grep -v part | awk '{print $NF}' | awk -F"/" '{print $NF}'); # sdb etc
- vm=$(ls -l /dev/disk/by-vm | grep $disknum | awk '{print $(NF-2)}')
- lasttoken=$(echo $vm | awk -F"-" '{print $NF}')
- case "$lasttoken" in
- "root");;
- "swap");;
- [0-9]) ;;
- *) vm=${vm%-*} #strip the ip address of storage host;;
- esac
-
- if [[ $vm =~ ^.*datadisk.*$ ]]; then vm=${vm%-*}; fi
- fi
- echo $i $vm
-done
diff --git a/scripts/vm/storage/iscsi/mirror.sh b/scripts/vm/storage/iscsi/mirror.sh
deleted file mode 100755
index 33f29a0f6a0..00000000000
--- a/scripts/vm/storage/iscsi/mirror.sh
+++ /dev/null
@@ -1,259 +0,0 @@
-#!/usr/bin/env bash
-# $Id: mirror.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/vm/storage/iscsi/mirror.sh $
-# mirror.sh -- modify a mirrored disk
-#
-#
-
-dir=$(dirname $0)
-. $dir/iscsi_common.sh
-. $dir/mirror_common.sh
-
-usage() {
- printf "Usage: %s: -m -h -t -w -n \n" $(basename $0) >&2
- printf "Usage: %s: -m -h -d -c -n \n" $(basename $0) >&2
- printf "Usage: %s: -u -h -T -W -n \n" $(basename $0) >&2
- printf "Usage: %s: -u -h -D -c -n \n" $(basename $0) >&2
- exit 2
-}
-
-login() {
- local vmname=$1
- local iqn=$2
- local host=$3
- do_iscsi_login $iqn $host
- if [ $? -gt 0 ]
- then
- printf "***Failed to login to $iqn at $host\n" >&2
- return 5
- fi
-}
-
-make_links() {
- local vmname=$1
- local host=$2
- local iqn=$3
- local disktype=$4
- blkdev=$(get_device_links $host $iqn $disktype)
- if [ "$blkdev" == "" ]
- then
- printf "***Failed to get device links for $iqn $vmname $disktype\n" >&2
- return 8
- fi
- echo "/dev/$blkdev"
- ln -s /dev/$blkdev $DISKDIR/$vmname-$disktype-$host
- return $?
-}
-
-login_and_add_to_mirror() {
- local vmname=$1
- local iqn=$2
- local host=$3
- local disktype=$4
-
- part_of_mirror $vmname $disktype $iqn
- if [ $? -eq 0 ]
- then
- return 0
- fi
-
- login $vmname $iqn $host
- if [ $? -gt 0 ]
- then
- printf "Failed ISCSI login: $disktype disk for $vmname on $host\n" >&2
- return 5
- fi
- blkdev=$(make_links $vmname $host $iqn $disktype)
- if [ $? -gt 0 ]
- then
- unmount_disk $vmname $disktype-$host
- printf "Failed to get block dev for $disktype disk on $host\n" >&2
- return 5
- fi
- add_disk_to_mirror $vmname $disktype $blkdev
- if [ $? -gt 0 ]
- then
- unmount_disk $vmname $disktype-$host
- printf "Failed to add $disktype disk on $host to mirror for $vmname\n" >&2
- return 6
- fi
- echo $blkdev
-}
-
-validate_flags() {
- if [ "$mflag" == "1" ]
- then
- if [ "$hflag$nflag" != "11" ] && [ "$Dflag$Tflag$Wflag" != "1" ]
- then
- usage
- fi
- if [ "$dflag$cflag" != "11" ] && [ "$tflag" != "1" ]
- then
- usage
- fi
- fi
-
- if [ "$uflag" == "1" ]
- then
- if [ "$uflag$hflag" != "11" ]
- then
- usage
- fi
-
- if [ "$uflag$Tflag" != "11" ] && [ "$uflag$Dflag$cflag" != "111" ]
- then
- usage
- fi
- fi
-
- if [ "$uflag$mflag" != "1" ] || [ "$uflag$mflag" == "" ]
- then
- printf "***Specify one of -u (unmount) or -m (mount)\n" >&2
- usage
- fi
-}
-
-
-hflag=
-uflag=
-mflag=
-nflag=
-cflag=
-tflag=
-Dflag=
-Tflag=
-Wflag=
-rootname=
-swpname=
-dataname=
-disknum=
-datadisk=
-
-#set -x
-
-
-while getopts 'umw:t:n:h:d:c:TWD' OPTION
-do
- case $OPTION in
- h) hflag=1
- tgthost="$OPTARG"
- ;;
- t) tflag=1
- rootname="$OPTARG"
- ;;
- T) Tflag=1
- ;;
- w) wflag=1
- swpname="$OPTARG"
- ;;
- W) Wflag=1
- ;;
- d) dflag=1
- dataname="$OPTARG"
- ;;
- c) cflag=1
- disknum="$OPTARG"
- datadisk=datadisk-$disknum
- ;;
- D) Dflag=1
- ;;
- n) nflag=1
- vmname="$OPTARG"
- ;;
- u) uflag=1
- ;;
- m) mflag=1
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-validate_flags
-
-#create disk directory if needed
-if [ ! -d $DISKDIR ];
-then
- mkdir $DISKDIR
-fi
-
-if [ "$uflag" == "1" ] #unmount
-then
- if [ "$Tflag" == "1" ] #root disk
- then
- disk=$(get_blkdev $vmname root-$tgthost)
- remove_disk_from_mirror $vmname root $disk
- rc=$?
- if [ $rc -eq 0 ]
- then
- unmount_disk $vmname root-$tgthost
- rc=$?
- fi
- fi
- if [ "$Wflag" == "1" ] #swap disk
- then
- disk=$(get_blkdev $vmname swap-$tgthost)
- remove_disk_from_mirror $vmname swap $disk
- rc=$?
- if [ $rc -eq 0 ]
- then
- unmount_disk $vmname swap-$tgthost
- rc=$?
- fi
- fi
- if [ "$Dflag" == "1" ] #data disk
- then
- disk=$(get_blkdev $vmname $datadisk-$tgthost)
- remove_disk_from_mirror $vmname $datadisk $disk
- rc=$?
- if [ $rc -eq 0 ]
- then
- unmount_disk $vmname $datadisk-$tgthost
- rc=$?
- fi
- fi
- exit $rc
-fi
-
-# rest of the script deals with mounting and adding a disk
-
-#check if the iscsi target portal is up and running
-if ! check_iscsi_server "$tgthost" 4
-then
- printf "***Unable to ping the iscsi target host $tgthost, exiting\n" >&2
- exit 3
-fi
-
-if [ -n "$rootname" ]
-then
- rootdev=$(login_and_add_to_mirror $vmname $rootname $tgthost root)
- if [ $? -gt 0 ]
- then
- exit 5
- fi
- if [ -n "$swpname" ]
- then
- swapdev=$(login_and_add_to_mirror $vmname $swpname $tgthost swap)
- if [ $? -gt 0 ]
- then
- # undo the root disk configuration
- remove_disk_from_mirror $vmname root $rootdev
- unmount_disk $vmname root-$tgthost
- unmount_disk $vmname swap-$tgthost
- exit 5
- fi
- fi
- exit 0
-fi
-
-
-if [ -n "$dataname" ]
-then
- datadev=$(login_and_add_to_mirror $vmname $dataname $tgthost $datadisk)
- if [ $? -gt 0 ]
- then
- exit 5
- fi
-fi
-
-exit 0
diff --git a/scripts/vm/storage/iscsi/mirror_common.sh b/scripts/vm/storage/iscsi/mirror_common.sh
deleted file mode 100755
index 37245d27fb1..00000000000
--- a/scripts/vm/storage/iscsi/mirror_common.sh
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/usr/bin/env bash
-# $Id: mirror_common.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/vm/storage/iscsi/mirror_common.sh $
-# mirror_common.sh -- md operations
-#
-#
-export MDADM_NO_UDEV=1
-# build a mirror of 2 disks
-# $1 = vm name
-# $2 = disk type (root/swap/data)
-# $3 = block device #1 (/dev/sdX)
-# $4 = block device #2 (/dev/sdX)
-build_mirror() {
- local vmname=$1
- local disktype=$2
- local bd1=$3
- local bd2=$4
- mkdir -p /var/md
- mkdir -p /dev/md
- mdadm --build /dev/md/$vmname-$disktype --level=mirror --raid-devices=2 $bd1 $bd2 --assume-clean -b /var/md/$vmname-$disktype
- return $?
-}
-
-# stop a mirror of 2 disks
-# $1 = vm name
-# $2 = disk type (root/swap/data)
-stop_mirror () {
- local vmname=$1
- local disktype=$2
- mdadm --stop /dev/md/$vmname-$disktype
- rm -f /var/md/$vmname-$disktype
- rm -f /dev/md/$vmname-$disktype
- return $?
-}
-
-
-# remove one disk of a mirrored pair
-# $1 = vm name
-# $2 = disk type (root/swap/data)
-# $3 = block device to remove
-remove_disk_from_mirror() {
- local vmname=$1
- local disktype=$2
- local bd=$3
- mdadm /dev/md/$vmname-$disktype --fail $bd
- local rc=$?
- local i=0
- while [ $rc -gt 0 -a $i -lt 5 ] #sometimes get device busy
- do
- sleep 2;
- mdadm /dev/md/$vmname-$disktype --fail $bd
- rc=$?
- let i=i+1
- done
- i=0
- mdadm /dev/md/$vmname-$disktype --remove $bd
- rc=$?
- while [ $rc -gt 0 -a $i -lt 5 ] #sometimes get device busy
- do
- sleep 2;
- mdadm /dev/md/$vmname-$disktype --remove $bd
- rc=$?
- let i=i+1
- done
- return $?
-}
-
-# add one disk to a mirrored set
-# $1 = vm name
-# $2 = disk type (root/swap/data)
-# $3 = block device to add
-add_disk_to_mirror() {
- local vmname=$1
- local disktype=$2
- local bd=$3
- mdadm /dev/md/$vmname-$disktype --add $bd
- return $?
-}
-
-# is iscsi disk part of the mirror already?
-# $1 = vm name
-# $2 = disk type (root/swap/data)
-# $3 = iqn of the iscsi disk
-part_of_mirror() {
- local vmname=$1
- local disktype=$2
- local iqn=$3
- local mdisks=$(mdadm --detail /dev/md/$vmname-$disktype | grep "/dev/sd" | awk '{print $NF}')
- local idisk=$(ls -al /dev/disk/by-path/ | grep -v part | grep $iqn | awk '{print $NF}' )
- idisk=${idisk##*/} #strip everything till last slash
- for md in $mdisks
- do
- md=${md##*/}
- if [ "$md" == "$idisk" ]
- then
- return 0
- fi
- done
- return 1
-}
-
-
diff --git a/scripts/vm/storage/iscsi/mountdatadisk.sh b/scripts/vm/storage/iscsi/mountdatadisk.sh
deleted file mode 100755
index 968b3a1f261..00000000000
--- a/scripts/vm/storage/iscsi/mountdatadisk.sh
+++ /dev/null
@@ -1,181 +0,0 @@
-#!/usr/bin/env bash
-# $Id: mountdatadisk.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/vm/storage/iscsi/mountdatadisk.sh $
-# mountdatadisk.sh -- mount/unmount data disk from ISCSI server
-#
-#
-
-dir=$(dirname $0)
-. $dir/iscsi_common.sh
-. $dir/mirror_common.sh
-
-usage() {
- printf "Usage: %s: [-u | -m ] -h -d -c <0-9> -n \n" $(basename $0) >&2
- exit 2
-}
-
-login() {
- local vmname=$1
- local iqn=$2
- local host=$3
- do_iscsi_login $iqn $host
- if [ $? -gt 0 ]
- then
- printf "***Failed to login to $iqn at $host\n" >&2
- return 5
- fi
-}
-
-make_links() {
- local vmname=$1
- local host=$2
- local iqn=$3
- local disktype=$4
-
- blkdev=$(get_device_links $host $iqn $disktype)
- if [ "$blkdev" == "" ]
- then
- printf "***Failed to get device links for $iqn $vmname $disktype\n" >&2
- unmount_disk $vmname $disktype
- return 8
- fi
- echo "/dev/$blkdev"
- ln -s /dev/$blkdev $DISKDIR/$vmname-$disktype-$host
- return $?
-}
-
-#set -x
-
-hflag=
-rflag=
-lflag=
-uflag=
-mflag=
-nflag=
-tflag=
-dflag=
-cflag=
-Hflag=
-Dflag=
-Mflag=
-tgtname=
-tgthost1=
-swpname=
-datatgt0=
-disknum=
-datadisk=
-datatgt1=
-DISKDIR="/dev/disk/by-vm/"
-
-while getopts 'umn:h:d:c:MH:D:' OPTION
-do
- case $OPTION in
- h) hflag=1
- tgthost0="$OPTARG"
- ;;
- H) Hflag=1
- tgthost1="$OPTARG"
- ;;
- d) dflag=1
- datatgt0="$OPTARG"
- ;;
- D) Dflag=1
- datatgt1="$OPTARG"
- ;;
- n) nflag=1
- vmname="$OPTARG"
- ;;
- c) cflag=1
- disknum="$OPTARG"
- datadisk=datadisk-$disknum
- ;;
- u) uflag=1
- ;;
- m) mflag=1
- ;;
- M) Mflag=1
- ;;
- ?) usage
- ;;
- esac
-done
-
-if [ "$hflag$nflag$cflag" != "111" ] && [ "$uflag$nflag$cflag" != "111" ]
-then
- usage
-fi
-
-if [ "$uflag$mflag" != "1" ]
-then
- printf "***Specify one of -u (unmount) or -m (mount)\n" >&2
- usage
-fi
-
-if [ "$uflag" == "1" ]
-then
- if [ "$uflag$Mflag" == "1" ]
- then
- unmount_disk $vmname $datadisk
- exit $?
- elif [ "$uflag$Mflag" == "11" ]
- then
- stop_mirror $vmname $datadisk
- unmount_disk $vmname $datadisk
- exit $?
- fi
-fi
-
-#create disk directory if needed
-if [ ! -d $DISKDIR ];
-then
- mkdir $DISKDIR
-fi
-
-#check if the iscsi target portal is up and running
-if ! check_iscsi_server "$tgthost0" 4
-then
- printf "***Unable to ping the iscsi target host $tgthost0, exiting\n" >&2
- exit 3
-fi
-
-login $vmname $datatgt0 $tgthost0
-
-if [ $? -gt 0 ]
-then
- exit 5
-fi
-
-#figure out the device number and make a softlink
-datadev0=$(make_links $vmname $tgthost0 $datatgt0 $datadisk )
-
-if [ $? -gt 0 ]
-then
- exit 6
-fi
-
-login $vmname $datatgt1 $tgthost1
-
-if [ $? -gt 0 ]
-then
- unmount_disk $vmname $datadisk
- exit 5
-fi
-
-datadev1=$(make_links $vmname $tgthost1 $datatgt1 $datadisk )
-
-if [ $? -gt 0 ]
-then
- unmount_disk $vmname $datadisk
- exit 6
-fi
-
-if [ "$Mflag" == "1" ]
-then
- build_mirror $vmname $datadisk $datadev0 $datadev1
- if [ $? -gt 0 ]
- then
- unmount_disk $vmname $datadisk
- exit 7
- fi
-fi
-
-exit 0
diff --git a/scripts/vm/storage/iscsi/mountrootdisk.sh b/scripts/vm/storage/iscsi/mountrootdisk.sh
deleted file mode 100755
index 0255b7d692c..00000000000
--- a/scripts/vm/storage/iscsi/mountrootdisk.sh
+++ /dev/null
@@ -1,235 +0,0 @@
-#!/usr/bin/env bash
-# $Id: mountrootdisk.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/vm/storage/iscsi/mountrootdisk.sh $
-# mountrootdisk.sh -- mount image directory from NFS and ISCSI server
-#
-#
-
-dir=$(dirname $0)
-. $dir/iscsi_common.sh
-. $dir/mirror_common.sh
-
-usage() {
- printf "Usage: %s: [-u | -m ] -h -r -t -w -l -n -b [-M -H -T -W ]\n" $(basename $0) >&2
- exit 2
-}
-
-login() {
- local vmname=$1
- local iqn=$2
- local host=$3
- local localdir=$4
- do_iscsi_login $iqn $host
- if [ $? -gt 0 ]
- then
- printf "***Failed to login to $iqn at $host\n" >&2
- unmount_all $localdir $vmname
- exit 5
- fi
-}
-
-make_links() {
- local vmname=$1
- local host=$2
- local iqn=$3
- local disktype=$4
- local localdir=$5
- blkdev=$(get_device_links $host $iqn $disktype)
- if [ "$blkdev" == "" ]
- then
- printf "***Failed to get device links for $iqn $vmname $disktype\n" >&2
- unmount_all $localdir $vmname
- exit 8
- fi
- echo "/dev/$blkdev"
- ln -s /dev/$blkdev $DISKDIR/$vmname-$disktype-$host
- return $?
-}
-
-#set -x
-
-hflag=
-rflag=
-lflag=
-uflag=
-mflag=
-nflag=
-tflag=
-bflag=
-Mflag=
-Tflag=
-Wflag=
-rootname=
-swpname=
-rootmirror=
-swpmirror=
-tgthost=
-tgtmirror=
-bootloader="PyGrub"
-
-while getopts 'umxw:t:n:h:H:r:l:T:W:Mb:' OPTION
-do
- case $OPTION in
- h) hflag=1
- tgthost="$OPTARG"
- ;;
- H) Hflag=1
- tgtmirror="$OPTARG"
- ;;
- r) rflag=1
- remotedir="$OPTARG"
- ;;
- t) tflag=1
- rootname="$OPTARG"
- ;;
- T) Tflag=1
- rootmirror="$OPTARG"
- ;;
- b) bflag=1
- bootloader="$OPTARG"
- ;;
- w) wflag=1
- swpname="$OPTARG"
- ;;
- W) Wflag=1
- swpmirror="$OPTARG"
- ;;
- l) lflag=1
- localdir="$OPTARG"
- ;;
- n) nflag=1
- vmname="$OPTARG"
- ;;
- u) uflag=1
- ;;
- m) mflag=1
- ;;
- M) Mflag=1
- ;;
- x) set -x
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$hflag$rflag$lflag$nflag$tflag" != "11111" ] && [ "$uflag$lflag$nflag" != "111" ]
-then
- usage
-fi
-
-if [ "$uflag$mflag" != "1" ]
-then
- printf "***Specify one of -u (unmount) or -m (mount)\n" >&2
- usage
-fi
-
-
-if [ "$uflag" == "1" ]
-then
- if [ "$Mflag$uflag" == "1" ]
- then
- unmount_all $localdir $vmname
- rc=$?
- exit $rc
- elif [ "$Mflag$uflag" == "11" ]
- then
- stop_mirror $vmname root
- rc=$?
- stop_mirror $vmname swap
- unmount_all $localdir $vmname
- rc=$?
- exit $rc
- fi
-fi
-
-
-#create the local dir if necessary
-if ! mkdir -p $localdir
-then
- printf "***Unable to create local directory, exiting\n" >&2
-fi
-
-#create disk directory if needed
-if [ ! -d $DISKDIR ];
-then
- mkdir $DISKDIR
-fi
-
-#check if the iscsi target portal is up and running
-if ! check_iscsi_server "$tgthost" 4
-then
- printf "***Unable to ping the iscsi target host $tgthost, exiting\n" >&2
- exit 3
-fi
-
-if [ "$Mflag" == 1 ]
-then
- if ! check_iscsi_server "$tgtmirror" 4
- then
- printf "***Unable to ping the iscsi target host $tgtmirror, exiting\n" >&2
- exit 3
- fi
-fi
-
-bootloader=$(echo $bootloader | tr [A-Z] [a-z])
-if [ "$bootloader" == "external" ]
-then
- #mount the local dir (for kernel, ramdisk, etc)
- mount -t nfs $tgthost:$remotedir $localdir -o intr,rsize=32768,wsize=32768,hard
- if [ $? -gt 0 ]
- then
- printf "***Failed to mount $remotedir at $localdir\n" >&2
- exit 5
- fi
-fi
-
-login $vmname $rootname $tgthost $localdir
-sleep 1
-
-if [ -n "$swpname" ]
-then
- login $vmname $swpname $tgthost $localdir
- sleep 1
-fi
-
-if [ -n "$rootmirror" ]
-then
- login $vmname $rootmirror $tgtmirror $localdir
- sleep 1
-fi
-
-if [ -n "$swpmirror" ]
-then
- login $vmname $swpmirror $tgtmirror $localdir
- sleep 1
-fi
-
-#figure out the device number and make a softlink
-root0dev=$(make_links $vmname $tgthost $rootname root $localdir)
-
-if [ -n "$swpname" ]
-then
- swap0dev=$(make_links $vmname $tgthost $swpname swap $localdir)
-fi
-
-if [ -n "$rootmirror" ]
-then
- root1dev=$(make_links $vmname $tgtmirror $rootmirror root $localdir)
-fi
-
-if [ -n "$swpmirror" ]
-then
- swap1dev=$(make_links $vmname $tgtmirror $swpmirror swap $localdir)
-fi
-
-if [ "$Mflag" == "1" ]
-then
- build_mirror $vmname root $root0dev $root1dev
- if [ "$swap0dev" ]
- then
- build_mirror $vmname swap $swap0dev $swap1dev
- fi
-fi
-
-exit 0
diff --git a/scripts/vm/storage/iscsi/mountvm.sh b/scripts/vm/storage/iscsi/mountvm.sh
deleted file mode 100755
index 8e7c1b1ab18..00000000000
--- a/scripts/vm/storage/iscsi/mountvm.sh
+++ /dev/null
@@ -1,302 +0,0 @@
-#!/usr/bin/env bash
-# $Id: mountvm.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/vm/storage/iscsi/mountvm.sh $
-# mountvm.sh -- mount image directory from NFS and ISCSI server
-#
-#
-
-usage() {
- printf "Usage: %s: [-u | -m ] -h -r -t -w -1 -l -n \n" $(basename $0) >&2
-}
-
-# check if server is up and running
-check_iscsi_server() {
- local pings=1
- while ! ping -c 1 -n -q $1 > /dev/null && [ $pings -ne $2 ]
- do
- let pings=pings+1
- done
-
- printf "##check_iscsi_server: number of pings=$pings\n"
- [ $pings -eq $2 ] && return 1
- return 0;
-}
-
-do_iscsi_login () {
- local rc=0
- #create a record in the client database
- iscsiadm -m node -T $1 -p $2 -o new
- rc=$?
- if [ $rc -gt 0 ]
- then
- printf "Failed to create ISCSI initiator record for target rc=$rc\n" >&2
- return 6
- fi
- # do not autologin upon restart
- iscsiadm -m node -T $1 -p $2 -o update -n node.startup -v manual
-
- #login to the target
- iscsiadm -m node -T $1 -p $2 -l
- rc=$?
- if [ $rc -gt 0 ]
- then
- printf "Failed to login to target, rc=$rc\n" >&2
- return 7
- fi
-}
-
-
-get_device_links() {
- local n=20
- local dev=
- while [ -z "$dev" -a $n -gt 0 ]
- do
- sleep 3;
- let n=n-1;
- dev=$(ls -l /dev/disk/by-path/ip-$1*$2*| awk '{print $NF}' | awk -F"/" '{print $NF}' | head -1)
- done
-
- if [ $n -eq 0 ]
- then
- printf "****Timed out waiting for $3 device to register**\n"
- fi
- printf "$dev\n"
-}
-
-do_iscsi_logout() {
- local rc=0
- if [ "$1" == "" ]
- then
- return $rc
- fi
- iscsiadm -m node -T $1 -u #logout
- rc=$?
- if [ $rc -gt 0 ]
- then
- printf "*****Warning: failed to logout of $1 rc=$rc\n"
- fi
- iscsiadm -m node -T $1 -o delete #delete record from db
- if [ $? -gt 0 ]
- then
- printf "*****Warning: failed to delete iscsi record $1 rc=$rc\n"
- fi
- return $rc
-}
-
-# unmount a local directory and all data disks within
-unmount_all() {
- local rc=0
- local err=0
- local localdir=$1
- local vmname=$2
- local disks=$(ls -l $DISKDIR | grep $vmname | awk '{print $NF}') #/dev/sdb
- for d in $disks ;
- do
- disknum=$(echo $d | awk -F"/" '{print $NF}') #sdb
- tgt=$(ls -l /dev/disk/by-path | grep -w $disknum | awk '{print $(NF-2)}' | grep -v part | cut -d: -f2- | cut -d- -f3-)
- softlink=$(ls -l $DISKDIR |grep $vmname| grep $d | awk '{print $(NF-2)}') #vmname-root or vmname-swap or vmname-data
- rm $DISKDIR/$softlink #delete soft link
- rc=$?
- if [ $rc -gt 0 ]
- then
- printf "*****Warning: failed to delete $DISKDIR/$softlink rc=$rc\n"
- let err=err+1
- fi
- do_iscsi_logout $tgt
- let err=err+$?
- done
-
- #unmount the image filesystem from nfs
- umount $localdir >&2 #ignore errors
- rc=$?
- if [ $rc -gt 0 ]
- then
- printf "*****Warning: unmount failed rc=$rc\n"
- let err=err+1
- fi
- rm -fr $localdir
-
- return $err
-}
-
-#set -x
-
-hflag=
-rflag=
-lflag=
-uflag=
-mflag=
-nflag=
-tflag=
-dflag=
-tgtname=
-swpname=
-datatgtname=
-DISKDIR="/dev/disk/by-vm/"
-
-while getopts 'umxw:t:n:h:r:l:1:' OPTION
-do
- case $OPTION in
- h) hflag=1
- iscsitgthost="$OPTARG"
- ;;
- r) rflag=1
- remotedir="$OPTARG"
- ;;
- t) tflag=1
- tgtname="$OPTARG"
- ;;
- w) wflag=1
- swpname="$OPTARG"
- ;;
- l) lflag=1
- localdir="$OPTARG"
- ;;
- 1) dflag=1
- datatgtname="$OPTARG"
- ;;
- n) nflag=1
- vmname="$OPTARG"
- ;;
- u) uflag=1
- ;;
- m) mflag=1
- ;;
- x) set -x
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$hflag$rflag$lflag$nflag$tflag" != "11111" ] && [ "$uflag$lflag$nflag" != "111" ]
-then
- usage
- exit 2
-fi
-
-if [ "$uflag$mflag" != "1" ] && [ "$uflag$mflag" != "" ]
-then
- printf "***Specify one of -u (unmount) or -m (mount)\n" >&2
- usage
- exit 2
-fi
-
-if [ "$uflag" == "1" ]
-then
- unmount_all $localdir $vmname
- rc=$?
- do_iscsi_logout $tgtname #ignore error, tgtname could be null
- do_iscsi_logout $swpname
- do_iscsi_logout $datatgtname
- exit $rc
-fi
-
-
-#create the local dir if necessary
-if ! mkdir -p $localdir
-then
- printf "***Unable to create local directory, exiting\n" >&2
- exit 2
-fi
-
-#create disk directory if needed
-if [ ! -d $DISKDIR ];
-then
- mkdir $DISKDIR
-fi
-
-#check if the iscsi target portal is up and running
-if ! check_iscsi_server "$iscsitgthost" 4
-then
- printf "***Unable to ping the iscsi target host $iscsitgthost, exiting\n" >&2
- exit 3
-fi
-
-#mount the local dir (for kernel, ramdisk, etc)
-mount -t nfs $iscsitgthost:$remotedir $localdir -o intr,rsize=32768,wsize=32768,hard
-if [ $? -gt 0 ]
-then
- printf "***Failed to mount $remotedir at $localdir\n" >&2
- exit 5
-fi
-
-do_iscsi_login $tgtname $iscsitgthost
-if [ $? -gt 0 ]
-then
- printf "***Failed to login to $tgtname at $iscsitgthost\n" >&2
- unmount_all $localdir $vmname
- exit 5
-fi
-sleep 1
-
-if [ -n "$swpname" ]
-then
- do_iscsi_login $swpname $iscsitgthost
- if [ $? -gt 0 ]
- then
- printf "***Failed to login to $swapname at $iscsitgthost\n" >&2
- unmount_all $localdir $vmname
- exit 6
- fi
- sleep 1
-fi
-
-if [ -n "$datatgtname" ]
-then
- do_iscsi_login $datatgtname $iscsitgthost
- if [ $? -gt 0 ]
- then
- printf "***Failed to login to $datatgtname at $iscsitgthost\n" >&2
- unmount_all $localdir $vmname
- exit 7
- fi
- sleep 1
-fi
-
-#figure out the device number and make a softlink
-rootdev=$(get_device_links $iscsitgthost $tgtname root)
-if [ "$rootdev" == "" ]
-then
- printf "***Failed to get device links for $tgtname\n" >&2
- unmount_all $localdir $vmname
- exit 8
-fi
-
-ln -s /dev/$rootdev $DISKDIR/$vmname-root
-
-swapdev=
-if [ -n "$swpname" ]
-then
- swapdev=$(get_device_links $iscsitgthost $swpname swap)
- if [ "$swapdev" == "" ]
- then
- printf "***Failed to get device links for $swapname\n" >&2
- unmount_all $localdir $vmname
- exit 9
- fi
- ln -s /dev/$swapdev $DISKDIR/$vmname-swap
-fi
-
-datadev=
-if [ -n "$datatgtname" ]
-then
- datadev=$(get_device_links $iscsitgthost $datatgtname data)
- if [ "$datadev" == "" ]
- then
- printf "***Failed to get device links for $datatgtname\n" >&2
- unmount_all $localdir $vmname
- exit 10
- fi
- ln -s /dev/$datadev $DISKDIR/$vmname-datadisk-1
-fi
-
-
-if [ $? -gt 0 ]
-then
- printf "***Failed to mount $tgtname at $localdir\n" >&2
- exit 5
-fi
-
-
-exit 0
diff --git a/scripts/vm/storage/nfs/mountvm.sh b/scripts/vm/storage/nfs/mountvm.sh
deleted file mode 100755
index f25f531b1a4..00000000000
--- a/scripts/vm/storage/nfs/mountvm.sh
+++ /dev/null
@@ -1,142 +0,0 @@
-#!/usr/bin/env bash
-# $Id: mountvm.sh 9132 2010-06-04 20:17:43Z manuel $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/vm/storage/nfs/mountvm.sh $
-# mounvm.sh -- mount a remote nfs directory as the image directory
-#
-#
-
-usage() {
- printf "Usage: %s: [-u | -m ] -h -r -l \n" $(basename $0) >&2
-}
-
-# check if server is up and running
-check_nfs_server() {
- ping -c 1 -n -q $1 > /dev/null
- return $?;
-}
-
-#check if somebody else has mounted this disk
-#Only issue a warning since Solaris
-#sometimes keeps around mounts for a longer time
-check_in_use() {
- local warn=0
- local nfshost=$1
- local remotedir=$2
- warn=$(ssh -o StrictHostKeyChecking=no -i ./id_rsa root@$nfshost "showmount -a | grep $remotedir" | wc -l)
- if [ $warn -gt 1 ]
- then
- printf "!!!Warning!!!! $remotedir is already mounted by $warn other hosts: ">&2
- warn=$(ssh -o StrictHostKeyChecking=no -i ./id_rsa root@$nfshost "showmount -a | grep $remotedir" | cut -d":" -f1)
- for ips in $warn
- do
- printf "$ips, "
- done
- printf "\n"
- fi
-}
-
-# unmount a local directory and all data disks within
-unmount_all() {
- local localdir=$1
-
- #unmount all datadisks
- for diskfs in $(find $localdir -type d | grep datadisk)
- do
- umount $diskfs >&2 #ignore errors
- printf "Unmounting $diskfs result=$?\n"
- done
-
- #unmount the root disk
- umount $localdir >&2 #ignore errors
- printf "Unmounting $localdir result=$?\n"
-}
-
-#set -x
-
-hflag=
-rflag=
-lflag=
-uflag=
-mflag=
-
-while getopts 'umxh:r:l:' OPTION
-do
- case $OPTION in
- h) hflag=1
- nfshost="$OPTARG"
- ;;
- r) rflag=1
- remotedir="$OPTARG"
- ;;
- l) lflag=1
- localdir="$OPTARG"
- ;;
- u) uflag=1
- ;;
- m) mflag=1
- ;;
- x) set -x
- ;;
- ?) usage
- exit 2
- ;;
- esac
-done
-
-if [ "$hflag$rflag$lflag" != "111" ] && [ "$uflag$lflag" != "11" ]
-then
- usage
- exit 2
-fi
-
-if [ "$uflag$mflag" != "1" ] && [ "$uflag$mflag" != "" ]
-then
- printf "Specify one of -u (unmount) or -m (mount)\n" >&2
- usage
- exit 2
-fi
-
-if [ "$uflag" == "1" ]
-then
- unmount_all $localdir
- exit 0
-fi
-
-#create the local dir if necessary
-if ! mkdir -p $localdir
-then
- printf "Unable to create local directory, exiting\n" >&2
- exit 2
-fi
-
-#check if the nfs server is up and running
-if ! check_nfs_server $nfshost
-then
- printf "Unable to ping the nfs host, exiting\n" >&2
- exit 3
-fi
-
-#warn if the remote disk has already been mounted by someone else
-#check_in_use $nfshost $remotedir
-
-#mount the root disk
-mount -t nfs $nfshost:$remotedir $localdir -o intr,rsize=32768,wsize=32768,hard
-if [ $? -gt 0 ]
-then
- printf "Failed to mount $remotedir at $localdir\n" >&2
- exit 5
-fi
-
-#mount all datadisks as well
-for diskfs in $(find $localdir -type d | grep datadisk)
-do
- disk=$(basename $diskfs)
- mount -t nfs $nfshost:$remotedir/$disk $diskfs
- if [ $? -gt 0 ]
- then
- printf "Failed to mount $remotedir/$disk at $diskfs\n" >&2
- unmount_all $localdir #undo what we did
- exit 5
- fi
-done
-
-exit 0