You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by da...@apache.org on 2014/06/24 10:24:26 UTC

[10/11] git commit: updated refs/heads/master to c79ab57

Revert "CLOUDSTACK-6967: Now with module!"

This reverts commit 189972bc7c9e73abff392429eda298f9f837992e.

Conflicts:
	plugins/hypervisors/ovm3


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/be028974
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/be028974
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/be028974

Branch: refs/heads/master
Commit: be028974dad2ce3d147f0ea8553cd05c7977837d
Parents: fec52be
Author: Daan Hoogland <da...@onecht.net>
Authored: Tue Jun 24 10:23:49 2014 +0200
Committer: Daan Hoogland <da...@onecht.net>
Committed: Tue Jun 24 10:23:49 2014 +0200

----------------------------------------------------------------------
 plugins/hypervisors/ovm3/pom.xml                |   36 -
 .../cloudstack/ovm3-compute/module.properties   |   18 -
 .../spring-ovm3-compute-context.xml             |   39 -
 .../ovm3-discoverer/module.properties           |   18 -
 .../spring-ovm3-discoverer-context.xml          |   34 -
 .../hypervisors/ovm3/scripts/clean_master.sh    |   43 -
 plugins/hypervisors/ovm3/scripts/clean_slave.sh |   33 -
 .../ovm3/scripts/create_pool_cluster.py         |  271 --
 plugins/hypervisors/ovm3/scripts/info.py        |  111 -
 .../ovm3/scripts/ovs_agent_plugin/cloudstack.py |  344 --
 plugins/hypervisors/ovm3/scripts/password.py    |   57 -
 plugins/hypervisors/ovm3/scripts/repo_pool.py   |  186 -
 plugins/hypervisors/ovm3/scripts/simple_pool.py |  209 --
 plugins/hypervisors/ovm3/scripts/socat.sh       |    2 -
 plugins/hypervisors/ovm3/scripts/tail.sh        |    2 -
 .../ovm3/src/com/cloud/ha/Ovm3Investigator.java |   81 -
 .../ovm3/hypervisor/Ovm3Discoverer.java         |  411 ---
 .../hypervisor/ovm3/hypervisor/Ovm3Fencer.java  |  133 -
 .../hypervisor/ovm3/hypervisor/Ovm3Guru.java    |   65 -
 .../hypervisor/ovm3/hypervisor/Ovm3Helper.java  |   82 -
 .../ovm3/hypervisor/Ovm3ResourceBase.java       | 3211 ------------------
 .../ovm3/object/CloudStackPlugin.java           |  131 -
 .../cloud/hypervisor/ovm3/object/Cluster.java   |  162 -
 .../cloud/hypervisor/ovm3/object/Common.java    |   64 -
 .../hypervisor/ovm3/object/Connection.java      |  144 -
 .../com/cloud/hypervisor/ovm3/object/Linux.java |  612 ----
 .../cloud/hypervisor/ovm3/object/Network.java   |  628 ----
 .../com/cloud/hypervisor/ovm3/object/Ntp.java   |  140 -
 .../cloud/hypervisor/ovm3/object/OvmObject.java |  208 --
 .../com/cloud/hypervisor/ovm3/object/Pool.java  |  362 --
 .../cloud/hypervisor/ovm3/object/PoolOCFS2.java |  157 -
 .../cloud/hypervisor/ovm3/object/Remote.java    |   68 -
 .../hypervisor/ovm3/object/Repository.java      |  205 --
 .../hypervisor/ovm3/object/RpcTypeFactory.java  |   92 -
 .../hypervisor/ovm3/object/StoragePlugin.java   |  876 -----
 .../com/cloud/hypervisor/ovm3/object/Test.java  |  546 ---
 .../com/cloud/hypervisor/ovm3/object/Xen.java   | 1169 -------
 37 files changed, 10950 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/pom.xml b/plugins/hypervisors/ovm3/pom.xml
