def test_activate_subscribed_service(self): stdout, stderr, MLOGFILENAME, MSSEC2SECRETSFILE = self.initialize_testlocal_state('test_activate_subscribed_service') self.patch(signup, 'VERIFY_POLL_TIME', .1) self.patch(signup, 'VERIFY_TOTAL_WAIT', .2) from lae_automation.aws import queryapi def call_hostpubkeyextractor(consoletext, instanceId): return MOCKSERVERSSHFP self.patch(queryapi, 'hostpubkeyextractor', call_hostpubkeyextractor) d = signup.activate_subscribed_service(self.MEMAIL, self.MKEYINFO, self.MCUSTOMER_ID, self.MSUBSCRIPTION_ID, self.MPLAN_ID, stdout, stderr, MSSEC2SECRETSFILE, MLOGFILENAME, self.CONFIGFILEPATH, self.SERVERINFOPATH) def _check(ign): content = FilePath(MLOGFILENAME).getContent() self.failUnlessIn('MEMAIL', content) self.failUnlessIn('MKEYINFO', content) d.addCallback(_check) return d
def main(stdin, flapp_stdout, flapp_stderr): append_record(flapp_stdout, "Automation script started.") parameters_json = stdin.read() (customer_email, customer_pgpinfo, customer_id, plan_id, subscription_id) = simplejson.loads(parameters_json) (abslogdir_fp, stripesecrets_log_fp, SSEC2secrets_log_fp, signup_log_fp) = create_log_filepaths(plan_id, customer_id, subscription_id) append_record(flapp_stdout, "Writing logs to %r." % (abslogdir_fp.path,)) stripesecrets_log_fp.setContent(parameters_json) SSEC2_secretsfile = SSEC2secrets_log_fp.open('a+') signup_logfile = signup_log_fp.open('a+') signup_stdout = LoggingStream(signup_logfile, '>') signup_stderr = LoggingStream(signup_logfile, '') sys.stdout = signup_stderr def errhandler(err): fh = flapp_stderr.open('a+') fh.write(repr(err)) fh.close() return err d = defer.succeed(None) d.addCallback(lambda ign: activate_subscribed_service(customer_email, customer_pgpinfo, customer_id, subscription_id, plan_id, signup_stdout, signup_stderr, SSEC2_secretsfile, signup_log_fp.path) ) d.addErrback(errhandler) d.addBoth(lambda ign: signup_logfile.close())
def test_timeout_addressreq(self): stdout, stderr, MLOGFILENAME, MSSEC2_secretsfile = self.initialize_testlocal_state('test_timeout_addressreq') from lae_automation.aws import queryapi def call_get_EC2_properties(ec2accesskeyid, ec2secretkey, EC2_ENDPOINT, parser, *instance_ids): return defer.succeed(None) self.patch(queryapi, 'get_EC2_properties', call_get_EC2_properties) d = signup.activate_subscribed_service(self.MEMAIL, self.MKEYINFO, self.MCUSTOMER_ID, self.MSUBSCRIPTION_ID, self.MPLAN_ID, stdout, stderr, MSSEC2_secretsfile, MLOGFILENAME, self.CONFIGFILEPATH, self.SERVERINFOPATH) def _bad_success(ign): self.fail("should have got a failure") def _check_failure(f): f.trap(signup.TimeoutError) stdout.close() logfp = FilePath(MLOGFILENAME) out = logfp.getContent() self.failUnlessIn("Timed out", out) d.addCallbacks(_bad_success, _check_failure) return d
def test_EC2_not_listening(self): stdout, stderr, MLOGFILENAME, MSSEC2_secretsfile = self.initialize_testlocal_state('test_EC2_not_listening') self.patch(signup, 'VERIFY_POLL_TIME', .1) self.patch(signup, 'VERIFY_TOTAL_WAIT', .2) from lae_automation.aws import queryapi def call_get_EC2_consoleoutput(ec2accesskeyid, ec2secretkey, endpoint_uri, instance_id): return defer.succeed(None) self.patch(queryapi, 'get_EC2_consoleoutput', call_get_EC2_consoleoutput) d = signup.activate_subscribed_service(self.MEMAIL, self.MKEYINFO, self.MCUSTOMER_ID, self.MSUBSCRIPTION_ID, self.MPLAN_ID, stdout, stderr, MSSEC2_secretsfile, MLOGFILENAME, self.CONFIGFILEPATH, self.SERVERINFOPATH) def _bad_success(ign): self.fail("should have got a failure") def _check_failure(f): f.trap(signup.TimeoutError) stdout.close() logfp = FilePath(MLOGFILENAME) out = logfp.getContent() self.failUnlessIn("Timed out", out) d.addCallbacks(_bad_success, _check_failure) return d