nodes.rb 1016 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. # frozen_string_literal: true
  2. require 'neo4j'
  3. class Node
  4. include Neo4j::ActiveNode
  5. property :node_id, constraint: :unique
  6. property :name
  7. property :ip
  8. property :public_ip
  9. property :size
  10. property :state
  11. property :ami
  12. has_one :out, :subnet, rel_class: :NodeSubnet
  13. has_one :out, :az, rel_class: :NodeAz
  14. has_one :out, :sshkey, rel_class: :NodeSshKey
  15. has_one :out, :account, rel_class: :NodeAccount
  16. end
  17. class SshKey
  18. include Neo4j::ActiveNode
  19. property :name
  20. property :account
  21. end
  22. class NodeSubnet
  23. include Neo4j::ActiveRel
  24. from_class :Node
  25. to_class :Subnet
  26. type :subnet
  27. end
  28. class NodeAz
  29. include Neo4j::ActiveRel
  30. from_class :Node
  31. to_class :Az
  32. type :az
  33. end
  34. class NodeSshKey
  35. include Neo4j::ActiveRel
  36. from_class :Node
  37. to_class :SshKey
  38. type :sshkey
  39. end
  40. class NodeAccount
  41. include Neo4j::ActiveRel
  42. from_class :Node
  43. to_class :AwsAccount
  44. type :owner
  45. end
  46. class SshKeyAccount
  47. include Neo4j::ActiveRel
  48. from_class :SshKey
  49. to_class :AwsAccount
  50. type :owner
  51. end