Pages

Showing posts with label Bogeymin. Show all posts
Showing posts with label Bogeymin. Show all posts

Monday, January 4, 2010

Bogeymin Again

Wow, it's been a long time since I gave an update on this project -- because it's been a long time since I've actually worked on it. Yes, everything I didn't want to happen with this project happened and it got pushed to the side. However, in an attempt to redeem myself, I have rescheduled the remaining work for January.

Sign up to be notified when it's ready at bogeymin.com

Monday, November 2, 2009

Update: Bogeymin is Ready for Testing

Although there are a few plugins left to create, I'll be starting the test phase of Bogeymin this week. I am also lining up beta testers for some initial installs of the software. This is a private test and the participants have already been lined up. But if you'd like to know when the product is ready for release, sign up here.

Thursday, October 22, 2009

Bogeymin is Almost Alpha

Almost. After my previous exercise in optimism, a number of other projects took precedence over Bogeymin. Even so, I spent last Saturday with blinders on and managed to finish all of the core commands.

I'm hoping to start testing this weekend as well as working on some of the built-in plugins. Speaking of which, the plugins system I've devised is pretty neat -- if I say so myself.

  • It allows the registration of arbitrary callbacks both before and after the command runs. So for example, when installhost is issued, various plugins can express their interest in responding to this activity and execute using the same command line switches that were given to installhost.
  • Plugins may be built in (written here) or user defined (written there). As noted, they have access to the original command line arguments. They can also use Bogeymin's built-in logging, user, and exit tools.
  • Plugins can be disabled or enabled in the main configuration file.

The __init__.py file looks something like this:

# Dependencies.
import os
from bogeymin import bogeymin

# Define the commands we want to which we wish to respond.
_implements = [ 
    'installhost',
    'movehost',
    'renamehost',
    'uninstallhost',
]

# All plugins must define an implements function.
def implements(command):
    """Determine whether the plugin implements the given command. Returns 
    True if implemented, False if not.
    """
    if command in _implements: return True
    return False

# Run after the main command has finished.
def post(Command):
    """Run the plugin *after* execution of the command.

    Command - The command object from Bogeymin.

    Returns an exit code.
    """
    domain_name = Command.getOption('d')

    ServerCfg = bogeymin.ServerConfiguration()
    if not ServerCfg.has('virtual_host','path_shared_ssl'):
        return 1
    path = '%s/%s' %(path_shared_ssl,Command.domain_name)

    if not os.path.exists(path):
        return 1

    if 'installhost' == command:
        return os.system('installsharedssl -d %s' %domain_name)
    elif 'movehost' == command:
        os.system('uninstallsharedssl -d %s' %domain_name)
        return os.system('installsharedssl -d %s' %domain_name)
    elif 'renamehost' == command:
        os.system('uninstallsharedssl -d %s' %domain_name)
        new_domain_name = options[options.index('-n') + 1]
        return os.system('installsharedssl -d %s' %new_domain_name)
    elif 'uninstallhost' == command:
        return os.system('uninstallsharedssl -d %s' %domain_name)

Tuesday, October 6, 2009

Bogeymin Nearing Completion

They say that programmers are optimists, so when I say "nearing completion", it probably means it's about 51% -- hey, that's nearer to completion than to just starting.

I'd like to say I'm wrapping it up on Bogeymin, but I'm not. I am, however, able to see the end of the project from here. Coding in python is enjoyable and speedy and I expect to finish up the website management commands this week.

As a guy that deals daily with the problems that Bogeymin solves, I am very excited about the progress and have already started using the new tools.

There are lots of cool features. Below is a screenshot of the self-documentation tools in action:

Bogeymin Self Documentation

Friday, August 28, 2009

Bogeymin

I'm proud to announce the commencement of a new project called "Bogeymin" -- a command suite tool for managing Web servers and related services such as DNS and email.

Features include:

  • Linux-based.
  • Total control from the command line and complex automation for consistent maintenance and administration.
  • Utilizes existing security technologies to safely permit access to level 1 support, level 2 technicians, and full administrators.
  • Unique website organization system.

The project is scheduled for completion in October. Visit the official site to for the latest info and sign up to be notified when it's released.