def action_notify(): q = "Send mail to all users of these instances about termination? (yes|no) " answer = raw_input(q) if answer.lower() != 'yes': print "Abort sending mail!" return search_filter = dict() if options.type: search_filter['type'] = options.type projects = ksclient.get_projects(domain=options.domain, **search_filter) for region in regions: novaclient = Nova(options.config, debug=options.debug, log=logger, region=region) for project in projects: if not options.filter or options.filter in project.name: instances = novaclient.get_project_instances(project.id) mapping = dict(region=region.upper(), project=project.name) body_content = himutils.load_template( inputfile=options.template, mapping=mapping, log=logger) subject = ('UH-IaaS: Your instances will be terminated (%s)' % (region)) notify = Notify(options.config, debug=False, log=logger) notify.set_keystone_client(ksclient) notify.set_dry_run(options.dry_run) users = notify.mail_instance_owner(instances, body_content, subject) notify.close() print users
def action_notify(): q = "Send mail to all users of these instances about termination? (yes|no) " answer = raw_input(q) if answer.lower() != 'yes': print "Abort sending mail!" return search_filter = dict() if options.type: search_filter['type'] = options.type projects = ksclient.get_projects(domain=options.domain, **search_filter) for region in regions: novaclient = Nova(options.config, debug=options.debug, log=logger, region=region) for project in projects: if not options.filter or options.filter in project.name: instances = novaclient.get_project_instances(project.id) verified_instances = list() for i in instances: network = i.addresses.keys()[0] if len(i.addresses.keys()) > 0 else 'unknown' if options.network and options.network != network: continue verified_instances.append(i) mapping = dict(region=region.upper(), project=project.name) body_content = himutils.load_template(inputfile=options.template, mapping=mapping, log=logger) subject = ('UH-IaaS: Your instances will be terminated (%s)' % (region)) notify = Notify(options.config, debug=False, log=logger) notify.set_keystone_client(ksclient) notify.set_dry_run(options.dry_run) users = notify.mail_instance_owner(verified_instances, body_content, subject) notify.close() if users: print users
def action_instance(): for region in regions: novaclient = Nova(options.config, debug=options.debug, log=logger, region=region) instances = novaclient.get_instances() mapping = dict(region=region.upper()) body_content = himutils.load_template(inputfile=options.template, mapping=mapping, log=logger) subject = options.subject notify = Notify(options.config, debug=False, log=logger) notify.set_keystone_client(ksclient) notify.set_dry_run(options.dry_run) users = notify.mail_instance_owner(instances=instances, body=body_content, subject=subject, admin=True, options=['project', 'az']) notify.close() printer.output_dict(users)