class ConfluenceInstance(object): def __init__(self): self.settings = ConfluenceSettings() self.server = Server(self.settings.uri).confluence2 self.db = DatabaseWrapper() self.page = None def get_token(self): LOGGER.info('Logging in to Confluence as %s' % self.settings.login) token = self.server.login(self.settings.login, self.settings.password) return token def get_page(self): if self.page is None: LOGGER.info('Fetching page contents from Confluence') data = self.server.getPage( self.get_token(), self.settings.namespace, self.settings.pagename ) self.page = ConfluencePage(data) return self.page def save_page(self, page): page = self.__attach_statistics(page) self.server.storePage(self.get_token(), page.data) def __attach_statistics(self, page): stats = Stats(self.db.get_dc_issues()).get_result() content = page.data['content'] message = structured_macro_info( 'Warning', paragraph(update_message(self.settings.login, strftime("%Y-%m-%d %H:%M:%S %z", gmtime()))) ) to_go_count = stats['total']['count'] - stats['ready']['count'] - stats['passed']['count'] - stats['failed'][ 'count'] stat_info = paragraph( structured_macro_status('Grey', '%s total' % len(DatabaseWrapper.get_all_issues())) + structured_macro_status('Grey', '%s desk check' % stats['total']['count']) + structured_macro_status('Blue', '%s ready' % stats['ready']['count']) + structured_macro_status('Green', '%s pass' % stats['passed']['count']) + structured_macro_status('Red', '%s fail' % stats['failed']['count']) + structured_macro_status_subtle('%s to go' % to_go_count) ) content = message + stat_info + content page.data.update({'content': str(content)}) return page def __outdated_issues_block(self): items_for_list = [] for issue in self.db.get_outdated_issues(): items_for_list.append({ 'link': JiraSettings().browse + issue.key, 'title': issue.key, 'comment': ' (%s)' % issue.est_date, }) if len(items_for_list) > 0: outdated = paragraph( structured_macro_expand('%s outdated issues' % len(items_for_list), unordered_list_with_hrefs(items_for_list)) ) else: outdated = '' return outdated