def __init__(self, replicaset=None, filters=None, dryrun=False, region=None, logger=None): self.creation_time = datetime.now().strftime("%Y-%m-%dT%H-%M-%S") if logger is not None: self.logger = logger if region is None: region = AWS_REGION if AWS_ACCESS_KEY_ID or AWS_SECRET_ACCESS_KEY: self.ec2 = ec2_connect_to_region( region, aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY ) self.s3 = s3_connect_to_region( s3_bucket_region, aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY ) else: self.ec2 = ec2_connect_to_region( region ) self.s3 = s3_connect_to_region( s3_bucket_region ) if replicaset is None: raise RuntimeError('Replicaset must be provided.') self.replicaset = replicaset if filters: self.instances = self._instances_via_filters(filters=filters) else: raise RuntimeError('An API filter must be provided.') self.logger.debug("Found instances %s" % self.instances) self.mongo = self._mongo(instances=self.instances) self.logger.debug("Connected to mongo %s" % self.mongo) self.dryrun = dryrun
def __init__(self, replicaset=None, filters=None, instance_ids=None, ssh_opts=None, dryrun=False, region=None, logger=None): self.creation_time = datetime.utcnow().strftime("%m-%d-%Y %H:%M:%S") if logger is not None: self.logger = logger if region is None: region = 'us-east-1' if AWS_ACCESS_KEY_ID or AWS_SECRET_ACCESS_KEY: self.ec2 = ec2_connect_to_region( region, aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY ) else: self.ec2 = ec2_connect_to_region( region ) if replicaset is None: raise RuntimeError('replicaset must be provided.') self.replicaset = replicaset if filters: self.instances = self._instances_via_filters(filters=filters) elif instance_ids: self.instances = self._instances_via_ids(instance_ids=instance_ids) else: raise RuntimeError('Either an API filter or a list of instance' 'IDs must be provided.') self.logger.debug("found instances %s" % self.instances) self.mongo = self._mongo(instances=self.instances) self.logger.debug("connected to mongo %s" % self.mongo) self.ssh_opts = ssh_opts self.logger.debug("set ssh opts to %s" % self.ssh_opts) self.dryrun = dryrun
def __init__(self, replicaset=None, filters=None, instance_ids=None, ssh_opts=None, dryrun=False, region=None, logger=None): self.creation_time = datetime.utcnow().strftime("%m-%d-%Y %H:%M:%S") if logger is not None: self.logger = logger if region is None: region = 'us-east-1' if AWS_ACCESS_KEY_ID or AWS_SECRET_ACCESS_KEY: self.ec2 = ec2_connect_to_region( region, aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY) else: self.ec2 = ec2_connect_to_region(region) if replicaset is None: raise RuntimeError('replicaset must be provided.') self.replicaset = replicaset if filters: self.instances = self._instances_via_filters(filters=filters) elif instance_ids: self.instances = self._instances_via_ids(instance_ids=instance_ids) else: raise RuntimeError('Either an API filter or a list of instance' 'IDs must be provided.') self.logger.debug("found instances %s" % self.instances) self.mongo = self._mongo(instances=self.instances) self.logger.debug("connected to mongo %s" % self.mongo) self.ssh_opts = ssh_opts self.logger.debug("set ssh opts to %s" % self.ssh_opts) self.dryrun = dryrun
def __init__(self, replicaset=None, filters=None, dryrun=False, region=None, logger=None): self.creation_time = datetime.now().strftime("%Y-%m-%dT%H-%M-%S") if logger is not None: self.logger = logger if region is None: region = AWS_REGION if AWS_ACCESS_KEY_ID or AWS_SECRET_ACCESS_KEY: self.ec2 = ec2_connect_to_region( region, aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY) self.s3 = s3_connect_to_region( s3_bucket_region, aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY) else: self.ec2 = ec2_connect_to_region(region) self.s3 = s3_connect_to_region(s3_bucket_region) if replicaset is None: raise RuntimeError('Replicaset must be provided.') self.replicaset = replicaset if filters: self.instances = self._instances_via_filters(filters=filters) else: raise RuntimeError('An API filter must be provided.') self.logger.debug("Found instances %s" % self.instances) self.mongo = self._mongo(instances=self.instances) self.logger.debug("Connected to mongo %s" % self.mongo) self.dryrun = dryrun
def ec2(): """ Creates an EC2 connection. """ return ec2_connect_to_region(REGION)