search.rb 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. # frozen_string_literal: true
  2. lib_dir = File.join(File.dirname(File.expand_path(__FILE__)), '..', '..', 'lib')
  3. $LOAD_PATH.unshift(lib_dir) unless
  4. $LOAD_PATH.include?(lib_dir) || $LOAD_PATH.include?(lib_dir)
  5. require 'json'
  6. require 'neoinfra'
  7. require 'sinatra'
  8. require 'sinatra/base'
  9. require 'sinatra/respond_to'
  10. # Handle loading data into the graph db
  11. class Search < Sinatra::Base
  12. register Sinatra::RespondTo
  13. set :views, File.join(File.dirname(__FILE__), '..', '/views')
  14. post '/all' do
  15. puts params.to_s
  16. if params['search'] =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/
  17. n = NeoInfra::Nodes.new
  18. respond_to do |wants|
  19. wants.html {
  20. erb :view_node,
  21. :layout => :base_layout,
  22. :locals => {:node => n.search_nodes_by_ip(params['search'])}
  23. }
  24. end
  25. elsif params['search'] =~ /i-[a-f0-9]{6,20}/
  26. n = NeoInfra::Nodes.new
  27. respond_to do |wants|
  28. wants.html {
  29. erb :view_node,
  30. :layout => :base_layout,
  31. :locals => {:node => n.search_nodes_by_node_id(params['search'])}
  32. }
  33. end
  34. end
  35. end
  36. end