class Resources:
    def __init__(self, access_token, from_email):
        self.schedules = None
        self.teams = None
        self.session = APISession(access_token, default_from=from_email)

    def get_schedules(self):
        if self.schedules is None:
            log.info("Retrieving all schedules on the account. This could take several minutes.")
            print("Retrieving all schedules on the account. This could take several minutes.")
            self.schedules = self.session.list_all('schedules')

            log.info("Retrieving a list of users for each schedule. This could take several minutes.")
            for schedule in self.schedules:
                schedule['details'] = self.session.rget(schedule.get('self'))

        return self.schedules

    def get_teams(self):
        if self.teams is None:
            log.info("Retrieving all teams on the account. This could take several minutes.")
            print("Retrieving all teams on the account. This could take several minutes.")
            self.teams = self.session.list_all('teams')

            log.info("Retrieving a list of users for each team. This could take several minutes.")
            for team in self.teams:
                team['users'] = self.session.list_all('users', params={'team_ids[]': team.get('id')})

        return self.teams
示例#2
0
def save_incident_to_csv():
    # Initialize Session connection with pagerduty
    session = APISession(api_token)
    # Fetch Incidents list
    incidents = session.list_all('incidents')
    # Generate Column titles
    columns = [
        'incident_number', 'id', 'title', 'description', 'created_at',
        'last_status_change_at', 'status', 'incident_key', 'summary',
        'is_mergeable', 'assigned_via', 'urgency', 'type', 'html_url'
    ]
    # Save to file
    with open('incidents.csv', 'w+') as file:
        file.write(F"{','.join(columns)}\n")
        # Format data and write to file.
        file.write(''.join([
            F"{','.join([str(incident.get(column, '')) for column in columns])}\n"
            for incident in incidents
        ]))
        # Return the saved file name
        return 'incidents.csv'