Skip to content

Latest commit

 

History

History
94 lines (85 loc) · 2.43 KB

README.md

File metadata and controls

94 lines (85 loc) · 2.43 KB

steampipe-plugin-openstack

A Steampipe plugin to query OpenStack data as you would a relational database.

At the moment you can run queries such as:

select 
    port.id, 
    port.device_id, 
    port.device_owner, 
    proj.id, 
    proj.name, 
    vm.id, 
    vm.name 
from 
    openstack_port port 
join 
    openstack_project proj 
on 
    proj.id = port.project_id 
left outer join 
    openstack_instance vm 
on 
    port.device_id = vm.id;

Runninga query is as simple as:

$> steampipe query "select * from openstack_instance where id = 'foo';"

$> steampipe query "select vm.id, vm.name, vm.host_id, vm.flavor_sockets, vm.flavor_disk, prj.name, prj.enabled, prj.id from openstack_instance vm, openstack_project prj where vm.id = '12345678-90ab-cdef-1234-567890abcdef' and vm.project_id = prj.id;"

TODO

This plugin is still in the very early stages.

  • General understanding
    • Understand how to expunge into own table embedded entities (e.g. []SecurityGroups from port)
    • Understand how to work with JSONb data
    • Understand how to use different operators in list filter (e.g. "description match regexp")
  • Implementation
    • Skeleton
    • Configuration schema
      • Make OpenStack API micro-versions configurable
    • Create connection
      • OpenStack APIs
      • Identity APIs
      • Compute APIs
      • Network APIs
      • Block Storage APIs
    • Virtual machines instances
      • Get
      • List
        • Filter
      • Embed original flavor
      • TODO
        • Add more fields
        • Embed image info
        • Manage tags
    • Network ports
      • Get
      • List
        • Filter
      • TODO
        • Manage tags
    • Network security groups
      • Get
      • List
        • Filter
      • TODO
        • Manage tags
    • Projects
      • Get
      • List
        • Filter
      • TODO
        • Manage tags
    • Users
      • Get
      • List
        • Filter
      • TODO
        • Test
    • Block storage volumes
      • Get
      • List
        • Filter
      • TODO
        • Test
        • Manage metadata
    • Check that joins between entities work