def main():
    args = init_argparse()
    logfile = init_logging()

    global config
    try:
        config = Configuration.Config(__file__)
        JiraApiClient.configure(config=config)

    except Exception, e:
        print u"%s" % e
        logging.error(u"%s" % e)
def searchIssues(jql, startidx, max):
    params = {"jql": jql, "startAt": startidx, "maxResults": max}
    jsonobj = JiraApiClient.get("search", params)
    if jsonobj:
        res = []
        for elem in jsonobj["issues"]:
            res.append(elem["id"])
        msg = "Encontrados %s resultados" % len(res)
        logging.info(msg)
        return res, jsonobj["total"]
    else:
        msg = "Error recuperando issues"
        logging.error(msg)
        return None, None
    def __init__(self, id, viewport):
        self.id = id
        self.key = None
        self.attchs = []
        self.project = None
        self.viewport = viewport

        jsondata = JiraApiClient.get("issue/%s" % self.id)
        if jsondata:
            self.key = jsondata["key"]
            self.project = jsondata["fields"]["project"]["key"]
            msg = "Leida issue: id=[%s], key=[%s]" % (self.id, self)
            logging.info(msg)
            self.viewport.update(message=msg)
            for e in jsondata["fields"]["attachment"]:
                self.attchs.append(Attachment(e["id"], e["filename"], e["size"]))
        else:
            msg = "Error recuperando issue: [%s]" % self.id
            logging.error(msg)
            self.viewport.update(message=msg)
    def putComment(self):
        str_msg = config.get("COMMENT") + "\n\nBorrados:\n{noformat}"
        found = False
        for a in self.attchs:
            if a.isDeleted():
                found = True
                str_msg += "- \%s\%s\%s" % (self.project, self.key, a) + "\n"

        str_msg += "{noformat}"
        dict_msg = {"update": {"comment": [{"add": {"body": str_msg}}]}}
        if found:
            if not JiraApiClient.put("issue/%s" % self.id, dict_msg):
                msg = "No se pudo agregar comentario a " + self.key
                logging.error(msg)
                self.viewport.update(message=msg)

        else:
            msg = "No se escribe comentario porque no se borraron adjuntos"
            logging.error(msg)
            self.viewport.update(message=msg)
 def delete(self):
     self.deleted = JiraApiClient.delete("attachment/%s" % self.id)
     if not self.deleted:
         msg = "No se borra adjunto: id=[%s], fichero=[%s]" % (self.id, self)
         logging.error(msg)
         viewport.update(message=msg)