def __init__()

in dusty/reporters/jira/legacy.py [0:0]


    def __init__(self, url, user, password, project, fields=None):
        self.valid = True
        self.url = url
        self.password = password
        self.user = user
        try:
            self.connect()
        except:
            logging.error("Failed to connect to Jira")
            self.valid = False
            return
        self.projects = [project.key for project in self.client.projects()]
        self.project = project.upper()
        if self.project not in self.projects:
            # self.client.close()
            logging.warning("Requested project not found in Jira projects")
            # self.valid = False
            # return
        self.fields = {}
        self.watchers = []
        if isinstance(fields, dict):
            if 'watchers' in fields.keys():
                self.watchers = [item.strip() for item in fields.pop('watchers').split(",")]
            all_jira_fields = self.client.fields()
            for key, value in fields.items():
                if value:
                    if isinstance(value, str) and const.JIRA_FIELD_DO_NOT_USE_VALUE in value:
                        self.fields[key] = value
                        continue
                    jira_keys = [item for item in all_jira_fields if item["id"] == key]
                    if not jira_keys:
                        jira_keys = [item for item in all_jira_fields
                                     if item["name"].lower() == key.lower().replace('_', ' ')]
                    if len(jira_keys) == 1:
                        jira_key = jira_keys[0]
                        key_type = jira_key['schema']['type']
                    else:
                        logging.warning(f'Cannot recognize field {key}. This field will not be used.')
                        continue
                    if key_type in ['string', 'number', 'any'] or isinstance(value, dict):
                        _value = value
                    elif key_type == 'array':
                        if isinstance(value, str):
                            _value = [item.strip() for item in value.split(",")]
                        elif isinstance(value, int):
                            _value = [value]
                        else:
                            _value = value
                    else:
                        _value = {'name': value}
                    self.fields[jira_key['id']] = _value
        if not self.fields.get('issuetype', None):
            self.fields['issuetype'] = {'name': '!default_issuetype'}
        self.client.close()
        self.created_jira_tickets = list()