Separate usage monitor from HA manager

This commit is contained in:
Kelven Yang 2013-04-17 14:14:17 -07:00
parent 58112a9e12
commit 56bc255355
3 changed files with 23 additions and 11 deletions

View File

@ -622,7 +622,7 @@
<property name="Discoverers" value="#{resourceDiscoverers.Adapters}" />
</bean>
<bean id="highAvailabilityManagerExtImpl" class="com.cloud.ha.HighAvailabilityManagerExtImpl" >
<bean id="highAvailabilityManagerImpl" class="com.cloud.ha.HighAvailabilityManagerImpl" >
<property name="Investigators" value="#{haInvestigators.Adapters}" />
<property name="FenceBuilders" value="#{haFenceBuilders.Adapters}" />
</bean>
@ -698,6 +698,7 @@
<bean id="virtualNetworkApplianceManagerImpl" class="com.cloud.network.router.VirtualNetworkApplianceManagerImpl" />
<bean id="vpcManagerImpl" class="com.cloud.network.vpc.VpcManagerImpl" />
<bean id="vpcVirtualNetworkApplianceManagerImpl" class="com.cloud.network.router.VpcVirtualNetworkApplianceManagerImpl" />
<bean id="usageServerMonitor" class="com.cloud.usage.UsageServerMonitor" />
<!--
Misc components

View File

@ -14,36 +14,47 @@
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
package com.cloud.ha;
package com.cloud.usage;
import java.util.Date;
import java.util.Map;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
import org.apache.log4j.Logger;
import com.cloud.alert.AlertManager;
import com.cloud.configuration.dao.ConfigurationDao;
import com.cloud.usage.dao.UsageJobDao;
import com.cloud.utils.component.ManagerBase;
import com.cloud.utils.concurrency.NamedThreadFactory;
import com.cloud.utils.db.Transaction;
@Local(value={HighAvailabilityManager.class})
public class HighAvailabilityManagerExtImpl extends HighAvailabilityManagerImpl {
/**
* This class is detached from HighAvailabilityManagerImpl, I see no reason for it to inherit from
* HighAvailabilityManagerImpl.
*
*/
public class UsageServerMonitor extends ManagerBase {
protected static final Logger s_logger = Logger.getLogger(UsageServerMonitor.class);
@Inject
UsageJobDao _usageJobDao;
@Inject UsageJobDao _usageJobDao;
@Inject ConfigurationDao configDao;
@Inject AlertManager _alertMgr;
ScheduledExecutorService _executor;
@Override
public boolean configure(final String name, final Map<String, Object> xmlParams) throws ConfigurationException {
super.configure(name, xmlParams);
return true;
_executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("UsageServer-Monitor"));
return true;
}
@Override

View File

@ -413,5 +413,5 @@ ALTER TABLE `cloud`.`async_job` ADD COLUMN `job_dispatcher` VARCHAR(64);
ALTER TABLE `cloud`.`vm_instance` ADD COLUMN `last_event` VARCHAR(64) DEFAULT 'OperationNop';
ALTER TABLE `cloud`.`vm_instance` ADD COLUMN `last_event_args` VARCHAR(256);
ALTER TABLE `cloud`.`vm_instance` ADD COLUMN `power_state` VARCHAR(74) DEFAULT 'PowerUnknown';
ALTER TABLE `cloud`.`vm_instance` ADD COLUMN `power_state_update_time` DATETIME DEFAULT NOW();
ALTER TABLE `cloud`.`vm_instance` ADD COLUMN `power_state_update_time` DATETIME;