def __init__( self, reactor, app_name, app_mode, # NB 'connListener': currently this is the daemon connListener=None, connListenerArgs=[], connListenerKWArgs={}, **kwargs): self.initialDelay = kwargs.get("initialDelay", 3) self.factor = kwargs.get("factor", 1) self.jitter = kwargs.get("jitter", .10) self.currProtocol = None self.messageQueue = Queue.Queue() self.reactor = reactor self.app_name = app_name self.app_mode = app_mode self.connListener = connListener self.connListenerArgs = connListenerArgs self.connListenerKWArgs = connListenerKWArgs self.app_id = kwargs["app_id"] self.apns_host = kwargs.get("apns_host") self.apns_port = kwargs.get("apns_port") # see if we need defaults assert self.apns_host or self.app_mode, 'Either one of apns_host and app_mode needs to be set!' self.apns_host = self.apns_host or \ (self.app_mode == "apns_dev" and constants.DEFAULT_APNS_DEV_HOST) or \ (self.app_mode == "apns_prod" and constants.DEFAULT_APNS_PROD_HOST) assert self.apns_port or self.app_mode, 'Either one of apns_port and app_mode needs to be set!' self.apns_port = self.apns_port or \ (self.app_mode == "apns_dev" and constants.DEFAULT_APNS_DEV_PORT) or \ (self.app_mode == "apns_prod" and constants.DEFAULT_APNS_PROD_PORT) self.certificate_file = utils.resolve_env_vars( kwargs["certificate_file"]) self.privatekey_file = utils.resolve_env_vars( kwargs["privatekey_file"]) logger.info("Certificate File: %s" % self.certificate_file) logger.info("PrivateKey File: %s" % self.privatekey_file) self.client_context_factory = SSLContextFactory( self.privatekey_file, self.certificate_file) logger.info("Connecting to APNS Server, App: %s:%s" % (self.app_mode, self.app_id)) # apns_host seems to be of type bool sometimes self.reactor.connectSSL(self.apns_host, self.apns_port, self, self.client_context_factory)
def __init__(self, reactor, app_name, app_mode, **kwargs): self.reactor = reactor self.app_name = app_name self.app_mode = app_mode self.app_id = kwargs["app_id"] self.feedback_host = kwargs.get("feedback_host") self.feedback_port = kwargs.get("feedback_port") # see if we need defaults self.feedback_host = self.feedback_host or \ (self.app_mode == "apns_dev" and constants.DEFAULT_FEEDBACK_DEV_HOST) or \ (self.app_mode == "apns_prod" and constants.DEFAULT_FEEDBACK_PROD_HOST) self.feedback_port = self.feedback_port or \ (self.app_mode == "apns_dev" and constants.DEFAULT_FEEDBACK_DEV_PORT) or \ (self.app_mode == "apns_prod" and constants.DEFAULT_FEEDBACK_PROD_PORT) self.certificate_file = utils.resolve_env_vars(kwargs["certificate_file"]) self.privatekey_file = utils.resolve_env_vars(kwargs["privatekey_file"]) self.client_context_factory = SSLContextFactory(self.privatekey_file, self.certificate_file)
def main(args): logging.basicConfig(level=getattr(logging, args.log)) utils.GCLOUD_OPTIONS = utils.GcloudOptions(dry_run=args.dry_run, gcloud_bin=args.gcloud_bin) # Read and parse the project configuration YAML file. all_projects = utils.resolve_env_vars( utils.read_yaml_file(args.project_yaml)) if not all_projects: logging.error('Error loading project YAML.') return logging.info('Validating project YAML against schema.') try: utils.validate_config_yaml(all_projects) except jsonschema.exceptions.ValidationError as e: logging.error('Error in YAML config: %s', e) return overall = all_projects['overall'] audit_logs_project = all_projects.get('audit_logs_project') projects = [] # Always deploy the remote audit logs project first (if present). if audit_logs_project: projects.append( ProjectConfig(overall=overall, project=audit_logs_project, audit_logs_project=None)) for project_config in all_projects.get('projects', []): projects.append( ProjectConfig(overall=overall, project=project_config, audit_logs_project=audit_logs_project)) # If resuming setup from a particular project, skip to that project. if args.resume_from_project: while (projects and projects[0].project['project_id'] != args.resume_from_project): skipped = projects.pop(0) logging.info('Skipping project %s', skipped.project['project_id']) if not projects: logging.error('Project not found: %s', args.resume_from_project) if projects: starting_step = max(1, args.resume_from_step) for config in projects: logging.info('Setting up project %s', config.project['project_id']) if not setup_new_project(config, starting_step): # Don't attempt to deploy additional projects if one project failed. return starting_step = 1 else: logging.error('No projects to deploy.')
def __init__(self, reactor, app_name, app_mode, # NB 'connListener': currently this is the daemon connListener = None, connListenerArgs = [], connListenerKWArgs = {}, **kwargs): self.initialDelay = kwargs.get("initialDelay", 3) self.factor = kwargs.get("factor", 1) self.jitter = kwargs.get("jitter", .10) self.currProtocol = None self.messageQueue = Queue.Queue() self.reactor = reactor self.app_name = app_name self.app_mode = app_mode self.connListener = connListener self.connListenerArgs = connListenerArgs self.connListenerKWArgs = connListenerKWArgs self.app_id = kwargs["app_id"] self.apns_host = kwargs.get("apns_host") self.apns_port = kwargs.get("apns_port") # see if we need defaults assert self.apns_host or self.app_mode, 'Either one of apns_host and app_mode needs to be set!' self.apns_host = self.apns_host or \ (self.app_mode == "apns_dev" and constants.DEFAULT_APNS_DEV_HOST) or \ (self.app_mode == "apns_prod" and constants.DEFAULT_APNS_PROD_HOST) assert self.apns_port or self.app_mode, 'Either one of apns_port and app_mode needs to be set!' self.apns_port = self.apns_port or \ (self.app_mode == "apns_dev" and constants.DEFAULT_APNS_DEV_PORT) or \ (self.app_mode == "apns_prod" and constants.DEFAULT_APNS_PROD_PORT) self.certificate_file = utils.resolve_env_vars(kwargs["certificate_file"]) self.privatekey_file = utils.resolve_env_vars(kwargs["privatekey_file"]) logger.info("Certificate File: %s" % self.certificate_file) logger.info("PrivateKey File: %s" % self.privatekey_file) self.client_context_factory = SSLContextFactory(self.privatekey_file, self.certificate_file) logger.info("Connecting to APNS Server, App: %s:%s" % (self.app_mode, self.app_id)) # apns_host seems to be of type bool sometimes self.reactor.connectSSL(self.apns_host, self.apns_port, self, self.client_context_factory)
def __init__(self, reactor, app_name, app_mode, **kwargs): self.reactor = reactor self.app_name = app_name self.app_mode = app_mode self.app_id = kwargs["app_id"] self.feedback_host = kwargs.get("feedback_host") self.feedback_port = kwargs.get("feedback_port") # see if we need defaults self.feedback_host = self.feedback_host or \ (self.app_mode == "apns_dev" and constants.DEFAULT_FEEDBACK_DEV_HOST) or \ (self.app_mode == "apns_prod" and constants.DEFAULT_FEEDBACK_PROD_HOST) self.feedback_port = self.feedback_port or \ (self.app_mode == "apns_dev" and constants.DEFAULT_FEEDBACK_DEV_PORT) or \ (self.app_mode == "apns_prod" and constants.DEFAULT_FEEDBACK_PROD_PORT) self.certificate_file = utils.resolve_env_vars( kwargs["certificate_file"]) self.privatekey_file = utils.resolve_env_vars( kwargs["privatekey_file"]) self.client_context_factory = SSLContextFactory( self.privatekey_file, self.certificate_file)