@Override public boolean configure(Map<String, Object> params) { lifecycle = ComponentContext.inject(CloudStackPrimaryDataStoreLifeCycleImpl.class); driver = ComponentContext.inject(CloudStackPrimaryDataStoreDriverImpl.class); listener = ComponentContext.inject(DefaultHostListener.class); return true; }
@Override public void run() { if (ComponentContext.getApplicationContext() != null) { _timer.cancel(); TransactionLegacy txn = TransactionLegacy.open(TransactionLegacy.CLOUD_DB); try { ComponentContext.initComponentsLifeCycle(); } finally { txn.close(); } } } }, 0, 1000);
@Bean public ComponentContext componentContext() { return new ComponentContext(); }
Map<String, ComponentMethodInterceptable> interceptableComponents = getApplicationContext().getBeansOfType(ComponentMethodInterceptable.class); for (Map.Entry<String, ComponentMethodInterceptable> entry : interceptableComponents.entrySet()) { Object bean = getTargetObject(entry.getValue()); beanFactory.configureBean(bean, entry.getKey()); Map<String, ComponentLifecycle> lifecycleComponents = getApplicationContext().getBeansOfType(ComponentLifecycle.class); Map<String, SystemIntegrityChecker> integrityCheckers = getApplicationContext().getBeansOfType(SystemIntegrityChecker.class); for (Entry<String, SystemIntegrityChecker> entry : integrityCheckers.entrySet()) { s_logger.info("Running SystemIntegrityChecker " + entry.getKey()); for (Map.Entry<String, ComponentLifecycle> entry : classifiedComponents[i].entrySet()) { ComponentLifecycle component = entry.getValue(); String implClassName = ComponentContext.getTargetClass(component).getName(); s_logger.info("Configuring " + implClassName); for (Map.Entry<String, ComponentLifecycle> entry : classifiedComponents[i].entrySet()) { ComponentLifecycle component = entry.getValue(); String implClassName = ComponentContext.getTargetClass(component).getName(); s_logger.info("Starting " + implClassName); component.start(); if (getTargetObject(component) instanceof ManagementBean) registerMBean((ManagementBean)getTargetObject(component)); } catch (Exception e) { s_logger.error("Unhandled exception", e);
private static void publishOnMessageBus(String eventCategory, String eventType, String details, Event.State state) { if (state != com.cloud.event.Event.State.Completed) { return; } try { s_eventBus = ComponentContext.getComponent(EventBus.class); } catch (NoSuchBeanDefinitionException nbe) { return; // no provider is configured to provide events bus, so just return } org.apache.cloudstack.framework.events.Event event = new org.apache.cloudstack.framework.events.Event(ManagementService.Name, eventCategory, eventType, EventTypes.getEntityForEvent(eventType), null); Map<String, String> eventDescription = new HashMap<String, String>(); eventDescription.put("event", eventType); eventDescription.put("status", state.toString()); eventDescription.put("details", details); event.setDescription(eventDescription); try { s_eventBus.publish(event); } catch (EventBusException evx) { String errMsg = "Failed to publish contrail event."; s_logger.warn(errMsg, evx); } }
public static <T> T inject(Object instance) { // autowire dynamically loaded object AutowireCapableBeanFactory beanFactory = getApplicationContext(instance).getAutowireCapableBeanFactory(); beanFactory.autowireBean(instance); return (T)instance; }
@Override public void start() { super.start(); for (Object obj : beans) { if (obj instanceof PluggableService) { for (Class<?> cmd : ((PluggableService)obj).getCommands()) { ComponentContext.addDelegateContext(cmd, applicationContext); } } } }
final Map<String, ComponentMethodInterceptable> interceptableComponents = getApplicationContext().getBeansOfType(ComponentMethodInterceptable.class); for (final Map.Entry<String, ComponentMethodInterceptable> entry : interceptableComponents.entrySet()) { final Object bean = getTargetObject(entry.getValue()); beanFactory.configureBean(bean, entry.getKey()); final Map<String, ComponentLifecycle> lifecycleComponents = getApplicationContext().getBeansOfType(ComponentLifecycle.class); final Map<String, SystemIntegrityChecker> integrityCheckers = getApplicationContext().getBeansOfType(SystemIntegrityChecker.class); for (final Entry<String, SystemIntegrityChecker> entry : integrityCheckers.entrySet()) { s_logger.info("Running SystemIntegrityChecker " + entry.getKey()); for (final Map.Entry<String, ComponentLifecycle> entry : classifiedComponents[i].entrySet()) { final ComponentLifecycle component = entry.getValue(); final String implClassName = ComponentContext.getTargetClass(component).getName(); s_logger.info("Configuring " + implClassName); for (final Map.Entry<String, ComponentLifecycle> entry : classifiedComponents[i].entrySet()) { final ComponentLifecycle component = entry.getValue(); final String implClassName = ComponentContext.getTargetClass(component).getName(); s_logger.info("Starting " + implClassName); component.start(); if (getTargetObject(component) instanceof ManagementBean) { registerMBean((ManagementBean) getTargetObject(component));
private void pubishOnEventBus(String event, String status, Network vo, State oldState, State newState) { String configKey = "publish.resource.state.events"; String value = _configDao.getValue(configKey); boolean configValue = Boolean.parseBoolean(value); if(!configValue) return; try { s_eventBus = ComponentContext.getComponent(EventBus.class); } catch (NoSuchBeanDefinitionException nbe) { return; // no provider is configured to provide events bus, so just return } String resourceName = getEntityFromClassName(Network.class.getName()); org.apache.cloudstack.framework.events.Event eventMsg = new org.apache.cloudstack.framework.events.Event("management-server", EventCategory.RESOURCE_STATE_CHANGE_EVENT.getName(), event, resourceName, vo.getUuid()); Map<String, String> eventDescription = new HashMap<String, String>(); eventDescription.put("resource", resourceName); eventDescription.put("id", vo.getUuid()); eventDescription.put("old-state", oldState.name()); eventDescription.put("new-state", newState.name()); String eventDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z").format(new Date()); eventDescription.put("eventDateTime", eventDate); eventMsg.setDescription(eventDescription); try { s_eventBus.publish(eventMsg); } catch (EventBusException e) { s_logger.warn("Failed to publish state change event on the the event bus."); } }
public static <T> T inject(final Object instance) { // autowire dynamically loaded object final AutowireCapableBeanFactory beanFactory = getApplicationContext(instance).getAutowireCapableBeanFactory(); beanFactory.autowireBean(instance); return (T) instance; }
@Override public void start() { super.start(); for (final Object obj : beans) { if (obj instanceof PluggableService) { for (final Class<?> cmd : ((PluggableService) obj).getCommands()) { ComponentContext.addDelegateContext(cmd, applicationContext); } } } }
@Override public boolean configure(Map<String, Object> params) { lifecycle = ComponentContext.inject(SolidFireSharedPrimaryDataStoreLifeCycle.class); driver = ComponentContext.inject(SolidFireSharedPrimaryDataStoreDriver.class); listener = ComponentContext.inject(SolidFireSharedHostListener.class); return true; }
return; try { s_eventBus = ComponentContext.getComponent(EventBus.class); } catch (NoSuchBeanDefinitionException nbe) { return; // no provider is configured to provide events bus, so just return
@Bean public ComponentContext componentContext() { return new ComponentContext(); }
return; try { s_eventBus = ComponentContext.getComponent(EventBus.class); } catch (NoSuchBeanDefinitionException nbe) { return; // no provider is configured to provide events bus, so just return
private void pubishOnEventBus(String event, String status, VirtualMachine vo, VirtualMachine.State oldState, VirtualMachine.State newState) { String configKey = Config.PublishResourceStateEvent.key(); String value = _configDao.getValue(configKey); boolean configValue = Boolean.parseBoolean(value); if(!configValue) return; try { s_eventBus = ComponentContext.getComponent(EventBus.class); } catch (NoSuchBeanDefinitionException nbe) { return; // no provider is configured to provide events bus, so just return } String resourceName = getEntityFromClassName(VirtualMachine.class.getName()); org.apache.cloudstack.framework.events.Event eventMsg = new org.apache.cloudstack.framework.events.Event(ManagementService.Name, EventCategory.RESOURCE_STATE_CHANGE_EVENT.getName(), event, resourceName, vo.getUuid()); Map<String, String> eventDescription = new HashMap<String, String>(); eventDescription.put("resource", resourceName); eventDescription.put("id", vo.getUuid()); eventDescription.put("old-state", oldState.name()); eventDescription.put("new-state", newState.name()); eventDescription.put("status", status); String eventDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z").format(new Date()); eventDescription.put("eventDateTime", eventDate); eventMsg.setDescription(eventDescription); try { s_eventBus.publish(eventMsg); } catch (org.apache.cloudstack.framework.events.EventBusException e) { s_logger.warn("Failed to publish state change event on the the event bus."); } }
private void pubishOnEventBus(String event, String status, Volume vo, State oldState, State newState) { String configKey = Config.PublishResourceStateEvent.key(); String value = _configDao.getValue(configKey); boolean configValue = Boolean.parseBoolean(value); if(!configValue) return; try { s_eventBus = ComponentContext.getComponent(EventBus.class); } catch (NoSuchBeanDefinitionException nbe) { return; // no provider is configured to provide events bus, so just return } String resourceName = getEntityFromClassName(Volume.class.getName()); org.apache.cloudstack.framework.events.Event eventMsg = new org.apache.cloudstack.framework.events.Event(ManagementService.Name, EventCategory.RESOURCE_STATE_CHANGE_EVENT.getName(), event, resourceName, vo.getUuid()); Map<String, String> eventDescription = new HashMap<String, String>(); eventDescription.put("resource", resourceName); eventDescription.put("id", vo.getUuid()); eventDescription.put("old-state", oldState.name()); eventDescription.put("new-state", newState.name()); String eventDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z").format(new Date()); eventDescription.put("eventDateTime", eventDate); eventMsg.setDescription(eventDescription); try { s_eventBus.publish(eventMsg); } catch (EventBusException e) { s_logger.warn("Failed to state change event on the the event bus."); } }