Karaage Architecture

This document describes the basic Karaage architecture.

Karaage core

The core Karaage defines the following db models in the karaage.models module.

class karaage.models.LogEntry

Represents a log entry for any action or comment left on an object.

class karaage.models.Institute

Represents an institute for a person.

class karaage.models.InstituteDelegate

Represents an institute delegate for an institute with extra attributes.

class karaage.models.Machine

Represents an individual machine or cluster in a machine category.

class karaage.models.Account

Represents an account for a particular person on a particular machine category.

class karaage.models.Person

Represents a person who may have one or more accounts. A person is global across all machine categories.

class karaage.models.Group

Represents a group of people. A group is global accross all machine categories.

class karaage.models.Project

Represents a project for a set of machine categories. A project is considered global, although is only active on given machine categories.

Karaage Applications plugin

Karaage Applications is a plugin that defines additional functionality used for applications. It defines the following db models in the karaage.plugins.kgapplications.models module.

class karaage.plugins.kgapplications.models.Application

Abstract class that represents any application. Further classes should inherit from this class.

class karaage.plugins.kgapplications.models.ProjectApplication

Class that is derived from Application for project applications.

class karaage.plugins.kgapplications.models.Applicant

An applicant for an application who doesn’t already have a karaage.models.Person entry.

Karaage Software plugin

Karaage Software is a plugin that defines additional functionality used for tracking software. It defines the following db models in the karaage.plugins.kgsoftware.models module.

class karaage.plugins.kgsoftware.models.Software

Represents a particular software package.

class karaage.plugins.kgsoftware.models.SoftwareCategory

Represents a category of software, for easy searching.

class karaage.plugins.kgsoftware.models.SoftwareVersion

Repesents a specific version of a software package.

class karaage.plugins.kgsoftware.models.SoftwareLicense

Represents a license for a software package. A software package may have zero or more licenses. If there are none, the user’ won’t be able to add the software. There there are more then one, the latest is used by default.

class karaage.plugins.kgsoftware.models.SoftwareLicenseAgreement

Represents the fact a person agreed to a particular SoftwareLicense at a particular point in time.

class karaage.plugins.kgsoftware.models.SoftwareApplication

Class that is derived from karaage.plugins.kgapplications.models.Application for applications to access restricted software.

Karaage Usage plugin

Karaage Usage is a plugin that defines additional functionality used for tracking cluster usage. It may get rewritten in the future, and you should not rely on anything remaining the same.