def _parse_cases(self): ''' Use this for non-interactive display of results. ''' try: for val in self.aAry: doc = u'' doc += '%-14s %-60s\n' % (Constants.ATTACH_CREATE, common.iso8601tolocal( val.get_createdDate())) doc += '%-14s %-60s\n' % (Constants.ATTACH_CREATE_BY, val.get_createdBy()) doc += '%-14s %-60s\n' % (Constants.ATTACH_FILE_NAME, val.get_fileName()) doc += '%-14s %-60s\n' % (Constants.ATTACH_DESCRIPTION, val.get_description()) doc += '%-14s %-60s\n' % (Constants.ATTACH_LENGTH, common.get_friendly_file_length( val.get_length())) doc += '%-14s %-60s\n' % (Constants.UUID, val.get_uuid()) doc += '%-14s %-60s' % (Constants.URL, val.get_uri()) doc += '\n\n%s%s%s\n\n' % (Constants.BOLD, str('-' * Constants.MAX_RULE), Constants.END) disp_opt_text = "%-24s %-40s %-50s" % (val.get_fileName(), val.get_uuid(), val.get_description()) disp_opt = ObjectDisplayOption(disp_opt_text, 'interactive_action', val.get_uuid()) self._submenu_opts.append(disp_opt) self._sections[disp_opt] = doc # pylint: disable=W0702 except: msg = _('ERROR: problem parsing the attachments.') print msg logger.log(logging.WARNING, msg) return False return True
def _parse_sections(self, case): ''' Find available sections, format, and put in dictionary. ''' try: # Info (all cases should have this): doc = u'' doc += '\n%s%s%s\n' % (Constants.BOLD, Constants.CASE_DETAILS, Constants.END) doc += '%s%s%s\n' % (Constants.BOLD, str(self.ruler * Constants.MAX_RULE), Constants.END) doc += '%-20s %-40s\n' % (Constants.CASE_NUMBER, case.get_caseNumber()) doc += '%-20s %-40s\n' % (Constants.CASE_TYPE, case.get_type()) doc += '%-20s %-40s\n' % (Constants.CASE_SEVERITY, case.get_severity()) doc += '%-20s %-40s\n' % (Constants.CASE_STATUS, case.get_status()) doc += '%-20s %-40s\n\n' % (Constants.CASE_AID, case.get_alternateId()) doc += '%-20s %-40s\n' % (Constants.CASE_PROD, case.get_product()) doc += '%-20s %-40s\n' % (Constants.CASE_VER, case.get_version()) if case.get_entitlement() is None: doc += '%-20s %-40s\n' % (Constants.CASE_SLA, ' ') else: doc += '%-20s %-40s\n' % (Constants.CASE_SLA, case.get_entitlement().get_sla()) doc += '%-20s %-40s\n' % (Constants.CASE_OWNER, case.get_contactName()) doc += '%-20s %-40s\n\n' % (Constants.CASE_RHOWN, case.get_owner()) if case.group: doc += '%-20s %-40s\n' % (Constants.CASE_GRP, case.group.get_name()) else: doc += '%-20s %-40s\n' % (Constants.CASE_GRP, 'None') doc += '%-20s %-40s\n' % (Constants.CASE_OPENED, common.iso8601tolocal(case.get_createdDate())) doc += '%-20s %-40s\n' % (Constants.CASE_OPENEDBY, case.get_createdBy()) doc += '%-20s %-40s\n' % (Constants.CASE_UPDATED, common.iso8601tolocal(case.get_lastModifiedDate())) doc += '%-20s %-40s\n\n' % (Constants.CASE_UPDATEDBY, case.get_lastModifiedBy()) doc += '%-20s %-40s\n\n' % (Constants.CASE_SUMMARY, case.get_summary()) disp_opt = DisplayOption(Constants.CASE_DETAILS, 'interactive_action') self._submenu_opts.append(disp_opt) self._sections[disp_opt] = doc if common.is_interactive(): disp_opt = DisplayOption(Constants.CASE_MODIFY, 'interactive_action') self._submenu_opts.append(disp_opt) # Description des = case.get_description() if des is not None: doc = u'' doc += '\n%s%s%s\n' % (Constants.BOLD, Constants.CASE_DESCRIPTION, Constants.END) doc += '%s%s%s\n' % (Constants.BOLD, str(self.ruler * Constants.MAX_RULE), Constants.END) doc += '%s\n' % des disp_opt = DisplayOption(Constants.CASE_DESCRIPTION, 'interactive_action') self._submenu_opts.append(disp_opt) self._sections[disp_opt] = doc # Comments commentAry = case.get_comments() num_comments = len(commentAry) if commentAry is not None and num_comments > 0: doc = u'' doc += '\n%s%s%s\n' % (Constants.BOLD, Constants.CASE_DISCUSSION, Constants.END) doc += '%s%s%s\n' % (Constants.BOLD, str(self.ruler * Constants.MAX_RULE), Constants.END) for i, cmt in enumerate(commentAry): cmt_type = 'private' if cmt.get_public(): cmt_type = 'public' doc += '%-20s #%s %s(%s)%s\n' % \ (Constants.COMMENT, num_comments-i, Constants.BOLD if cmt_type == 'private' else Constants.END, cmt_type, Constants.END) doc += '%-20s %-40s\n' % (Constants.CASE_CMT_AUTHOR, cmt.get_lastModifiedBy()) doc += '%-20s %-40s\n\n' % (Constants.CASE_CMT_DATE, common.iso8601tolocal(cmt.get_lastModifiedDate())) doc += cmt.get_text() doc += '\n\n%s%s%s\n\n' % (Constants.BOLD, str('-' * Constants.MAX_RULE), Constants.END) disp_opt = DisplayOption(Constants.CASE_DISCUSSION, 'interactive_action') self._submenu_opts.append(disp_opt) self._sections[disp_opt] = doc recommendAry = case.get_recommendations() if recommendAry is not None and len(recommendAry) > 0: doc = u'' doc += '\n%s%s%s\n' % (Constants.BOLD, Constants.CASE_RECOMMENDATIONS, Constants.END) doc += '%s%s%s\n' % (Constants.BOLD, str(self.ruler * Constants.MAX_RULE), Constants.END) # For de-duplication this is now in a helper module, # generate_metadata will return the formatted doc for non- # interactive prompts, plus the prompt for interactive users. disp_opt, recdoc = recommendationprompter.generate_metadata( recommendAry) doc += recdoc self._submenu_opts.append(disp_opt) self._sections[disp_opt] = doc # Get Attachments disp_opt = DisplayOption(Constants.CASE_GET_ATTACH, 'interactive_action') self._submenu_opts.append(disp_opt) self._sections[disp_opt] = Constants.CASE_GET_ATTACH # Add Attachment disp_opt = DisplayOption(Constants.CASE_ADD_ATTACH, 'interactive_action') self._submenu_opts.append(disp_opt) self._sections[disp_opt] = Constants.CASE_ADD_ATTACH # Comment disp_opt = DisplayOption(Constants.CASE_ADD_COMMENT, 'interactive_action') self._submenu_opts.append(disp_opt) self._sections[disp_opt] = Constants.CASE_ADD_COMMENT except Exception: msg = _('ERROR: problem parsing the cases.') print msg logger.log(logging.WARNING, msg) return False return True
doc += '%s%s%s\n' % (Constants.BOLD, str(self.ruler * Constants.MAX_RULE), Constants.END) for i, cmt in enumerate(commentAry): cmt_type = 'private' if cmt.get_public(): cmt_type = 'public' doc += '%-20s #%s %s(%s)%s\n' % \ (Constants.COMMENT, num_comments-i, Constants.BOLD if cmt_type == 'private' else Constants.END, cmt_type, Constants.END) doc += '%-20s %-40s\n' % (Constants.CASE_CMT_AUTHOR, cmt.get_lastModifiedBy()) doc += '%-20s %-40s\n\n' % ( Constants.CASE_CMT_DATE, common.iso8601tolocal(cmt.get_lastModifiedDate())) doc += cmt.get_text() doc += '\n\n%s%s%s\n\n' % (Constants.BOLD, str('-' * Constants.MAX_RULE), Constants.END) disp_opt = DisplayOption(Constants.CASE_DISCUSSION, 'interactive_action') self._submenu_opts.append(disp_opt) self._sections[disp_opt] = doc recommendAry = case.get_recommendations() if recommendAry is not None and len(recommendAry) > 0: doc = u'' doc += '\n%s%s%s\n' % (Constants.BOLD, Constants.CASE_RECOMMENDATIONS, Constants.END)