/** * {@inheritDoc} * * @see org.opencastproject.serviceregistry.api.ServiceRegistry#unRegisterService(java.lang.String, java.lang.String) */ @Override public void unRegisterService(String serviceType, String host) throws ServiceRegistryException { List<ServiceRegistrationInMemoryImpl> servicesOnHost = services.get(host); if (servicesOnHost != null) { Iterator<ServiceRegistrationInMemoryImpl> ri = servicesOnHost.iterator(); while (ri.hasNext()) { ServiceRegistration registration = ri.next(); if (serviceType.equals(registration.getServiceType())) ri.remove(); } } }
@Override public int compare(ServiceStatistics o1, ServiceStatistics o2) { ServiceRegistration reg1 = o1.getServiceRegistration(); ServiceRegistration reg2 = o2.getServiceRegistration(); int typeComparison = reg1.getServiceType().compareTo(reg2.getServiceType()); return typeComparison == 0 ? reg1.getHost().compareTo(reg2.getHost()) : typeComparison; } });
@Override public boolean equals(Object obj) { if (!(obj instanceof ServiceRegistration)) return false; ServiceRegistration registration = (ServiceRegistration) obj; return getHost().equals(registration.getHost()) && getServiceType().equals(registration.getServiceType()); }
/** * {@inheritDoc} * * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (!(obj instanceof ServiceRegistration)) return false; ServiceRegistration registration = (ServiceRegistration) obj; return getHost().equals(registration.getHost()) && getServiceType().equals(registration.getServiceType()); }
public String list() { try { StringBuilder sb = new StringBuilder(); for (ServiceRegistration reg : serviceRegistry.getServiceRegistrations()) { sb.append(reg.getServiceType()); sb.append("@"); sb.append(reg.getHost()); if (reg.isInMaintenanceMode()) { sb.append(" (maintenance mode)"); } sb.append("\n"); } return sb.toString(); } catch (ServiceRegistryException e) { return "Error: " + e.getMessage() + "\n"; } }
/** * Gets the failed jobs history for the given service registration * * @param serviceRegistration * @return the failed jobs history size * @throws IllegalArgumentException * if parameter is null * @throws ServiceRegistryException */ private int getHistorySize(ServiceRegistration serviceRegistration) throws IllegalArgumentException, ServiceRegistryException { if (serviceRegistration == null) throw new IllegalArgumentException("serviceRegistration must not be null!"); Query query = null; EntityManager em = null; logger.debug("Calculating count of jobs who failed due to service {}", serviceRegistration.toString()); try { em = emf.createEntityManager(); query = em.createNamedQuery("Job.count.history.failed"); query.setParameter("serviceType", serviceRegistration.getServiceType()); query.setParameter("host", serviceRegistration.getHost()); Number number = (Number) query.getSingleResult(); return number.intValue(); } catch (Exception e) { throw new ServiceRegistryException(e); } finally { if (em != null) em.close(); } }
public void updateService(ServiceRegistration registration) { if (!registration.isActive()) { services.remove(Tuple.tuple(registration.getHost(), registration.getServiceType())); logger.trace("Removing inactive service '{}'", registration); } else { services.put(Tuple.tuple(registration.getHost(), registration.getServiceType()), registration.getServiceState()); } sendNotification(JmxUtil.createUpdateNotification(this, sequenceNumber++, "Service updated")); }
unRegisterService(serviceRegistration.getServiceType(), serviceRegistration.getHost());
if (!jobType.equals(service.getServiceType())) { logger.trace("Not considering {} because it is of the wrong job type", service); continue;
public ServicesStatistics(String hostName, List<ServiceStatistics> statistics) { this.hostName = hostName; for (ServiceStatistics stats : statistics) { if (!stats.getServiceRegistration().isActive()) { logger.trace("Ignoring inactive service '{}'", stats); continue; } String host = stats.getServiceRegistration().getHost(); String serviceType = stats.getServiceRegistration().getServiceType(); ServiceState serviceState = stats.getServiceRegistration().getServiceState(); services.put(Tuple.tuple(host, serviceType), serviceState); } }
} else if (!service.isOnline()) { try { setOnlineStatus(service.getServiceType(), service.getHost(), service.getPath(), true, true); logger.info("Service {} is back online", service); } catch (ServiceRegistryException e) { unRegisterService(service.getServiceType(), service.getHost()); unresponsive.remove(service); logger.warn("Marking {} as offline", service);
if (!jobType.equals(service.getServiceType())) { logger.trace("Not considering {} because it is of the wrong job type", service); continue;
/** * Creates a new JAXB annotated service registration based on an existing service registration * * @param serviceRegistration */ public JaxbServiceRegistration(ServiceRegistration serviceRegistration) { this.host = serviceRegistration.getHost(); this.jobProducer = serviceRegistration.isJobProducer(); this.maintenanceMode = serviceRegistration.isInMaintenanceMode(); this.active = serviceRegistration.isActive(); this.online = serviceRegistration.isOnline(); this.onlineFrom = serviceRegistration.getOnlineFrom(); this.path = serviceRegistration.getPath(); this.serviceType = serviceRegistration.getServiceType(); this.serviceState = serviceRegistration.getServiceState(); this.stateChanged = serviceRegistration.getStateChanged(); this.warningStateTrigger = serviceRegistration.getWarningStateTrigger(); this.errorStateTrigger = serviceRegistration.getErrorStateTrigger(); }