Search in sources :

Example 26 with Status

use of org.apache.dubbo.common.status.Status in project dubbo by alibaba.

the class SpringStatusCheckerTest method testWithLifeCycleRunning.

@Test
public void testWithLifeCycleRunning() {
    SpringExtensionFactory.clearContexts();
    ApplicationLifeCycle applicationLifeCycle = mock(ApplicationLifeCycle.class);
    new ServiceBean<Object>().setApplicationContext(applicationLifeCycle);
    given(applicationLifeCycle.getConfigLocations()).willReturn(new String[] { "test1", "test2" });
    given(applicationLifeCycle.isRunning()).willReturn(true);
    Status status = springStatusChecker.check();
    assertThat(status.getLevel(), is(Status.Level.OK));
    assertThat(status.getMessage(), is("test1,test2"));
}
Also used : Status(org.apache.dubbo.common.status.Status) Test(org.junit.jupiter.api.Test)

Example 27 with Status

use of org.apache.dubbo.common.status.Status in project dubbo by alibaba.

the class StatusTelnetHandler method telnet.

@Override
public String telnet(Channel channel, String message) {
    if ("-l".equals(message)) {
        List<StatusChecker> checkers = extensionLoader.getActivateExtension(channel.getUrl(), STATUS_KEY);
        String[] header = new String[] { "resource", "status", "message" };
        List<List<String>> table = new ArrayList<List<String>>();
        Map<String, Status> statuses = new HashMap<String, Status>();
        if (CollectionUtils.isNotEmpty(checkers)) {
            for (StatusChecker checker : checkers) {
                String name = extensionLoader.getExtensionName(checker);
                Status stat;
                try {
                    stat = checker.check();
                } catch (Throwable t) {
                    stat = new Status(Status.Level.ERROR, t.getMessage());
                }
                statuses.put(name, stat);
                if (stat.getLevel() != null && stat.getLevel() != Status.Level.UNKNOWN) {
                    List<String> row = new ArrayList<String>();
                    row.add(name);
                    row.add(String.valueOf(stat.getLevel()));
                    row.add(stat.getMessage() == null ? "" : stat.getMessage());
                    table.add(row);
                }
            }
        }
        Status stat = StatusUtils.getSummaryStatus(statuses);
        List<String> row = new ArrayList<String>();
        row.add("summary");
        row.add(String.valueOf(stat.getLevel()));
        row.add(stat.getMessage());
        table.add(row);
        return TelnetUtils.toTable(header, table);
    } else if (message.length() > 0) {
        return "Unsupported parameter " + message + " for status.";
    }
    String status = channel.getUrl().getParameter(STATUS_KEY);
    Map<String, Status> statuses = new HashMap<String, Status>();
    if (StringUtils.isNotEmpty(status)) {
        String[] ss = COMMA_SPLIT_PATTERN.split(status);
        for (String s : ss) {
            StatusChecker handler = extensionLoader.getExtension(s);
            Status stat;
            try {
                stat = handler.check();
            } catch (Throwable t) {
                stat = new Status(Status.Level.ERROR, t.getMessage());
            }
            statuses.put(s, stat);
        }
    }
    Status stat = StatusUtils.getSummaryStatus(statuses);
    return String.valueOf(stat.getLevel());
}
Also used : Status(org.apache.dubbo.common.status.Status) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List) StatusChecker(org.apache.dubbo.common.status.StatusChecker)

Aggregations

Status (org.apache.dubbo.common.status.Status)27 Test (org.junit.jupiter.api.Test)19 HashMap (java.util.HashMap)7 DataSource (javax.sql.DataSource)4 Connection (java.sql.Connection)3 Map (java.util.Map)3 Registry (org.apache.dubbo.registry.Registry)3 Matchers.containsString (org.hamcrest.Matchers.containsString)3 Matchers.isEmptyOrNullString (org.hamcrest.Matchers.isEmptyOrNullString)3 Method (java.lang.reflect.Method)2 StatusChecker (org.apache.dubbo.common.status.StatusChecker)2 RegistryStatusChecker (org.apache.dubbo.registry.status.RegistryStatusChecker)2 ApplicationContext (org.springframework.context.ApplicationContext)2 GenericWebApplicationContext (org.springframework.web.context.support.GenericWebApplicationContext)2 OperatingSystemMXBean (java.lang.management.OperatingSystemMXBean)1 DatabaseMetaData (java.sql.DatabaseMetaData)1 ResultSet (java.sql.ResultSet)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 ExecutorService (java.util.concurrent.ExecutorService)1