5 from datetime import datetime
6 from django.db.models import F, Q
7 from planetstack.config import Config
8 from ec2_observer.syncstep import SyncStep
9 from core.models.user import User
10 from core.models.site import *
11 from ec2_observer.awslib import *
12 from ec2_observer.creds import *
15 class SyncUsers(SyncStep):
19 def fetch_pending(self, deletion):
23 users = User.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
28 e = get_creds(user=u, site=u.site)
29 key_sig = aws_run('ec2 describe-key-pairs', env=e)
30 ec2_keys = key_sig['KeyPairs']
36 for user,ec2_keys,e in zip(users,keys,creds):
38 key_name = user.email.lower().replace('@', 'AT').replace('.', '')
42 if (key['KeyName']==key_name):
47 aws_run('ec2 import-key-pair --key-name %s --public-key-material "%s"'%(key_name, user.public_key),env=e)
51 def sync_record(self, node):