Toolkit Initialization Factoring for 2.1.3

Version: 1.1
Author: Ivan R. Judson <judson@mcs.anl.gov>
Status: Draft

Abstract

This AGEP describes a proposed factoring of the initialization code for the AGTk. The goal is to unify and clarify the process of initialization for anything that is developed using the AGTk.

Overview

In order to unify and clarify the initialization process there are a few activities that need to be done by every piece of Access Grid related software. These activities are enumerated, described, and a factoring is presented that encapsulates them into a well defined set of interfaces.

The basic activities that are done during initialization are:

  1. Command Line Parsing
  2. Logging/Debugging Setup
  3. Security Environment Verification
  • Globus Initialization
  1. Toolkit Environment Verification
  • Bring Linux Initialization up to par with Windows
  1. Configuration Processing
  • Looking for system wide configs and either referencing or copying them

The types of things that can be built using the AGTk (and thus it's initialization functionality) includes:

Class Type Run As
Venue Clients Application User Id
Shared Application Clients Application User Id
Node Services Service Service Id / User Id
Service Managers Service Service Id / User Id
Services Service Service Id / User Id
Venue Server Service Service Id / User Id
Network Services Service Service Id / User Id
Application Services Service Service Id / User Id

Summary of Modifications

  1. Create a Toolkit.CommandLine class with a Parse(self, argc, argv) method.
  2. Create a Toolkit.Service class for services to use to initialize
  3. Modify the Toolkit.Application class to be used only for applications to initialize
  4. Unify the logging initialization
  5. Unify the logging level and debug level
  6. Bring the Linux initialization up to par with the windows initialization
    • LinuxInitUserEnv
    • LinuxRegisterMimeType
  7. Define the search paths for installed packages and installed applications
  8. Create a set of interfaces for Toolkit wide configurations, like:
    • Turning debugging on and off
    • Setting the log level

Proposed Standard Command Line Arguments

  1. -h|--help -- Help and/or usage
  2. -d|--debug <level> -- Set the debug level
  3. -l|--log <location> -- Tell the program where the log should go, the default is <program|service>.log.
  4. -v|--verbose <level> -- Specify the program to run and print out information the level may be specified.
  5. -c|--config <configuration> -- Specify a configuration for this program to use.
  6. -p|--profile <profile file> -- Specify the profile to use
  7. --x509cert <certificate.pem> -- Specify the certificate to use
  8. --x509key <keyfile.pem> -- Specify the key to use

Module Organization

  • Toolkit.py
    • CommandLine
    • Application
    • Service
  • Platform
    • Linux.py

Specifications

During initialization the following is done:

  1. Check for

Security Issues

This work should make the toolkit more secure, by enforcing all software built using the AGTk conforms to the security environment created by the AGTk.

Interoperability Issues

This internal refactoring should not affect interoperability.

Implementation

FILL IN IMPLEMENTATION

References

None