예제 #1
0
static void
mtev_lua_general_register_console_commands(mtev_image_t *self) {
  mtev_console_state_t *tl, *luas;

  tl = mtev_console_state_initial();
  luas = mtev_console_state_alloc_empty();

  luas->console_prompt_function = lua_repl_prompt;
  luas->statefree = lua_repl_raw_off;
  mtev_console_state_add_cmd(luas, &console_command_exit);

  mtev_console_state_add_cmd(luas,
    NCSCMD("",  mtev_console_lua_repl_execute, NULL, NULL, self));

  mtev_console_state_add_cmd(tl,
    NCSCMD("lua_general", mtev_console_state_lua, NULL, luas, self));
}
예제 #2
0
static void
register_console_rabbitmq_commands() {
  mtev_console_state_t *tl;
  cmd_info_t *showcmd;

  tl = mtev_console_state_initial();
  showcmd = mtev_console_state_get_cmd(tl, "show");
  mtevAssert(showcmd && showcmd->dstate);
  mtev_console_state_add_cmd(showcmd->dstate,
    NCSCMD("rabbitmq", noit_console_show_rabbitmq, NULL, NULL, NULL));
}
예제 #3
0
static void
register_console_dns_cache_commands() {
  mtev_console_state_t *tl;
  cmd_info_t *showcmd, *nocmd;

  tl = mtev_console_state_initial();
  showcmd = mtev_console_state_get_cmd(tl, "show");
  assert(showcmd && showcmd->dstate);

  nocmd = mtev_console_state_get_cmd(tl, "no");
  assert(nocmd && nocmd->dstate);

  mtev_console_state_add_cmd(showcmd->dstate,
    NCSCMD("dns_cache", noit_console_show_dns_cache, NULL, NULL, NULL));

  mtev_console_state_add_cmd(tl,
    NCSCMD("dns_cache", noit_console_manip_dns_cache, NULL, NULL, NULL));

  mtev_console_state_add_cmd(nocmd->dstate,
    NCSCMD("dns_cache", noit_console_manip_dns_cache, NULL, NULL, (void *)0x1));
}
예제 #4
0
void
mtev_console_state_add_check_attrs(mtev_console_state_t *state,
                                   console_cmd_func_t f,
                                   const char *scope) {
  int i;
  for(i = 0;
      i < sizeof(valid_attrs)/sizeof(valid_attrs[0]);
      i++) {
    if(strcmp(valid_attrs[i].scope, scope)) continue;
    mtev_console_state_add_cmd(state,
      NCSCMD(valid_attrs[i].name, f, NULL,
             NULL, &valid_attrs[i]));
  }
}
예제 #5
0
static void
register_console_filter_commands() {
  mtev_console_state_t *tl, *filterset_state, *nostate;
  cmd_info_t *confcmd, *conf_t_cmd, *no_cmd;

  tl = mtev_console_state_initial();
  confcmd = mtev_console_state_get_cmd(tl, "configure");
  assert(confcmd && confcmd->dstate);

  conf_t_cmd = mtev_console_state_get_cmd(confcmd->dstate, "terminal");
  assert(conf_t_cmd && conf_t_cmd->dstate);

  nostate = mtev_console_state_alloc();
  mtev_console_state_add_cmd(nostate,
    NCSCMD("rule", noit_console_rule_configure, NULL, NULL, (void *)1));

  filterset_state = mtev_console_state_alloc();
  mtev_console_state_add_cmd(filterset_state,
    NCSCMD("exit", mtev_console_config_cd, NULL, NULL, ".."));
  mtev_console_state_add_cmd(filterset_state,
    NCSCMD("status", noit_console_filter_show, NULL, NULL, NULL));
  mtev_console_state_add_cmd(filterset_state,
    NCSCMD("rule", noit_console_rule_configure, NULL, NULL, NULL));
  mtev_console_state_add_cmd(filterset_state,
    NCSCMD("no", mtev_console_state_delegate, mtev_console_opt_delegate,
           nostate, NULL));

  filterset_state->console_prompt_function = conf_t_filterset_prompt;

  mtev_console_state_add_cmd(conf_t_cmd->dstate,
    NCSCMD("filterset", noit_console_filter_configure,
           NULL, filterset_state, NULL));

  mtev_console_state_add_cmd(conf_t_cmd->dstate,
    NCSCMD("cull", noit_console_filter_cull,
           NULL, NULL, NULL));

  no_cmd = mtev_console_state_get_cmd(conf_t_cmd->dstate, "no");
  assert(no_cmd && no_cmd->dstate);
  mtev_console_state_add_cmd(no_cmd->dstate,
    NCSCMD("filterset", noit_console_filter_configure, NULL, NULL, (void *)1));
}