diff --git a/core/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/core/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java deleted file mode 100644 index ea44e249591..00000000000 --- a/core/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.cloud.hypervisor.vmware.resource; - -import java.util.Map; - -import javax.naming.ConfigurationException; - -import com.cloud.agent.IAgentControl; -import com.cloud.agent.api.Answer; -import com.cloud.agent.api.Command; -import com.cloud.agent.api.PingCommand; -import com.cloud.agent.api.StartupCommand; -import com.cloud.agent.api.storage.CopyVolumeAnswer; -import com.cloud.agent.api.storage.CopyVolumeCommand; -import com.cloud.agent.api.storage.CreateAnswer; -import com.cloud.agent.api.storage.CreateCommand; -import com.cloud.agent.api.storage.DestroyCommand; -import com.cloud.agent.api.storage.DownloadAnswer; -import com.cloud.agent.api.storage.PrimaryStorageDownloadCommand; -import com.cloud.agent.api.storage.ShareAnswer; -import com.cloud.agent.api.storage.ShareCommand; -import com.cloud.host.Host.Type; -import com.cloud.resource.ServerResource; -import com.cloud.storage.resource.StoragePoolResource; - -public class VmwareResource implements StoragePoolResource, ServerResource { - private boolean _isRemoteAgent = false; - @Override - public DownloadAnswer execute(PrimaryStorageDownloadCommand cmd) { - // TODO Auto-generated method stub - return null; - } - - @Override - public Answer execute(DestroyCommand cmd) { - // TODO Auto-generated method stub - return null; - } - - @Override - public ShareAnswer execute(ShareCommand cmd) { - // TODO Auto-generated method stub - return null; - } - - @Override - public CopyVolumeAnswer execute(CopyVolumeCommand cmd) { - // TODO Auto-generated method stub - return null; - } - - @Override - public CreateAnswer execute(CreateCommand cmd) { - // TODO Auto-generated method stub - return null; - } - - @Override - public void disconnected() { - // TODO Auto-generated method stub - - } - - @Override - public Answer executeRequest(Command cmd) { - // TODO Auto-generated method stub - return null; - } - - @Override - public IAgentControl getAgentControl() { - // TODO Auto-generated method stub - return null; - } - - @Override - public PingCommand getCurrentStatus(long id) { - // TODO Auto-generated method stub - return null; - } - - @Override - public Type getType() { - // TODO Auto-generated method stub - return null; - } - - @Override - public StartupCommand[] initialize() { - // TODO Auto-generated method stub - return null; - } - - @Override - public void setAgentControl(IAgentControl agentControl) { - // TODO Auto-generated method stub - } - - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - - // TODO Auto-generated method stub - return true; - } - - @Override - public String getName() { - // TODO Auto-generated method stub - return null; - } - - @Override - public boolean start() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean stop() { - // TODO Auto-generated method stub - return false; - } - - public boolean IsRemoteAgent() { - return _isRemoteAgent; - } - - public void setRemoteAgent(boolean remote) { - _isRemoteAgent = remote; - } -} diff --git a/core/test/com/cloud/vmware/TestVMWare.java b/core/test/com/cloud/vmware/TestVMWare.java index 3ac7c5e06de..48c3bb57e79 100644 --- a/core/test/com/cloud/vmware/TestVMWare.java +++ b/core/test/com/cloud/vmware/TestVMWare.java @@ -778,6 +778,12 @@ public class TestVMWare { "dvPortGroup-vlan26", vNicSpec); } + private void createDatacenter() throws Exception { + cb.getServiceConnection3().getService().createDatacenter( + cb.getServiceConnection3().getRootFolder(), + "cloud.dc.test"); + } + public static void main(String[] args) throws Exception { setupLog4j(); TestVMWare client = new TestVMWare(); @@ -800,8 +806,10 @@ public class TestVMWare { // client.createSnapshot(); // client.registerTemplate(); // client.createVmFromTemplate(); - client.addNic(); + // client.addNic(); // client.addNicToNetwork(); + + client.createDatacenter(); cb.disConnect(); } catch (Exception e) { e.printStackTrace(); diff --git a/server/src/com/cloud/hypervisor/vmware/discoverer/VmwareServerDiscoverer.java b/server/src/com/cloud/hypervisor/vmware/discoverer/VmwareServerDiscoverer.java deleted file mode 100644 index a7f186a19e0..00000000000 --- a/server/src/com/cloud/hypervisor/vmware/discoverer/VmwareServerDiscoverer.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.cloud.hypervisor.vmware.discoverer; - -import java.net.URI; -import java.util.List; -import java.util.Map; - -import javax.ejb.Local; -import javax.naming.ConfigurationException; - -import com.cloud.exception.DiscoveryException; -import com.cloud.host.HostVO; -import com.cloud.resource.Discoverer; -import com.cloud.resource.DiscovererBase; -import com.cloud.resource.ServerResource; - -@Local(value=Discoverer.class) -public class VmwareServerDiscoverer extends DiscovererBase implements Discoverer { - - @Override - public Map> find(long dcId, Long podId, Long clusterId, URI url, - String username, String password) throws DiscoveryException { - - // ??? - return null; - } - - @Override - public void postDiscovery(List hosts, long msId) { - //do nothing - } - - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - super.configure(name, params); - - // TODO - return true; - } -} - diff --git a/setup/db/create-index-fk.sql b/setup/db/create-index-fk.sql index 16bcb289747..ad99b33aa47 100644 --- a/setup/db/create-index-fk.sql +++ b/setup/db/create-index-fk.sql @@ -250,3 +250,6 @@ ALTER TABLE `cloud`.`network_group_vm_map` ADD CONSTRAINT `fk_network_group_vm_m ALTER TABLE `cloud`.`op_nwgrp_work` ADD INDEX `i_op_nwgrp_work__instance_id`(`instance_id`); ALTER TABLE `cloud`.`op_nwgrp_work` ADD INDEX `i_op_nwgrp_work__mgmt_server_id`(`mgmt_server_id`); + +ALTER TABLE `cloud`.`host_master` ADD UNIQUE `i_host_master__service_address`(`service_address`); + diff --git a/setup/db/create-schema.sql b/setup/db/create-schema.sql index 8281af4ca75..f7df77aa610 100644 --- a/setup/db/create-schema.sql +++ b/setup/db/create-schema.sql @@ -76,6 +76,7 @@ DROP TABLE IF EXISTS `cloud`.`cluster`; DROP TABLE IF EXISTS `cloud`.`nics`; DROP TABLE IF EXISTS `cloud`.`network_profiles`; DROP TABLE IF EXISTS `cloud`.`network_offerings`; +DROP TABLE IF EXISTS `cloud`.`host_master`; CREATE TABLE `cloud`.`network_profiles` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', @@ -1044,4 +1045,13 @@ CREATE TABLE `cloud`.`op_vm_ruleset_log` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `cloud`.`host_master` ( + `id` bigint unsigned UNIQUE NOT NULL AUTO_INCREMENT COMMENT 'id', + `type` varchar(32) NOT NULL, + `service_address` varchar(255) NOT NULL, + `admin` varchar(32) NOT NULL, + `password` varchar(32), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + SET foreign_key_checks = 1; diff --git a/utils/src/com/cloud/utils/concurrency/SynchronizationEvent.java b/utils/src/com/cloud/utils/concurrency/SynchronizationEvent.java new file mode 100644 index 00000000000..93da2b093ef --- /dev/null +++ b/utils/src/com/cloud/utils/concurrency/SynchronizationEvent.java @@ -0,0 +1,86 @@ +/** + * 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.utils.concurrency; + +import org.apache.log4j.Logger; + +public class SynchronizationEvent { + protected final static Logger s_logger = Logger.getLogger(SynchronizationEvent.class); + + private boolean signalled; + + public SynchronizationEvent() { + signalled = false; + } + + public SynchronizationEvent(boolean signalled) { + this.signalled = signalled; + } + + public void setEvent() { + synchronized(this) { + signalled = true; + notifyAll(); + } + } + + public void resetEvent() { + synchronized(this) { + signalled = false; + } + } + + public boolean waitEvent() { + synchronized(this) { + if(signalled) + return true; + + while(true) { + try { + wait(); + assert(signalled); + return signalled; + } catch (InterruptedException e) { + s_logger.debug("unexpected awaken signal in wait()"); + } + } + } + } + + public boolean waitEvent(long timeOutMiliseconds) { + synchronized(this) { + if(signalled) + return true; + + try { + wait(timeOutMiliseconds); + return signalled; + } catch (InterruptedException e) { + // TODO, we don't honor time out semantics when the waiting thread is interrupted + s_logger.debug("unexpected awaken signal in wait(...)"); + return false; + } + } + } + + public boolean isSignalled() { + synchronized(this) { + return signalled; + } + } +} diff --git a/utils/src/com/cloud/utils/db/GlobalLock.java b/utils/src/com/cloud/utils/db/GlobalLock.java index 2f0b2be636b..356c63d97e5 100644 --- a/utils/src/com/cloud/utils/db/GlobalLock.java +++ b/utils/src/com/cloud/utils/db/GlobalLock.java @@ -41,16 +41,6 @@ import com.cloud.utils.Profiler; // } // lock.releaseRef(); // -// -// GlobalLock.Auto lock = GlobalLock.getAutoInternLock("some table name" + rowId); -// if(lock.lock()) { -// try { -// do something -// } finally { -// lock.unlock(); -// } -// } -// public class GlobalLock { protected final static Logger s_logger = Logger.getLogger(GlobalLock.class); @@ -92,11 +82,7 @@ public class GlobalLock { releaseInternLock(name); return refCount; } - - public static GlobalLock.Auto getAutoInternLock(String name) { - return new GlobalLock.Auto(getInternLock(name)); - } - + public static GlobalLock getInternLock(String name) { synchronized(s_lockMap) { if(s_lockMap.containsKey(name)) { @@ -203,28 +189,4 @@ public class GlobalLock { public String getName() { return name; } - - public static class Auto { - private GlobalLock lock; - - public Auto(GlobalLock lock) { - this.lock = lock; - } - - protected void finalize() throws Throwable { - try { - lock.releaseRef(); - } finally { - super.finalize(); - } - } - - public boolean lock(int timeoutSeconds) { - return lock.lock(timeoutSeconds); - } - - public boolean unlock() { - return lock.unlock(); - } - } }