Skip to content

Instantly share code, notes, and snippets.

@toabctl
Created April 2, 2020 18:38
Show Gist options
  • Save toabctl/b7e466492d57afc657ec736d189f3aff to your computer and use it in GitHub Desktop.
Save toabctl/b7e466492d57afc657ec736d189f3aff to your computer and use it in GitHub Desktop.
Running OpenStack servers
#!/usr/bin/python3
import argparse
import datetime
import sys
import openstack
def _parser():
parser = argparse.ArgumentParser(
description='Find running instances',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('hours', type=int,
help='Minimum number of hours the instance is running')
return parser
def main():
parser = _parser()
args = parser.parse_args()
conn = openstack.connect()
servers = conn.compute.servers(**{'status': 'ACTIVE'})
dt_now = datetime.datetime.now(datetime.timezone.utc)
dt_hours = datetime.timedelta(hours=args.hours)
for s in servers:
dt_created_at = datetime.datetime.strptime(s.created_at, "%Y-%m-%dT%H:%M:%S%z")
#print(dt_hours, dt_now, dt_created_at, dt_created_at + dt_hours)
if (dt_created_at + dt_hours) < dt_now:
print('{:20} {:40} since: {} (created at: {})'.format(s.name, s.id, dt_now - dt_created_at, dt_created_at))
return 0
if __name__ == "__main__":
rc = main()
sys.exit(rc)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment