def _get_db_accessor(): #TODO singleton? aws_key = Credential() db_configs = DBConfigParser() db = DBAccessor() db.connect(db_configs.get_dynamodb_region(), aws_key.get_aws_access_key(), aws_key.get_aws_secret_key()) db.table_init(db_configs.get_dynamodb_tables()['image_table'], db_configs.get_dynamodb_tables()['tree_table'], db_configs.get_dynamodb_tables()['history_table']) return db
def launch(self): sha1 = os.environ['COMMIT_ID'] comment = os.environ['CI_MESSAGE'] (committer, diff_list) = self._git.get_commit_diff_info() db_configs = DBConfigParser() db = DBAccessor() db.connect(db_configs.get_dynamodb_region(), self._aws_key.get_aws_access_key(), self._aws_key.get_aws_secret_key()) db.table_init(db_configs.get_dynamodb_tables()['image_table'], db_configs.get_dynamodb_tables()['tree_table'], db_configs.get_dynamodb_tables()['history_table']) for diff_file in diff_list: if self._is_template(diff_file): template = os.path.join(self._git.get_repo(), diff_file) # main program if self._validate(diff_file): ami_name = self._get_image_name(diff_file) self._launch_amipacker_series(db, ami_name, template, sha1, committer.name, committer.email, comment, True, ami_name) else: return "Image File: %s\nCommitter: %s<%s>" % (diff_file, committer.name, committer.email) return None