예제 #1
0
    def save_connection_config(self) -> None:
        if self.name and self.url:
            config_parser = RawConfigParser()
            config_parser.add_section(SECTION_TITLE)
            config_parser.set(SECTION_TITLE, 'url', self.url)

            if self._requires_auth:
                config_parser.set(SECTION_TITLE, 'username',
                                  self._auth['username'])
                password = encode(encode_password(), self._auth['password'])
                config_parser.set(SECTION_TITLE, 'password', password)

            if self.jenkins_views:
                config_parser.set(SECTION_TITLE, 'views',
                                  ','.join(self.view_names))

                for view in self.views:
                    view.save_view_config()

            save_argus_config(
                config_parser,
                build_config_file(jenkins_connections_dir, self.name))
        else:
            raise ConfigError(
                'No data to save in JenkinsConnection config file.')
예제 #2
0
    def _save_config(self) -> None:
        config_parser = configparser.RawConfigParser()
        # Save team names comma delim
        config_parser.add_section('manager')

        # Root names are name:jira_conn_name
        # Need to append a comma if we only have 1, else it'll treat it as an array of char instead of array of str on read
        root_names = ','.join([x.root_name for x in list(self._teams.values())])
        if len(list(self._teams.values())) == 1:
            root_names = root_names + ','
        print('Saving root names as: {}'.format(root_names))
        config_parser.set('manager', 'team_names', root_names)

        for team in list(self._teams.values()):
            for member in team.members:
                member.save_config(config_parser)

        # [organizations] [org_names=org_1, org_2, org_3]
        # [organizations] [org=team_1, team_2, team_3]
        config_parser.add_section('organizations')
        config_parser.set('organizations', 'org_names', ','.join(list(self._organizations.keys())))
        for org in self._organizations.keys():
            config_parser.set('organizations', org, ','.join(list(self._organizations[org])))

        config_path = os.path.join(conf_dir, 'teams.cfg')
        save_argus_config(config_parser, config_path)
예제 #3
0
    def save_view_config(self) -> None:
        config_parser = RawConfigParser()
        config_parser.add_section(SECTION_TITLE)
        config_parser.set(SECTION_TITLE, 'job_names', ','.join(self.job_names))

        save_argus_config(config_parser,
                          build_config_file(jenkins_views_dir, self.name))
예제 #4
0
 def _save_config():
     config_parser = configparser.RawConfigParser()
     config_parser.add_section('Argus')
     config_parser.set('Argus', 'Browser', Config.Browser)
     config_parser.set('Argus', 'Show_Dependencies', utils.show_dependencies)
     config_parser.set('Argus', 'Show_Only_Open_Dependencies', utils.show_only_open_dependencies)
     conf = os.path.join(conf_dir, 'argus.cfg')
     save_argus_config(config_parser, conf)
예제 #5
0
    def save_report_config(self) -> None:
        config_parser = RawConfigParser()
        config_parser.add_section(SECTION_TITLE)

        if self.connection_names:
            config_parser.set(SECTION_TITLE, 'connection_names', ','.join(self.connection_names))
            for connection_name in self.connection_names:
                config_parser.add_section(connection_name)
                config_parser.set(connection_name, 'job_names', ','.join(self.connection_dict[connection_name]))

        save_argus_config(config_parser, self._parser_path)
예제 #6
0
    def save_config(self):
        config_parser = configparser.RawConfigParser()
        config_parser.add_section('JiraView')
        config_parser.set('JiraView', 'name', self.name)
        config_parser.set('JiraView', 'jira_connection',
                          self.jira_connection.connection_name)
        if len(self._teams) > 0:
            config_parser.set('JiraView', 'Teams',
                              ','.join(list(self._teams.keys())))
        for fn in list(self._jira_filters.keys()):
            self._jira_filters[fn].save_config(config_parser)

        save_argus_config(config_parser, self._build_config(self.name))
예제 #7
0
    def save_config(self) -> None:
        """
        Blindly overwrites existing config file for connection.
        """
        config_parser = configparser.RawConfigParser()
        config_parser.add_section('Connection')
        config_parser.set('Connection', 'url', self._url)
        config_parser.set('Connection', 'user',
                          encode(encode_password(), self._user))
        config_parser.set('Connection', 'password',
                          encode(encode_password(), self._pass))
        config_parser.set('Connection', 'projects',
                          ','.join(self.possible_projects))

        save_argus_config(config_parser,
                          self._build_config(self.connection_name))
예제 #8
0
    def save_config(self):
        # .cfg file
        config_parser = configparser.RawConfigParser()
        config_parser.add_section('Config')
        config_parser.set('Config', 'connection_name',
                          self.jira_connection.connection_name)
        config_parser.set('Config', 'project_name', self.project_name)
        config_parser.set('Config', 'updated', self.updated)
        config_parser.set('Config', 'url', self._url)
        config_parser.set('Config', 'custom_fields',
                          ','.join(list(self._custom_fields.keys())))
        for field in list(self._custom_fields.keys()):
            config_parser.set('Config', field, self._custom_fields[field])

        save_argus_config(config_parser, self.config_file())

        # Protect against saving during init wiping out the local data file. Shouldn't be an issue but seen it pop up
        # during dev once or twice.
        if len(self.jira_issues) > 0:
            save_argus_data(list(self.jira_issues.values()), self._data_file())
예제 #9
0
    def save_jenkins_config(self):
        config_parser = RawConfigParser()

        if os.path.exists(jenkins_conf_file):
            config_parser.read(jenkins_conf_file)

        if not config_parser.has_section(SECTION_TITLE):
            config_parser.add_section(SECTION_TITLE)

        config_parser.set(SECTION_TITLE, 'connections',
                          ','.join(self.connection_names))

        if self.jenkins_reports:
            config_parser.set(SECTION_TITLE, 'reports',
                              ','.join(self.report_names))

        for connection in self.connections:
            connection.save_connection_config()

        for report in self.reports:
            report.save_report_config()

        save_argus_config(config_parser, jenkins_conf_file)
예제 #10
0
    def _save_config(self):
        """
        Saves config for JiraManager, all connections, and all views
        """
        config_parser = configparser.RawConfigParser()
        config_parser.add_section('JiraManager')
        config_parser.set('JiraManager', 'Connections',
                          ','.join(list(self._jira_connections.keys())))
        # Need to re-save all jira connections to encode w/new password
        for jc in self._jira_connections:
            self._jira_connections[jc].save_config()
        print('Saved {} Jira Connections'.format(len(self._jira_connections)))
        if len(self.jira_views) > 0:
            config_parser.set('JiraManager', 'Views',
                              ','.join(list(self.jira_views.keys())))
            for vn in list(self.jira_views.keys()):
                self.jira_views[vn].save_config()
            print('Saved {} Jira Views'.format(len(self.jira_views)))
        if len(self.jira_dashboards) > 0:
            config_parser.add_section('Dashboards')
            for dash in self.jira_dashboards:
                self.jira_dashboards[dash].save_config(config_parser)

        save_argus_config(config_parser, jira_conf_file)