deleted file mode 100644
index 22c9fe0..0000000
--- a/plugins/hypervisors/ovm3/pom.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements. See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership. The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License. You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied. See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <artifactId>cloud-plugin-hypervisor-ovm3</artifactId>
-  <name>Apache CloudStack Plugin - Hypervisor OracleVM3</name>
-  <parent>
-    <groupId>org.apache.cloudstack</groupId>
-    <artifactId>cloudstack-plugins</artifactId>
-    <version>4.4.0-SNAPSHOT</version>
-    <relativePath>../../pom.xml</relativePath>
-  </parent>
-   <dependencies>
-    <dependency>
-      <groupId>org.apache.cloudstack</groupId>
-      <artifactId>xapi</artifactId>
-      <version>${cs.xapi.version}</version>
-    </dependency>    
-  </dependencies>
-</project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/resources/META-INF/cloudstack/ovm3-compute/module.properties
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/resources/META-INF/cloudstack/ovm3-compute/module.properties b/plugins/hypervisors/ovm3/resources/META-INF/cloudstack/ovm3-compute/module.properties
deleted file mode 100644
index 69e6469..0000000
--- a/plugins/hypervisors/ovm3/resources/META-INF/cloudstack/ovm3-compute/module.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-name=ovm3-compute
-parent=compute

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/resources/META-INF/cloudstack/ovm3-compute/spring-ovm3-compute-context.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/resources/META-INF/cloudstack/ovm3-compute/spring-ovm3-compute-context.xml b/plugins/hypervisors/ovm3/resources/META-INF/cloudstack/ovm3-compute/spring-ovm3-compute-context.xml
deleted file mode 100644
index 42230c9..0000000
--- a/plugins/hypervisors/ovm3/resources/META-INF/cloudstack/ovm3-compute/spring-ovm3-compute-context.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements. See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership. The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License. You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied. See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:context="http://www.springframework.org/schema/context"
-       xmlns:aop="http://www.springframework.org/schema/aop"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
-                      http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
-                      >
-
-    <bean id="Ovm3Fencer" class="com.cloud.hypervisor.ovm3.hypervisor.Ovm3Fencer">
-        <property name="name" value="Ovm3FenceBuilder" />
-    </bean>
-
-    <bean id="Ovm3Guru" class="com.cloud.hypervisor.ovm3.hypervisor.Ovm3Guru">
-        <property name="name" value="Ovm3Guru" />
-    </bean>
-
-    
-</beans>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/resources/META-INF/cloudstack/ovm3-discoverer/module.properties
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/resources/META-INF/cloudstack/ovm3-discoverer/module.properties b/plugins/hypervisors/ovm3/resources/META-INF/cloudstack/ovm3-discoverer/module.properties
deleted file mode 100644
index 025d4cf..0000000
--- a/plugins/hypervisors/ovm3/resources/META-INF/cloudstack/ovm3-discoverer/module.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-name=ovm3-discoverer
-parent=discoverer

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/resources/META-INF/cloudstack/ovm3-discoverer/spring-ovm3-discoverer-context.xml
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/resources/META-INF/cloudstack/ovm3-discoverer/spring-ovm3-discoverer-context.xml b/plugins/hypervisors/ovm3/resources/META-INF/cloudstack/ovm3-discoverer/spring-ovm3-discoverer-context.xml
deleted file mode 100644
index aa76271..0000000
--- a/plugins/hypervisors/ovm3/resources/META-INF/cloudstack/ovm3-discoverer/spring-ovm3-discoverer-context.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements. See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership. The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License. You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied. See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:context="http://www.springframework.org/schema/context"
-       xmlns:aop="http://www.springframework.org/schema/aop"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
-                      http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
-                      >
-
-    <bean id="Ovm3Discoverer" class="com.cloud.hypervisor.ovm3.hypervisor.Ovm3Discoverer">
-        <property name="name" value="Ovm3Discover" />
-    </bean>
-    
-</beans>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/scripts/clean_master.sh
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/scripts/clean_master.sh b/plugins/hypervisors/ovm3/scripts/clean_master.sh
deleted file mode 100755
index bbf1cd0..0000000
--- a/plugins/hypervisors/ovm3/scripts/clean_master.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-for i in `xm list | awk '{ print $1 }' | egrep -v "Name|Domain-0"`
-do
-    xm destroy $i
-done
-rm /etc/ovs-agent/db/server
-rm /etc/ovs-agent/db/repository
-rm /etc/ocfs2/cluster.conf
-rm /nfsmnt/*/*.img
-rm /nfsmnt/*/.ovspoolfs
-rm /nfsmnt/*/.generic_fs_stamp
-rm /OVS/Repositories/*/.generic_fs_stamp
-rm /OVS/Repositories/*/.ovsrepo
-/etc/init.d/ovs-agent restart
-/etc/init.d/ocfs2 restart
-for i in `mount | grep cs-mgmt | awk '{ print $1 }'`
-do
-    umount $i
-done
-rm -rf /OVS/Repositories/*
-rm -rf /nfsmnt/*
-ip addr del 192.168.1.230 dev c0a80100
-ip addr del 192.168.1.161 dev c0a80100
-rm /etc/sysconfig/network-scripts/ifcfg-control0
-reboot

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/scripts/clean_slave.sh
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/scripts/clean_slave.sh b/plugins/hypervisors/ovm3/scripts/clean_slave.sh
deleted file mode 100755
index 6d46859..0000000
--- a/plugins/hypervisors/ovm3/scripts/clean_slave.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-for i in `xm list | awk '{ print $1 }' | egrep -v "Name|Domain-0"`
-do
-    xm destroy $i
-done
-rm /etc/ovs-agent/db/server
-rm /etc/ovs-agent/db/repository
-rm /etc/ocfs2/cluster.conf
-/etc/init.d/ovs-agent restart
-/etc/init.d/ocfs2 restart
-for i in `mount | grep cs-mgmt | awk '{ print $1 }'`
-do
-    umount $i
-done
-

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/scripts/create_pool_cluster.py
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/scripts/create_pool_cluster.py b/plugins/hypervisors/ovm3/scripts/create_pool_cluster.py
deleted file mode 100755
index 15c9a97..0000000
--- a/plugins/hypervisors/ovm3/scripts/create_pool_cluster.py
+++ /dev/null
@@ -1,271 +0,0 @@
-#!/usr/bin/python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-import os, sys, subprocess
-from xml.dom.minidom import parseString
-
-from xmlrpclib import ServerProxy, Error
-
-server = ServerProxy("http://localhost:8899")
-
-pooledFs = 1
-normalRepo = 0
-
-try:
-  if normalRepo:
-    print "normal repo"
-    # this litterally throws EVERYTHING away on the repo
-    repoDom = parseString(server.discover_repository_db())
-    for node in repoDom.getElementsByTagName('Repository'):
-        repoUuid = node.attributes['Uuid']
-        remoteMount = node.getElementsByTagName('Fs_location')[0].firstChild.nodeValue
-        localMount = node.getElementsByTagName('Mount_point')[0].firstChild.nodeValue
-
-        # there is a "strong" relation between repo's and VMs
-        # onfortunately there is no reference in the vm.cfg
-        # or any known info in the configuration of the VM
-        # in which repo it lives....
-        for dirname, dirnames, filenames in os.walk('%s/VirtualMachines/' % localMount):
-            for vm in dirnames:
-                print "Destroying vm: %s on repo %s" % (vm, repoUuid.value)
-                try:
-                    mVm = server.list_vm(repoUuid.value, vm)
-                    if mVm != None:
-                        print server.stop_vm(repoUuid.value, vm)
-                        print server.delete_vm(repoUuid.value, vm)
-                    else:
-                        print "%s already not in repo %s" % (repoUuid.value, vm)
-                except Error, v:
-                    print "Unable to destroy: %s" % (v)
-                    continue
-
-        # VMs = server.list_vms() 
-        # for vm in VMs:
-        #    if vm['domid'] != '0':
-        #        print vm
-        #        print server.delete_vm(repoUuid.value, vm['uuid'])
-
-        rc = server.delete_repository(repoUuid.value, True)
-        # Set to false if you want to keep data:      ^^^^
-        print "Repository: %s" % repoUuid.value
-        if (rc == None):
-            print "Ok repo: %s destroyed!" % repoUuid.value
-            # now unmount the FS
-            # print server.unmount_repository_fs(localMount)
-        else:
-            print "Failed repo: %s not destroyed!" % repoUuid.value
-
-    # for now only treat NFS stuff as we're testing with that..
-    nfsHost='cs-mgmt'
-    nfsDom = server.storage_plugin_listMountPoints(
-        'oracle.generic.NFSPlugin.GenericNFSPlugin', 
-            { 'status': '', 
-                'admin_user': '', 
-                'admin_host': '', 
-                'uuid': '', 
-                'total_sz': 0, 
-                'admin_passwd': '',
-                'free_sz': 0, 
-                'name': '', 
-                'access_host': nfsHost, 
-                'storage_type': 'FileSys', 
-                'alloc_sz': 0, 
-                'access_grps': [], 
-                'used_sz': 0, 
-                'storage_desc': ''
-            })
-    for node in nfsDom:
-        props = {'status': node['status'], 
-            'uuid': '', 
-            'access_host': nfsHost, 
-            'storage_type': 'FileSys', 
-            'name': '' }
-        extprops = {'status': node['status'], 
-            'uuid': node['fs_uuid'], 
-            'ss_uuid': '', 
-            'size': 0, 
-            'free_sz': '', 
-            'state': 1, 
-            'access_grp_names': [], 
-            'access_path': nfsHost + ':' + '/volumes/cs-data/secondary', 
-            'name': ''}
-        # rc = server.storage_plugin_unmount('oracle.generic.NFSPlugin.GenericNFSPlugin', props, extprops, nfsMnt, True)
-        # print rc
-
-    nfsDom = parseString(server.discover_mounted_file_systems('nfs'))
-    for node in nfsDom.getElementsByTagName('Mount'):
-        nfsMnt = node.attributes['Dir'].value
-        print 'Mountpoint: %s' % (nfsMnt)
-        fsStamp = '%s/.generic_fs_stamp' % nfsMnt
-        # remove this so we don't cock up next run
-        if os.path.isfile(fsStamp):
-            print "Stamp found: %s" % fsStamp
-            os.unlink(fsStamp)
-
-        rc = server.storage_plugin_unmount('oracle.generic.NFSPlugin.GenericNFSPlugin', props, extprops, nfsMnt, True)
-        print rc
-
-
-  if pooledFs:
-    print "pooling"
-    # pool stuff 
-    poolalias="ItsMyPool"
-    poolmvip="192.168.1.161"
-    poolfirsthost = {
-        'ip': "192.168.1.64",
-        'hn': "ovm-1",
-        'id': 0,
-        'role': 'utility,xen'
-    }
-    fstype="nfs"
-    fstarget="cs-mgmt:/volumes/cs-data/primary"
-    poolid="0004fb0000020000ba9aaf00ae5e2d73"
-    clusterid="ba9aaf00ae5e2d72"
-    poolfsuuid="0004fb0000050000e70fbddeb802208f"
-    poolfsnfsbaseuuid="b8ca41cb-3469-4f74-a086-dddffe37dc2d"
-    manageruuid="0004fb00000100000af70d20dcce7d65"
-    pooluuid="0004fb0000020000ba9aaf00ae5e2d73"
-    blocksize=""
-    clustersize=""
-    journalesize=""
-
-    # o2cb is the problem.... /etc/init.d/o2cb
-    #   sets it's config in /etc/sysconfig/o2cb (can be removed)
-    #   dmsetup requires the stopping of o2cb first,
-    #   then the removal of the config, after which dmsetup
-    #   can remove the device from /dev/mapper/
-    # eventually cluster cleanup can be done by removing
-    #   stuff from /etc/ovs-agent/db 
-    #   also clean /etc/ocfs2/cluster.conf
-    print server.create_pool_filesystem(
-        fstype,
-        fstarget,
-        clusterid,
-        poolfsuuid,
-        poolfsnfsbaseuuid,
-        manageruuid,
-        pooluuid
-    )
-
-    # poolDom = server.discover_server_pool()
-    # print poolDom
-    # poolDom = parseString(server.discover_server_pool()) 
-    # if poolDom.getElementsByTagName('Server_Pool'):
-    # get unique id
-    cluster = server.is_cluster_online()
-    if cluster == True:
-        print "clean up pool"
-        # print server.destroy_cluster(poolfsuuid)
-        # deconfigure cluster
-        # print server.destroy_server_pool(poolid)
-        
-    if cluster == False:
-        print "create_server_pool"
-        # first take ownership. without an owner nothing happens
-        print server.take_ownership(manageruuid, "")
-        # we need to add the first host first to the pool....
-        poolDom = server.discover_server_pool()
-        print poolDom
-        poolDom = parseString(server.discover_server_pool())
-        if poolDom.getElementsByTagName('Server_Pool'):
-            print server.destroy_server_pool(pooluuid)
-
-        print server.create_pool_filesystem(
-            fstype,
-            fstarget,
-            clusterid,
-            poolfsuuid,
-            poolfsnfsbaseuuid,
-            manageruuid,
-            pooluuid
-        )
-        print server.create_server_pool(poolalias, 
-            pooluuid, 
-            poolmvip, 
-            poolfirsthost['id'], 
-            poolfirsthost['hn'], 
-            poolfirsthost['ip'], 
-            poolfirsthost['role'])
-        
-        print "configure_virtual_ip"
-        server.configure_virtual_ip(poolmvip, poolfirsthost['ip'])
-        server.set_pool_member_ip_list(['192.168.1.64','192.168.1.65'],)
-        print "configure for cluster"
-        server.configure_server_for_cluster(
-            {
-                'O2CB_HEARTBEAT_THRESHOLD': '61', 
-                'O2CB_RECONNECT_DELAY_MS': '2000', 
-                'O2CB_KEEPALIVE_DELAY_MS': '2000', 
-                'O2CB_BOOTCLUSTER': clusterid, 
-                'O2CB_IDLE_TIMEOUT_MS': '60000', 
-                'O2CB_ENABLED': 'true', 
-                'O2CB_STACK': 'o2cb'
-            }, 
-            {
-                'node': [
-                    {
-                        'ip_port': 7777, 
-                        'cluster': clusterid, 
-                        'ip_address': poolfirsthost['ip'], 
-                        'name': poolfirsthost['hn'], 
-                        'number': poolfirsthost['id']
-                    }
-                ], 
-                'heartbeat': [
-                    {
-                        'cluster': clusterid, 
-                        # uppercase poolfsuuid
-                        'region': '0004FB0000050000E70FBDDEB802208F'
-                    }
-                ], 
-                'cluster': [
-                    {
-                        'heartbeat_mode': 'global', 
-                        'node_count': 1, 
-                        'name': clusterid
-                    }
-                ]
-            }, 
-            'nfs', 
-            'cs-mgmt:/volumes/cs-data/primary', 
-            poolfsuuid, 
-            poolfsnfsbaseuuid
-        )
-        print "create cluster"
-        server.create_cluster(poolfsuuid,)
-
-    poolDom = parseString(server.discover_server_pool())
-    for node in poolDom.getElementsByTagName('Server_Pool'):
-        id = node.getElementsByTagName('Unique_Id')[0].firstChild.nodeValue
-        alias = node.getElementsByTagName('Pool_Alias')[0].firstChild.nodeValue
-        mvip = node.getElementsByTagName('Master_Virtual_Ip')[0].firstChild.nodeValue
-        print "pool: %s, %s, %s" % (id, mvip, alias)
-        members = node.getElementsByTagName('Member')
-        for member in members:
-            mip = member.getElementsByTagName('Registered_IP')[0].firstChild.nodeValue
-            print "member: %s" % (mip)
-
-    print server.is_cluster_online()
-    print server.discover_cluster()
-    print server.discover_pool_filesystem()
-    print server.discover_server_pool()
-    # server.destroy_server_pool(pooluuid)
-
-except Error, v:
-    print "ERROR", v

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/scripts/info.py
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/scripts/info.py b/plugins/hypervisors/ovm3/scripts/info.py
deleted file mode 100755
index 518aaf1..0000000
--- a/plugins/hypervisors/ovm3/scripts/info.py
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/usr/bin/python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-import os, sys, subprocess, socket,fcntl, struct
-from socket import gethostname
-import errno
-from socket import error as socket_error
-from xml.dom.minidom import parseString
-
-from xmlrpclib import ServerProxy, Error
-
-def spCon(proto, auth, host, port):
-    print "trying %s on %s@%s:%s" % (proto, auth, host, port)
-    try:
-        x=ServerProxy("%s://%s@%s:%s" % (proto, auth, host, port))
-        x.echo(proto)
-        return x
-    except Error, v:
-        return
-    except socket_error, serr:
-        return
-
-def getCon(auth, host, port):
-    try:    
-        server = spCon("http", auth, host, port)
-        if server:
-            return server
-        else:
-            server = spCon("https", auth, host, port)
-    except Error, v:
-        print "ERROR", v
-    return server
-
-def get_ip_address(ifname):
-    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-    return socket.inet_ntoa(fcntl.ioctl(
-        s.fileno(),
-        0x8915,  # SIOCGIFADDR
-        struct.pack('256s', ifname[:15])
-    )[20:24])
-
-def is_it_up(host, port):
-    try:
-        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-        s.settimeout(1)
-        s.connect((host, port))
-        s.close()
-    except:
-        print "host: %s:%s DOWN" % (host, port)
-        return False
-
-    print "host: %s:%s UP" % (host, port)
-    return True
-
-# hmm master actions don't apply to a slave
-master="192.168.1.161"
-port=8899
-user = "oracle"
-password = "test123"
-auth = "%s:%s" % (user, password)
-server = getCon(auth, 'localhost', port)
-mserver = getCon(auth, master, port)
-poolNode=True
-interface = "c0a80100"
-role='xen,utility'
-hostname=gethostname()
-ip = get_ip_address(interface)
-poolMembers = []
-xserver = server
-poolCount = 0
-
-try:
-    print server.discover_pool_filesystem()
-    print
-    print server.discover_server_pool()
-    poolDom = parseString(server.discover_server_pool())
-    for node in poolDom.getElementsByTagName('Server_Pool'):
-        id = node.getElementsByTagName('Unique_Id')[0].firstChild.nodeValue
-        alias = node.getElementsByTagName('Pool_Alias')[0].firstChild.nodeValue
-        mvip = node.getElementsByTagName('Master_Virtual_Ip')[0].firstChild.nodeValue
-        print "pool: %s, %s, %s" % (id, mvip, alias)
-        members = node.getElementsByTagName('Member')
-        for member in members:
-            poolCount = poolCount + 1
-            mip = member.getElementsByTagName('Registered_IP')[0].firstChild.nodeValue
-            print "member: %s" % (mip)
-            if mip == ip:
-               pooled = True
-            else:
-               poolMembers.append(mip)
-            
-    # print server.discover_server()
-
-except Error, v:
-    print "ERROR", v

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/scripts/ovs_agent_plugin/cloudstack.py
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/scripts/ovs_agent_plugin/cloudstack.py b/plugins/hypervisors/ovm3/scripts/ovs_agent_plugin/cloudstack.py
deleted file mode 100644
index f655760..0000000
--- a/plugins/hypervisors/ovm3/scripts/ovs_agent_plugin/cloudstack.py
+++ /dev/null
@@ -1,344 +0,0 @@
-#!/usr/bin/python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-import logging
-import time
-import re
-import os.path
-import paramiko
-import subprocess
-import socket
-
-from xen.util.xmlrpcclient import ServerProxy
-from xmlrpclib import Error
-from xen.xend import XendClient
-from agent.api.base import Agent
-from agent.lib.settings import get_api_version
-from xen.xend import sxp
-
-class CloudStack(Agent):
-    """
-    Cloudstack plugin for OVM3.2.x.
-    """
-
-    # exposed services
-    def get_services(self, version=None):
-        return {
-            'call': call,
-            'get_vncport': getVncPort,
-            'exec_domr': domrExec,
-            'check_domr_port': domrCheckPort,
-            'check_domr_ssh': domrCheckSsh,
-            'ovs_control_interface': ovsControlInterface,
-            'ovs_mkdir': ovsMkdir,
-            'ovs_check_file': ovsCheckFile,
-            'ovs_upload_ssh_key': ovsUploadSshKey,
-            'ovs_dom0_stats': ovsDom0Stats,
-            'ovs_domU_stats': ovsDomUStats,
-            'get_module_version': getModuleVersion,
-            'ping': ping,
-#            'ovs_agent_set_ssl': ovsAgentSetSsl,
-#            'ovs_agent_set_port': ovsAgentSetPort,
-#            'ovs_restart_agent': ovsRestartAgent,
-        }
-
-    def getName(self):
-        return self.__class__.__name__
-
-# which version are we intended for?
-def getModuleVersion():
-    return "0.1"
-
-# call test
-def call(msg):
-    return msg
-
-# execute something on domr
-def domrExec(ip, cmd, timeout=10, username="root", port=3922, keyfile="~/.ssh/id_rsa.cloud"):
-    ssh = paramiko.SSHClient()
-    ssh.load_system_host_keys()
-    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
-    privatekeyfile = os.path.expanduser(keyfile)
-    key = paramiko.RSAKey.from_private_key_file(privatekeyfile)
-    ssh.connect(ip, port, username, pkey=key, timeout=timeout)
-    ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(cmd)
-    exit_status = ssh_stdout.channel.recv_exit_status()
-    ssh.close()
-    return { "rc": exit_status,
-        "out": ''.join(ssh_stdout.readlines()),
-        "err": ''.join(ssh_stderr.readlines()) };
-
-# check a port on domr
-def domrPort(ip, port=3922, timeout=3):
-    return domrCheckPort(ip, port, timeout=timeout)
-
-# check a port on domr
-def domrCheckPort(ip, port=3922, timeout=3):
-    try:
-        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-        s.settimeout(timeout)
-        s.connect((ip, port))
-        s.close()
-        return True
-    except:
-        return False
-
-# check ssh
-def domrCheckSsh(ip, port=3922, timeout=10):
-    x = domrExec(ip, "", port=port, timeout=timeout)
-    if (x.get("rc") == 0):
-        return True
-    return False
-
-def _ovsIni(setting, set):
-    ini="/etc/ovs-agent/agent.ini"
-    replaced=False
-    if os.path.isfile(ini):
-        import fileinput
-        for line in fileinput.FileInput(ini, inplace=1):
-                line=line.rstrip('\n')
-                if re.search("%s=" % setting, line):
-                    line="%s=%s" % (setting, set)
-                    replaced=True
-                print line
-    return replaced
-
-# enable/disable ssl for the agent
-def ovsAgentSetSsl(state):
-    ena="disable"
-    if state and state != "disable" and state.lower() != "false":
-        ena="enable"
-    return _ovsIni("ssl", ena)
-
-def ovsAgentSetPort(port):
-    return _ovsIni("port", port)
-
-def ovsRestartAgent():
-    return restartService("ovs-agent")
-
-# replace with popen
-def restartService(service):
-    command = ['service', service, 'restart'];
-    subprocess.call(command, shell=False)
-    return True
-
-# sets the control interface and removes the route net entry
-def ovsControlInterface(dev, ipmask):
-    command = ['route', 'del', '-net', ipmask];
-    subprocess.call(command, shell=False)
-    command = ['ifconfig', dev, 'arp']
-    subprocess.call(command, shell=False)
-    return True
-
-# create a dir if we need it
-def ovsMkdir(dir, mode=0700):
-    if not os.path.exists(dir):
-        return os.makedirs(dir, mode)
-    return True
-
-# if a file exists, easy
-def ovsCheckFile(file):
-    if os.path.isfile(file):
-        return True
-    return False
-
-# upload keys
-def ovsUploadSshKey(keyfile, content):
-    keydir=os.path.expanduser("~/.ssh")
-    key="%s/%s" % (keydir, keyfile)
-    try:
-        ovsMkdir(os.path.expanduser(keydir))
-    except Error, v:
-        print "was already there %s" % keydir
-
-    try:
-        text_file = open("%s" % key, "w")
-        text_file.write("%s" % content)
-        text_file.close()
-    except Error, v:
-        print "something went wrong %s" % v
-        return False
-    return True
-
-
-# older python,
-def ovsDom0Stats(bridge):
-    stats={}
-    stats['cpu'] = "%s" % (100 - float(os.popen("top -b -n 1 | grep Cpu\(s\): | cut -d% -f4|cut -d, -f2").read()))
-    stats['free'] = "%s" % (1048576 * int(os.popen("xm info | grep free_memory | awk '{ print $3 }'").read()))
-    stats['total'] = "%s" % (1048576 * int(os.popen("xm info | grep total_memory | awk '{ print $3 }'").read()))
-    stats['tx'] = os.popen("netstat -in | grep %s | head -1 | awk '{print $4 }'" % bridge).read()
-    stats['rx'] = os.popen("netstat -in | grep %s | head -1 | awk '{print $8 }'" % bridge).read()
-    return stats
-
-def getVncPort(domain):
-    port = "0"
-    if re.search("\w-(\d+-)?\d+-VM", domain):
-        server=ServerProxy(XendClient.uri)
-        dom=server.xend.domain(domain, 1)
-        devices = [child for child in sxp.children(dom)
-            if len(child) > 0 and child[0] == "device"]
-        vfbs_sxp = map(lambda x: x[1], [device for device in devices 
-            if device[1][0] == "vfb"])[0]
-        loc=[child for child in vfbs_sxp
-            if child[0] == "location"][0][1]
-        listner, port = loc.split(":")
-    else:
-        print "no valid domain: %s" % domain
-    return port
-
-def get_child_by_name(exp, childname, default = None):
-    try:
-        return [child for child in sxp.children(exp)
-                if child[0] == childname][0][1]
-    except:
-        return default
-
-def ovsDomUStats(domain):
-    _rd_bytes=0
-    _wr_bytes=0
-    _rd_ops=0
-    _wr_ops=0
-    _tx_bytes=0
-    _rx_bytes=0
-    stats={}
-    server=ServerProxy(XendClient.uri)
-    dominfo=server.xend.domain(domain, 1)
-    domid=get_child_by_name(dominfo, "domid")
-
-    # vbds
-    devs = server.xend.domain.getDeviceSxprs(domain, 'vbd')
-    devids = [dev[0] for dev in devs]
-    for dev in devids:
-        sys_path="/sys/devices/%s-%s-%s/statistics" % ("vbd", domid, dev)
-        _rd_bytes += long(open("%s/rd_sect" % sys_path).readline().strip())
-        _wr_bytes += long(open("%s/wr_sect" % sys_path).readline().strip())
-        _rd_ops += long(open("%s/rd_req" % sys_path).readline().strip())
-        _wr_ops += long(open("%s/wr_req" % sys_path).readline().strip())
-
-    # vifs
-    devs = server.xend.domain.getDeviceSxprs(domain, 'vif')
-    devids = [dev[0] for dev in devs]
-    for dev in devids:
-        vif="vif%s.%s" % (domid, dev)
-        sys_path="/sys/devices/%s-%s-%s/net/%s/statistics" % ("vif", domid, dev, vif)
-        _tx_bytes += long(open("%s/tx_bytes" % sys_path).readline().strip())
-        _rx_bytes += long(open("%s/rx_bytes" % sys_path).readline().strip())
-
-    epoch=time.time()
-    stats['rd_bytes'] = "%s" % (_rd_bytes * 512)
-    stats['wr_bytes'] = "%s" % (_wr_bytes * 512)
-    stats['rd_ops'] = "%s" % (_rd_ops)
-    stats['wr_ops'] = "%s" % (_wr_ops)
-    stats['tx_bytes'] = "%s" % (_tx_bytes)
-    stats['rx_bytes'] = "%s" % (_rx_bytes)
-    stats['cputime']= "%s" % get_child_by_name(dominfo, "cpu_time")
-    stats['uptime']= "%s" % (epoch - get_child_by_name(dominfo, "start_time"))
-    stats['vcpus']= "%s" % get_child_by_name(dominfo, "online_vcpus")
-    return stats
-
-def ping(host, count=3):
-    if os.system("ping -c %s %s " % (count, host)) == 0:
-        return True
-    return False
-
-# add SystemVM stuff here....
-#
-
-#
-# Self deploy and integration, not de-integration 
-# should return False if fails
-#
-# install us if we are missing in: 
-# /usr/lib64/python2.4/site-packages/agent/api
-# and add our hooks in:
-# /usr/lib64/python2.4/site-packages/agent/target/api.py
-if __name__ == '__main__':
-    from distutils.sysconfig import get_python_lib
-    from agent.target.api import MODULES
-    from shutil import copyfile
-    import inspect, os, hashlib, getopt, sys
-
-    # default vars
-    exist=False
-    agentpath="%s/agent" % (get_python_lib(1))
-    api="%s/target/api.py" % (agentpath)
-    modpath="%s/api" % (agentpath)
-    ssl="disable"
-    port=0
-
-    # get options
-    try:
-        opts, args = getopt.getopt(sys.argv[1:], "sp::", 
-            [ 'port=','ssl='])
-    except getopt.GetoptError:
-        print "Available Options: --port=, --ssl="
-        sys.exit()
-
-    for o, a in opts:
-        if o in ('-s', '--ssl'):
-            ssl = a
-        if o in ('-p', '--port'):
-            port = int(a)
-
-    # check if we're in the modules already
-    cs = CloudStack()
-    for mod in MODULES:
-        if re.search(cs.getName(), "%s" % (mod)):
-            exist=True
-
-    # if we're not:
-    if not exist:
-        if os.path.isfile(api):
-            import fileinput
-            for line in fileinput.FileInput(api, inplace=1):
-                line=line.rstrip('\n')
-                if re.search("import common", line):
-                    line="%s, cloudstack" % (line)
-                if re.search("MODULES", line):
-                    n=cs.getName()
-                    line="%s\n\t%s.%s," % (line, n.lower(), n)
-                print line
-            print "Api inserted, %s in %s" % (cs.getName(), api)
-        else:
-            print "Api missing, %s" % (api)
-    else:
-        print "Api present, %s in %s" % (cs.getName(), api)
-
-    # either way check our version and install if checksum differs
-    modfile="%s/%s.py" % (modpath, cs.getName().lower())
-    me=os.path.abspath(__file__)
-    if os.path.isfile(modfile):
-        if hashlib.md5(open(me).read()).hexdigest() != hashlib.md5(open(modfile).read()).hexdigest():
-            print "Module copy, %s" % (modfile)
-            copyfile(me, modfile)
-        else:
-            print "Module correct, %s" % (modfile)
-    else:
-        print "Module copy, %s" % (modfile)
-        copyfile(me, modfile)
-    
-    # setup ssl and port
-    if ssl:
-        ovsAgentSetSsl(ssl)
-    if port > 1024:
-        ovsAgentSetPort(port)
-
-    # restart either way
-    ovsRestartAgent()

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/scripts/password.py
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/scripts/password.py b/plugins/hypervisors/ovm3/scripts/password.py
deleted file mode 100755
index 25404a9..0000000
--- a/plugins/hypervisors/ovm3/scripts/password.py
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/usr/bin/python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-import os, sys, subprocess, socket,fcntl, struct
-from socket import gethostname
-from xml.dom.minidom import parseString
-
-from xmlrpclib import ServerProxy, Error
-
-def spCon(proto, host, port):
-    print "trying %s on %s:%s" % (proto, host, port)
-    try:
-        x=ServerProxy("%s://%s:%s" % (proto, host, port))
-        x.echo(proto)
-        return x
-    except Error, v:
-        print "ERROR", v
-        return
-
-def getCon(host, port):
-    try:
-        server = spCon("http", host, port)
-    except Error, v:
-        print "ERROR", v
-        server = spCon("https", host, port)
-
-    return server
-
-# hmm master actions don't apply to a slave
-port=8899
-user = "oracle"
-password = "test123"
-auth = "%s:%s" % (user, password)
-host = "localhost"
-
-print "setting up password"
-try:
-    con = getCon(host, port)
-    print con.update_agent_password(user, password)
-except Error, v:
-    print "ERROR", v

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/scripts/repo_pool.py
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/scripts/repo_pool.py b/plugins/hypervisors/ovm3/scripts/repo_pool.py
deleted file mode 100755
index 71feca8..0000000
--- a/plugins/hypervisors/ovm3/scripts/repo_pool.py
+++ /dev/null
@@ -1,186 +0,0 @@
-#!/usr/bin/python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-import os, sys, subprocess, socket,fcntl, struct
-from socket import gethostname
-from xml.dom.minidom import parseString
-
-from xmlrpclib import ServerProxy, Error
-
-def get_ip_address(ifname):
-    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-    return socket.inet_ntoa(fcntl.ioctl(
-        s.fileno(),
-        0x8915,  # SIOCGIFADDR
-        struct.pack('256s', ifname[:15])
-    )[20:24])
-
-def is_it_up(host, port):
-    try:
-        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-        s.settimeout(1)
-        s.connect((host, port))
-        s.close()
-    except:
-        print "host: %s:%s DOWN" % (host, port)
-        return False
-
-    print "host: %s:%s UP" % (host, port)
-    return True
-
-# hmm master actions don't apply to a slave
-master="192.168.1.161"
-port=8899
-user = "oracle"
-password = "*******"
-auth = "%s:%s" % (user, password)
-server = ServerProxy("http://%s:%s" % ("localhost", port))
-mserver = ServerProxy("http://%s@%s:%s" % (auth, master, port))
-poolNode=True
-interface = "c0a80100"
-role='xen,utility'
-hostname=gethostname()
-ip = get_ip_address(interface)
-poolMembers = []
-xserver = server
-
-print "setting up password"
-server.update_agent_password(user, password)
-
-if (is_it_up(master, port)):
-    print "master seems to be up, slaving"
-    xserver = mserver
-else:
-    print "no master yet, will become master"
-
-# other mechanism must be used to make interfaces equal...
-try:
-    # pooling related same as primary storage!
-    poolalias="Pool 0"
-    poolid="0004fb0000020000ba9aaf00ae5e2d73"
-    poolfsnfsbaseuuid="7718562d-872f-47a7-b454-8f9cac4ffa3a"
-    pooluuid=poolid
-    poolfsuuid=poolid
-    clusterid="ba9aaf00ae5e2d72"
-    mgr="d1a749d4295041fb99854f52ea4dea97"
-    poolmvip=master
-
-    poolfsnfsbaseuuid="6824e646-5908-48c9-ba44-bb1a8a778084"
-    repoid="6824e646590848c9ba44bb1a8a778084"
-    poolid=repoid
-    repo="/OVS/Repositories/%s" % (repoid)
-    repomount="cs-mgmt:/volumes/cs-data/secondary"
-
-    # primary
-    primuuid="7718562d872f47a7b4548f9cac4ffa3a"
-    ssuuid="7718562d-872f-47a7-b454-8f9cac4ffa3a"
-    fshost="cs-mgmt"
-    fstarget="/volumes/cs-data/primary"
-    fstype="nfs"
-    fsname="Primary storage"
-    fsmntpoint="%s:%s" % (fshost, fstarget)
-    fsmnt="/nfsmnt/%s" % (ssuuid)
-    fsplugin="oracle.generic.NFSPlugin.GenericNFSPlugin"
-
-    # set the basics we require to "operate"
-    print server.take_ownership(mgr, '')
-    print server.update_server_roles(role,)
-
-    # if we're pooling pool...
-    if (poolNode == True):
-        poolCount = 0
-        pooled = False
-
-        # check pooling
-        try:
-            poolDom = parseString(xserver.discover_server_pool())
-            print xserver.discover_server_pool()
-            for node in poolDom.getElementsByTagName('Server_Pool'):
-                id = node.getElementsByTagName('Unique_Id')[0].firstChild.nodeValue
-                alias = node.getElementsByTagName('Pool_Alias')[0].firstChild.nodeValue
-                mvip = node.getElementsByTagName('Master_Virtual_Ip')[0].firstChild.nodeValue
-                print "pool: %s, %s, %s" % (id, mvip, alias)
-                members = node.getElementsByTagName('Member')
-                for member in members:
-                    poolCount = poolCount + 1
-                    mip = member.getElementsByTagName('Registered_IP')[0].firstChild.nodeValue
-                    print "member: %s" % (mip)
-                    if mip == ip:
-                        pooled = True
-                    else:
-                        poolMembers.append(mip)
-
-        except Error,v:
-            print "no master will become master, %s" % v
-            
-        if (pooled == False):
-            # setup the repository
-            print "setup repo"
-            print server.mount_repository_fs(repomount, repo)
-            try:    
-                print "adding repo"
-                print server.add_repository(repomount, repo)
-            except Error, v:
-                print "will create the repo, as it's not there", v
-                print server.create_repository(repomount, repo, repoid, "repo") 
-
-            print "not pooled!"
-            if (poolCount == 0):
-                print "no pool yet, create it"
-                # check if a pool exists already if not create 
-                # pool if so add us to the pool
-                print "create pool fs"
-                print server.create_pool_filesystem(
-                    fstype, 
-                    "%s/VirtualMachines/" % repomount,
-                    clusterid,
-                    poolfsuuid,
-                    poolfsnfsbaseuuid,
-                    mgr,
-                    pooluuid
-                )
-                print "create pool"      
-                print server.create_server_pool(poolalias, 
-                    pooluuid, 
-                    poolmvip, 
-                    poolCount, 
-                    hostname, 
-                    ip, 
-                    role
-                )
-            else:
-                print "join the pool"
-                print server.join_server_pool(poolalias,
-                    pooluuid,
-                    poolmvip,
-                    poolCount,
-                    hostname,
-                    ip,
-                    role
-                )
-
-        # add member to ip list ?
-        poolMembers.append(ip)
-        print "mambers for pool: %s" % poolMembers
-        print xserver.set_pool_member_ip_list(poolMembers)
-
-    print server.discover_server_pool()
-
-except Error, v:
-    print "ERROR", v

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/scripts/simple_pool.py
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/scripts/simple_pool.py b/plugins/hypervisors/ovm3/scripts/simple_pool.py
deleted file mode 100755
index 756de93..0000000
--- a/plugins/hypervisors/ovm3/scripts/simple_pool.py
+++ /dev/null
@@ -1,209 +0,0 @@
-#!/usr/bin/python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-import os, sys, subprocess, socket,fcntl, struct
-from socket import gethostname
-from xml.dom.minidom import parseString
-import errno
-from socket import error as socket_error
-
-from xmlrpclib import ServerProxy, Error
-
-def spCon(proto, auth, host, port):
-    print "trying %s on %s@%s:%s" % (proto, auth, host, port)
-    try:
-        x=ServerProxy("%s://%s@%s:%s" % (proto, auth, host, port))
-        x.echo(proto)
-        return x
-    except Error, v:
-        return
-    except socket_error, serr:
-        return
-
-def getCon(auth, host, port):
-    try:    
-        server = spCon("http", auth, host, port)
-        if server:
-            return server
-        else:
-            server = spCon("https", auth, host, port)
-    except Error, v:
-        print "ERROR", v
-    return server
-
-def get_ip_address(ifname):
-    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-    return socket.inet_ntoa(fcntl.ioctl(
-        s.fileno(),
-        0x8915,  # SIOCGIFADDR
-        struct.pack('256s', ifname[:15])
-    )[20:24])
-
-# hmm master actions don't apply to a slave
-master="192.168.1.161"
-port=8899
-passw='test123'
-user='oracle'
-auth="%s:%s" % (user, passw)
-server = getCon(auth, "localhost", port)
-mserver = getCon(auth, master, port)
-try:
-    mserver.echo("test")
-except AttributeError, v:
-    print "no mserver, becoming mserver"
-    mserver=server
-
-poolNode=True
-interface = "c0a80100"
-role='xen,utility'
-hostname=gethostname()
-ip = get_ip_address(interface)
-nodes=[]
-
-try:
-    # pooling related same as primary storage!
-    poolalias="Pool 0"
-    clusterid="ba9aaf00ae5e2d72"
-    mgr="d1a749d4295041fb99854f52ea4dea97"
-    poolmvip=master
-
-    # primary
-    primuuid="7718562d872f47a7b4548f9cac4ffa3a"
-    ssuuid="7718562d-872f-47a7-b454-8f9cac4ffa3a"
-    fshost="cs-mgmt"
-    fstarget="/volumes/cs-data/primary/ovm"
-    fstype="nfs"
-    fsname="Primary storage"
-    fsmntpoint="%s:%s" % (fshost, fstarget)
-    fsmntpoint2="%s:%s" % (fshost, "/volumes/cs-data/secondary")
-    fsmntpoint="%s/VirtualMachines" % (fsmntpoint2)
-    fsmnt="/nfsmnt/%s" % (ssuuid)
-    fsplugin="oracle.generic.NFSPlugin.GenericNFSPlugin"
-    repo="/OVS/Repositories/%s" % (primuuid)
-
-    # set the basics we require to "operate"
-    print server.take_ownership(mgr, '')
-    print server.update_server_roles(role,)
-
-    # setup the repository
-    print server.mount_repository_fs(fsmntpoint2, repo)
-    try:
-        print server.add_repository(fsmntpoint2, repo)
-    except Error, v:
-        print "will create the repo, as it's not there", v
-        print server.create_repository(fsmntpoint2, repo, primuuid, "A repository")
-    
-    # if we're pooling pool...
-    if (poolNode == True):
-        poolCount = 0
-        pooled = False
-
-        # check pooling
-       	poolDom = parseString(mserver.discover_server_pool())
-        for node in poolDom.getElementsByTagName('Server_Pool'):
-            id = node.getElementsByTagName('Unique_Id')[0].firstChild.nodeValue
-            alias = node.getElementsByTagName('Pool_Alias')[0].firstChild.nodeValue
-            mvip = node.getElementsByTagName('Master_Virtual_Ip')[0].firstChild.nodeValue
-            print "pool: %s, %s, %s" % (id, mvip, alias)
-            members = node.getElementsByTagName('Member')
-            for member in members:
-                poolCount = poolCount + 1
-                mip = member.getElementsByTagName('Registered_IP')[0].firstChild.nodeValue
-                if (mip == ip):
-                    pooled = True
-                else:
-                    nodes.append(mip)
-                print "member: %s" % (mip)
-
-        # if (pooled == False):
-        try:
-            if (poolCount == 0):
-                print "master"
-                # check if a pool exists already if not create 
-                # pool if so add us to the pool
-                print server.configure_virtual_ip(master, ip)
-                print server.create_pool_filesystem(
-                    fstype, 
-                    fsmntpoint,
-                    clusterid,
-                    primuuid,
-                    ssuuid,
-                    mgr,
-                    primuuid
-                )       
-                print server.create_server_pool(poolalias, 
-                    primuuid, 
-                    poolmvip, 
-                    poolCount, 
-                    hostname, 
-                    ip, 
-                    role
-                )
-            else:
-                try:
-                    print "slave"
-                    print server.join_server_pool(poolalias,
-                        primuuid,
-                        poolmvip,
-                        poolCount,
-                        hostname,
-                        ip,
-                        role
-                    )
-                except Error, v:
-                    print "host already part of pool?: %s" % (v)
-                    
-            nodes.append(ip)
-            for node in nodes:
-                # con = getCon(auth, node, port)
-                # print con.set_pool_member_ip_list(nodes);
-                print mserver.dispatch("http://%s@%s:%s/api/3" % (auth, node, port), "set_pool_member_ip_list", nodes)
-            # print server.configure_virtual_ip(master, ip)
-        except Error, e:
-            print "something went wrong: %s" % (e)
-
-    # sys.exit()
-    # mount the primary fs
-    print server.storage_plugin_mount(
-        fsplugin, 
-        {
-            'uuid': primuuid, 
-            'storage_desc': fsname, 
-            'access_host': fshost, 
-            'storage_type': 'FileSys', 
-            'name':primuuid 
-       }, 
-        {
-            'status': '', 
-            'uuid': ssuuid,
-            'ss_uuid': primuuid, 
-            'size': 0, 
-            'state': 1, 
-            'access_grp_names': [], 
-            'access_path': fsmntpoint,
-            'name': fsname
-        },
-        fsmnt,
-        '', 
-        True, 
-        []
-    )
-
-except Error, v:
-    print "ERROR", v

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/scripts/socat.sh
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/scripts/socat.sh b/plugins/hypervisors/ovm3/scripts/socat.sh
deleted file mode 100755
index c3fbc44..0000000
--- a/plugins/hypervisors/ovm3/scripts/socat.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-CERT="/etc/ovs-agent/cert"
-socat OPENSSL-LISTEN:8899,reuseaddr,fork,verify=0,key=$CERT/key.pem,cert=$CERT/certificate.pem TCP:localhost:8898 &

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/scripts/tail.sh
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/scripts/tail.sh b/plugins/hypervisors/ovm3/scripts/tail.sh
deleted file mode 100755
index fe88bc0..0000000
--- a/plugins/hypervisors/ovm3/scripts/tail.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-cd /var/log 
-tail -f ovm-consoled.log devmon.log messages ovs-agent.log ovmwatch.log

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/src/com/cloud/ha/Ovm3Investigator.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/com/cloud/ha/Ovm3Investigator.java b/plugins/hypervisors/ovm3/src/com/cloud/ha/Ovm3Investigator.java
deleted file mode 100644
index 980fa1f..0000000
--- a/plugins/hypervisors/ovm3/src/com/cloud/ha/Ovm3Investigator.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.cloud.ha;
-
-import java.util.List;
-
-import javax.ejb.Local;
-import javax.inject.Inject;
-
-import org.apache.log4j.Logger;
-
-import com.cloud.agent.AgentManager;
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.CheckOnHostCommand;
-import com.cloud.host.Host;
-import com.cloud.host.HostVO;
-import com.cloud.host.Status;
-import com.cloud.host.dao.HostDao;
-import com.cloud.hypervisor.Hypervisor;
-import com.cloud.resource.ResourceManager;
-import com.cloud.utils.component.AdapterBase;
-
-@Local(value = Investigator.class)
-public class Ovm3Investigator extends AdapterBase implements Investigator {
-    private final static Logger s_logger = Logger.getLogger(Ovm3Investigator.class);
-    @Inject
-    HostDao _hostDao;
-    @Inject
-    AgentManager _agentMgr;
-    @Inject
-    ResourceManager _resourceMgr;
-
-    @Override
-    public Boolean isVmAlive(com.cloud.vm.VirtualMachine vm, Host host) {
-        Status status = isAgentAlive(host);
-        if (status == null) {
-            return null;
-        }
-        return status == Status.Up ? true : null;
-    }
-
-    @Override
-    public Status isAgentAlive(Host agent) {
-        if (agent.getHypervisorType() != Hypervisor.HypervisorType.Ovm3) {
-            return null;
-        }
-        CheckOnHostCommand cmd = new CheckOnHostCommand(agent);
-        List<HostVO> neighbors = _resourceMgr.listHostsInClusterByStatus(agent.getClusterId(), Status.Up);
-        for (HostVO neighbor : neighbors) {
-            if (neighbor.getId() == agent.getId() || neighbor.getHypervisorType() != Hypervisor.HypervisorType.Ovm3) {
-                continue;
-            }
-            try {
-                Answer answer = _agentMgr.easySend(neighbor.getId(), cmd);
-                if (answer != null) {
-                    return answer.getResult() ? Status.Down : Status.Up;
-                }
-            } catch (Exception e) {
-                s_logger.debug("Failed to send command to host: " + neighbor.getId());
-            }
-        }
-
-        return null;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/src/com/cloud/hypervisor/ovm3/hypervisor/Ovm3Discoverer.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/com/cloud/hypervisor/ovm3/hypervisor/Ovm3Discoverer.java b/plugins/hypervisors/ovm3/src/com/cloud/hypervisor/ovm3/hypervisor/Ovm3Discoverer.java
deleted file mode 100755
index bd1d90d..0000000
--- a/plugins/hypervisors/ovm3/src/com/cloud/hypervisor/ovm3/hypervisor/Ovm3Discoverer.java
+++ /dev/null
@@ -1,411 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.hypervisor.ovm3.hypervisor;
-
-import java.net.InetAddress;
-import java.net.URI;
-import java.net.UnknownHostException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import javax.ejb.Local;
-import javax.inject.Inject;
-import javax.naming.ConfigurationException;
-
-import org.apache.log4j.Logger;
-import org.apache.xmlrpc.XmlRpcException;
-
-import com.cloud.agent.Listener;
-import com.cloud.agent.AgentManager;
-import com.cloud.agent.api.AgentControlAnswer;
-import com.cloud.agent.api.AgentControlCommand;
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.Command;
-import com.cloud.host.Status;
-import com.cloud.agent.api.StartupCommand;
-import com.cloud.agent.api.StartupRoutingCommand;
-import com.cloud.configuration.Config;
-import com.cloud.dc.ClusterVO;
-import com.cloud.dc.dao.ClusterDao;
-import com.cloud.dc.ClusterDetailsDao;
-// import com.cloud.exception.DiscoveryException;
-import com.cloud.host.HostInfo;
-import com.cloud.host.HostVO;
-import com.cloud.host.Host;
-import com.cloud.host.dao.HostDao;
-import com.cloud.hypervisor.Hypervisor.HypervisorType;
-import com.cloud.hypervisor.ovm3.object.Linux;
-import com.cloud.hypervisor.ovm3.object.Connection;
-import com.cloud.resource.Discoverer;
-import com.cloud.resource.DiscovererBase;
-import com.cloud.resource.ResourceManager;
-import com.cloud.resource.ResourceStateAdapter;
-import com.cloud.resource.ServerResource;
-import com.cloud.resource.UnableDeleteHostException;
-import com.cloud.utils.db.QueryBuilder;
-import com.cloud.utils.db.SearchCriteria;
-import com.cloud.utils.exception.CloudRuntimeException;
-import com.cloud.utils.ssh.SSHCmdHelper;
-
-@Local(value = Discoverer.class)
-public class Ovm3Discoverer extends DiscovererBase implements Discoverer,
-        Listener, ResourceStateAdapter {
-    private static final Logger s_logger = Logger
-            .getLogger(Ovm3Discoverer.class);
-    protected String _publicNetworkDevice;
-    protected String _privateNetworkDevice;
-    protected String _guestNetworkDevice;
-    protected String _storageNetworkDevice;
-    private String _ovsAgentPath = "/etc/ovs-agent/agent.ini";
-
-    @Inject
-    ClusterDao _clusterDao;
-    @Inject
-    ClusterDetailsDao _clusterDetailsDao;
-    @Inject
-    ResourceManager _resourceMgr;
-    @Inject
-    AgentManager _agentMgr;
-    @Inject
-    HostDao _hostDao = null;
-
-    @Override
-    public boolean configure(String name, Map<String, Object> params)
-            throws ConfigurationException {
-        super.configure(name, params);
-        /* these are in Config.java */
-        _publicNetworkDevice = _params.get(Config.Ovm3PublicNetwork.key());
-        _privateNetworkDevice = _params.get(Config.Ovm3PrivateNetwork.key());
-        _guestNetworkDevice = _params.get(Config.Ovm3GuestNetwork.key());
-        _storageNetworkDevice = _params.get(Config.Ovm3StorageNetwork.key());
-        _resourceMgr.registerResourceStateAdapter(this.getClass()
-                .getSimpleName(), this);
-        return true;
-    }
-
-    protected Ovm3Discoverer() {
-    }
-
-    @Override
-    public boolean stop() {
-        _resourceMgr.unregisterResourceStateAdapter(this.getClass()
-                .getSimpleName());
-        return super.stop();
-    }
-
-    private boolean checkIfExisted(String guid) {
-        QueryBuilder<HostVO> sc = QueryBuilder.create(HostVO.class);
-        sc.and(sc.entity().getGuid(), SearchCriteria.Op.EQ, guid);
-        sc.and(sc.entity().getHypervisorType(), SearchCriteria.Op.EQ,
-                HypervisorType.Ovm3);
-        List<HostVO> hosts = sc.list();
-        return !hosts.isEmpty();
-    }
-
-    @Override
-    public Map<? extends ServerResource, Map<String, String>> find(long dcId,
-            Long podId, Long clusterId, URI url, String username,
-            String password, List<String> hostTags)
-            throws CloudRuntimeException {
-        Connection c = null;
-
-        if (url.getScheme().equals("http") || url.getScheme().equals("https")) {
-            String msg = "Discovering " + url
-                + ": " + _params;
-            s_logger.debug(msg);
-        } else {
-            String msg = "urlString is not http(s) so we're not taking care of the discovery for this: "
-                    + url;
-            s_logger.debug(msg);
-            throw new CloudRuntimeException(msg);
-        }
-
-        if (clusterId == null) {
-            String msg = "must specify cluster Id when add host";
-            s_logger.debug(msg);
-            throw new CloudRuntimeException(msg);
-        }
-
-        if (podId == null) {
-            String msg = "must specify pod Id when add host";
-            s_logger.debug(msg);
-            throw new CloudRuntimeException(msg);
-        }
-
-        ClusterVO cluster = _clusterDao.findById(clusterId);
-        if (cluster == null
-                || (cluster.getHypervisorType() != HypervisorType.Ovm3)) {
-            String msg = "invalid cluster id or cluster is not for Ovm3 hypervisors";
-            s_logger.info(msg);
-            throw new CloudRuntimeException(msg);
-        } else {
-            s_logger.info("cluster: " + cluster);
-        }
-
-        String agentUsername = _params.get("agentusername");
-        if (agentUsername == null) {
-            String msg = "Agent user name must be specified";
-            s_logger.info(msg);
-            throw new CloudRuntimeException(msg);
-        }
-
-        String agentPassword = _params.get("agentpassword");
-        if (agentPassword == null) {
-            String msg = "Agent password must be specified";
-            s_logger.info(msg);
-            throw new CloudRuntimeException(msg);
-        }
-
-        String agentPort = _params.get("agentport");
-        if (agentPort == null) {
-            String msg = "Agent port must be specified";
-            s_logger.info(msg);
-            throw new CloudRuntimeException(msg);
-        }
-
-        try {
-            String hostname = url.getHost();
-            /* port = url.getPort(); */
-
-            InetAddress ia = InetAddress.getByName(hostname);
-            String hostIp = ia.getHostAddress();
-            String guid = UUID.nameUUIDFromBytes(hostIp.getBytes()).toString();
-
-            if (checkIfExisted(guid)) {
-                String msg = "The host " + hostIp + " has been added before";
-                s_logger.debug(msg);
-                throw new CloudRuntimeException(msg);
-            }
-
-            s_logger.debug("Ovm3 discover is going to disover host having guid "
-                    + guid);
-
-            ClusterVO clu = _clusterDao.findById(clusterId);
-            if (clu.getGuid() == null) {
-                clu.setGuid(UUID.randomUUID().toString());
-            }
-            _clusterDao.update(clusterId, clu);
-            Map<String, String> clusterDetails = _clusterDetailsDao
-                    .findDetails(clusterId);
-            String ovm3vip = (clusterDetails.get("ovm3vip") == null) ? ""
-                    : clusterDetails.get("ovm3vip");
-            String ovm3pool = (clusterDetails.get("ovm3pool") == null) ? "false"
-                    : clusterDetails.get("ovm3pool");
-            String ovm3cluster = (clusterDetails.get("ovm3cluster") == null) ? "false"
-                    : clusterDetails.get("ovm3cluster");
-
-            /* should perhaps only make this connect to the agent port ? */
-            com.trilead.ssh2.Connection sshConnection = new com.trilead.ssh2.Connection(
-                    hostIp, 22);
-            sshConnection.connect(null, 60000, 60000);
-            sshConnection = SSHCmdHelper.acquireAuthorizedConnection(hostIp,
-                    username, password);
-            if (sshConnection == null) {
-                String msg = String.format("Cannot connect to Ovm3 host(IP=%1$s, username=%2$s, password=*******), discovery failed",
-                        hostIp, username);
-                s_logger.warn(msg);
-                throw new CloudRuntimeException(msg);
-            }
-
-            Map<String, String> details = new HashMap<String, String>();
-            Ovm3ResourceBase ovmResource = new Ovm3ResourceBase();
-            details.put("ip", hostIp);
-            details.put("host", hostname);
-            details.put("username", username);
-            details.put("password", password);
-            details.put("zone", Long.toString(dcId));
-            details.put("guid", guid);
-            details.put("pod", Long.toString(podId));
-            details.put("cluster", Long.toString(clusterId));
-            details.put("agentusername", agentUsername);
-            details.put("agentpassword", agentPassword);
-            details.put("agentport", agentPort.toString());
-            details.put("ovm3vip", ovm3vip);
-            details.put("ovm3pool", ovm3pool);
-            details.put("ovm3cluster", ovm3cluster);
-
-            if (_publicNetworkDevice != null) {
-                details.put("public.network.device", _publicNetworkDevice);
-            }
-            if (_privateNetworkDevice != null) {
-                details.put("private.network.device", _privateNetworkDevice);
-            }
-            if (_guestNetworkDevice != null) {
-                details.put("guest.network.device", _guestNetworkDevice);
-            }
-            if (_storageNetworkDevice != null) {
-                details.put("storage.network.device", _storageNetworkDevice);
-            }
-            s_logger.warn("network devices: " + _guestNetworkDevice + " "
-                    + _privateNetworkDevice + " " + _publicNetworkDevice + " "
-                    + _storageNetworkDevice);
-
-            Map<String, Object> params = new HashMap<String, Object>();
-            params.putAll(details);
-
-            ovmResource.configure(hostname, params);
-            ovmResource.start();
-
-            try {
-                c = new Connection(hostIp, Integer.parseInt(agentPort), agentUsername, agentPassword);
-            } catch (Exception e) {
-                String msg = String.format("Cannot connect to Ovm3 agent(IP=%1$s, Port=%1$, username=%3$s, password=*******), discovery failed",
-                        hostIp, agentPort, agentUsername);
-                s_logger.warn(msg);
-                throw new CloudRuntimeException(msg);
-            }
-            /* After resource start, we are able to execute our agent api */
-            Linux host = new Linux(c);
-            details.put("agentVersion", host.getAgentVersion());
-            details.put(HostInfo.HOST_OS_KERNEL_VERSION,
-                    host.getHostKernelRelease());
-            details.put(HostInfo.HOST_OS, host.getHostOs());
-            details.put(HostInfo.HOST_OS_VERSION, host.getHostOsVersion());
-            details.put(HostInfo.HYPERVISOR_VERSION,
-                    host.getHypervisorVersion());
-
-            Map<Ovm3ResourceBase, Map<String, String>> resources = new HashMap<Ovm3ResourceBase, Map<String, String>>();
-            resources.put(ovmResource, details);
-            return resources;
-        } catch (XmlRpcException e) {
-            s_logger.debug("XmlRpc exception, Unable to discover Ovm3 host: " + url.getHost(),
-                    e);
-            return null;
-        } catch (UnknownHostException e) {
-            s_logger.debug(
-                    "Host name resolve failed exception, Unable to discover Ovm3 host: "
-                            + url.getHost(), e);
-            return null;
-        } catch (ConfigurationException e) {
-            s_logger.debug(
-                    "Configure resource failed, Unable to discover Ovm3 host: " + url.getHost(),
-                    e);
-            return null;
-        } catch (Exception e) {
-            s_logger.debug("Unable to discover Ovm3 host: " + url.getHost(), e);
-            return null;
-        }
-    }
-
-    @Override
-    public void postDiscovery(List<HostVO> hosts, long msId)
-            throws CloudRuntimeException {
-        // TODO Auto-generated method stub
-        s_logger.debug("postDiscovery" + hosts);
-    }
-
-    @Override
-    public boolean matchHypervisor(String hypervisor) {
-        return HypervisorType.Ovm3.toString().equalsIgnoreCase(hypervisor);
-    }
-
-    @Override
-    public HypervisorType getHypervisorType() {
-        return HypervisorType.Ovm3;
-    }
-
-    @Override
-    public HostVO createHostVOForConnectedAgent(HostVO host,
-            StartupCommand[] cmd) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public boolean processAnswers(long agentId, long seq, Answer[] answers) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public boolean processCommands(long agentId, long seq, Command[] commands) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public AgentControlAnswer processControlCommand(long agentId,
-            AgentControlCommand cmd) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /* for reconnecting */
-    @Override
-    public void processConnect(Host host, StartupCommand cmd,
-            boolean forRebalance) {
-    }
-
-    @Override
-    public boolean processDisconnect(long agentId, Status state) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public boolean isRecurring() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public int getTimeout() {
-        // TODO Auto-generated method stub
-        return 0;
-    }
-
-    @Override
-    public boolean processTimeout(long agentId, long seq) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public HostVO createHostVOForDirectConnectAgent(HostVO host,
-            StartupCommand[] startup, ServerResource resource,
-            Map<String, String> details, List<String> hostTags) {
-        StartupCommand firstCmd = startup[0];
-        if (!(firstCmd instanceof StartupRoutingCommand)) {
-            return null;
-        }
-
-        StartupRoutingCommand ssCmd = ((StartupRoutingCommand) firstCmd);
-        if (ssCmd.getHypervisorType() != HypervisorType.Ovm3) {
-            return null;
-        }
-
-        // TODO: Double check this
-        return _resourceMgr.fillRoutingHostVO(host, ssCmd, HypervisorType.Ovm3,
-                details, hostTags);
-    }
-
-    // TODO: Make sure that we cleanup when the host is removed
-    @Override
-    public DeleteHostAnswer deleteHost(HostVO host, boolean isForced,
-            boolean isForceDeleteStorage) throws UnableDeleteHostException {
-        if (host.getType() != com.cloud.host.Host.Type.Routing
-                || host.getHypervisorType() != HypervisorType.Ovm3) {
-            return null;
-        }
-
-        _resourceMgr.deleteRoutingHost(host, isForced, isForceDeleteStorage);
-        return new DeleteHostAnswer(true);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/src/com/cloud/hypervisor/ovm3/hypervisor/Ovm3Fencer.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/com/cloud/hypervisor/ovm3/hypervisor/Ovm3Fencer.java b/plugins/hypervisors/ovm3/src/com/cloud/hypervisor/ovm3/hypervisor/Ovm3Fencer.java
deleted file mode 100755
index 30db663..0000000
--- a/plugins/hypervisors/ovm3/src/com/cloud/hypervisor/ovm3/hypervisor/Ovm3Fencer.java
+++ /dev/null
@@ -1,133 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.hypervisor.ovm3.hypervisor;
-
-import java.util.List;
-import java.util.Map;
-
-import javax.ejb.Local;
-import javax.inject.Inject;
-import javax.naming.ConfigurationException;
-
-import org.apache.log4j.Logger;
-
-import com.cloud.agent.AgentManager;
-import com.cloud.agent.api.FenceAnswer;
-import com.cloud.agent.api.FenceCommand;
-import com.cloud.exception.AgentUnavailableException;
-import com.cloud.exception.OperationTimedoutException;
-import com.cloud.ha.FenceBuilder;
-import com.cloud.host.Host;
-import com.cloud.host.HostVO;
-import com.cloud.host.Status;
-import com.cloud.hypervisor.Hypervisor.HypervisorType;
-import com.cloud.resource.ResourceManager;
-import com.cloud.utils.component.AdapterBase;
-import com.cloud.vm.VirtualMachine;
-
-@Local(value = FenceBuilder.class)
-public class Ovm3Fencer extends AdapterBase implements FenceBuilder {
-    Map<String, Object> _params;
-    private static final Logger s_logger = Logger.getLogger(Ovm3Fencer.class);
-    @Inject
-    AgentManager _agentMgr;
-    @Inject
-    ResourceManager _resourceMgr;
-
-
-    @Override
-    public boolean configure(String name, Map<String, Object> params)
-            throws ConfigurationException {
-        _params = params;
-        return true;
-    }
-
-    @Override
-    public boolean start() {
-        // TODO Auto-generated method stub
-        return true;
-    }
-
-    @Override
-    public boolean stop() {
-        // TODO Auto-generated method stub
-        return true;
-    }
-
-    public Ovm3Fencer() {
-        super();
-    }
-
-    @Override
-    public Boolean fenceOff(VirtualMachine vm, Host host) {
-        if (host.getHypervisorType() != HypervisorType.Ovm3) {
-            s_logger.debug("Don't know how to fence non Ovm3 hosts "
-                    + host.getHypervisorType());
-            return null;
-        } else {
-            s_logger.debug("Fencing " + vm + " on host " + host
-                    + " with params: "+ _params );
-        }
-
-        List<HostVO> hosts = _resourceMgr.listAllHostsInCluster(host
-                .getClusterId());
-        FenceCommand fence = new FenceCommand(vm, host);
-
-        for (HostVO h : hosts) {
-            if (h.getHypervisorType() != HypervisorType.Ovm3) {
-                continue;
-            }
-
-            if (h.getStatus() != Status.Up) {
-                continue;
-            }
-
-            if (h.getId() == host.getId()) {
-                continue;
-            }
-
-            FenceAnswer answer;
-            try {
-                answer = (FenceAnswer) _agentMgr.send(h.getId(), fence);
-            } catch (AgentUnavailableException e) {
-                if (s_logger.isDebugEnabled()) {
-                    s_logger.debug("Moving on to the next host because "
-                            + h.toString() + " is unavailable");
-                }
-                continue;
-            } catch (OperationTimedoutException e) {
-                if (s_logger.isDebugEnabled()) {
-                    s_logger.debug("Moving on to the next host because "
-                            + h.toString() + " is unavailable");
-                }
-                continue;
-            }
-
-            if (answer != null && answer.getResult()) {
-                return true;
-            }
-        }
-
-        if (s_logger.isDebugEnabled()) {
-            s_logger.debug("Unable to fence off " + vm.toString() + " on "
-                    + host.toString());
-        }
-
-        return false;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/be028974/plugins/hypervisors/ovm3/src/com/cloud/hypervisor/ovm3/hypervisor/Ovm3Guru.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/com/cloud/hypervisor/ovm3/hypervisor/Ovm3Guru.java b/plugins/hypervisors/ovm3/src/com/cloud/hypervisor/ovm3/hypervisor/Ovm3Guru.java
deleted file mode 100755
index 08aac30..0000000
--- a/plugins/hypervisors/ovm3/src/com/cloud/hypervisor/ovm3/hypervisor/Ovm3Guru.java
+++ /dev/null
@@ -1,65 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-/* shameless rip from original ovm guru */
-package com.cloud.hypervisor.ovm3.hypervisor;
-
-import javax.ejb.Local;
-import javax.inject.Inject;
-
-import com.cloud.agent.api.to.VirtualMachineTO;
-import com.cloud.hypervisor.Hypervisor.HypervisorType;
-import com.cloud.hypervisor.HypervisorGuru;
-import com.cloud.hypervisor.HypervisorGuruBase;
-import com.cloud.storage.GuestOSVO;
-import com.cloud.storage.dao.GuestOSDao;
-import com.cloud.vm.VirtualMachineProfile;
-
-@Local(value = HypervisorGuru.class)
-public class Ovm3Guru extends HypervisorGuruBase implements HypervisorGuru {
-    // private static final Logger s_logger = Logger.getLogger(VMwareGuru.class);
-
-    @Inject
-    GuestOSDao _guestOsDao;
-
-    protected Ovm3Guru() {
-        super();
-    }
-
-    @Override
-    public HypervisorType getHypervisorType() {
-        return HypervisorType.Ovm3;
-    }
-
-    @Override
-    public VirtualMachineTO implement(VirtualMachineProfile vm) {
-        VirtualMachineTO to = toVirtualMachineTO(vm);
-        to.setBootloader(vm.getBootLoaderType());
-
-        // Determine the VM's OS description
-        GuestOSVO guestOS = _guestOsDao.findById(vm.getVirtualMachine()
-                .getGuestOSId());
-        to.setOs(guestOS.getDisplayName());
-
-        return to;
-    }
-
-    @Override
-    public boolean trackVmHostChange() {
-        return true;
-    }
-}