Commit ec3146d1 authored by Marco Mariani's avatar Marco Mariani

cli refactoring: node bang

parent e533396a
......@@ -73,7 +73,8 @@ setup(name=name,
'slap2 = slapos.cli.entry:main',
],
'slapos.cli': [
'cache lookup = slapos.cli.cache:CacheLookup',
'cache lookup = slapos.cli.cache:CacheLookupCommand',
'node bang = slapos.cli.bang:BangCommand',
]
},
test_suite="slapos.tests",
......
# -*- coding: utf-8 -*-
# vim: set et sts=2:
##############################################################################
#
# Copyright (c) 2011, 2012 Vifib SARL and Contributors.
......@@ -31,11 +32,31 @@ import slapos.slap.slap
import argparse
import ConfigParser
def do_bang(config, message):
computer_id = config.get('slapos', 'computer_id')
master_url = config.get('slapos', 'master_url')
if config.has_option('slapos', 'key_file'):
key_file = config.get('slapos', 'key_file')
else:
key_file = None
if config.has_option('slapos', 'cert_file'):
cert_file = config.get('slapos', 'cert_file')
else:
cert_file = None
slap = slapos.slap.slap()
slap.initializeConnection(master_url, key_file=key_file, cert_file=cert_file)
computer = slap.registerComputer(computer_id)
print 'Banging to %r' % master_url
computer.bang(message)
print 'Bang with message %r' % message
def main(*args):
parser = argparse.ArgumentParser()
parser.add_argument("-m", "--message", default='', help="Message for bang.")
parser.add_argument("configuration_file", nargs=1, type=argparse.FileType(),
help="SlapOS configuration file.")
help="SlapOS configuration file.")
if len(args) == 0:
argument = parser.parse_args()
else:
......@@ -43,21 +64,6 @@ def main(*args):
configuration_file = argument.configuration_file[0]
message = argument.message
# Loads config (if config specified)
configuration = ConfigParser.SafeConfigParser()
configuration.readfp(configuration_file)
computer_id = configuration.get('slapos', 'computer_id')
master_url = configuration.get('slapos', 'master_url')
if configuration.has_option('slapos', 'key_file'):
key_file = configuration.get('slapos', 'key_file')
else:
key_file = None
if configuration.has_option('slapos', 'cert_file'):
cert_file = configuration.get('slapos', 'cert_file')
else:
cert_file = None
slap = slapos.slap.slap()
slap.initializeConnection(master_url, key_file=key_file, cert_file=cert_file)
computer = slap.registerComputer(computer_id)
print 'Banging to %r' % master_url
computer.bang(message)
print 'Bang with message %r' % message
config = ConfigParser.SafeConfigParser()
config.readfp(configuration_file)
do_bang(config, message)
# -*- coding: utf-8 -*-
import logging
from slapos.cli.config import ConfigCommand
from slapos.bang import do_bang
class BangCommand(ConfigCommand):
log = logging.getLogger(__name__)
def get_parser(self, prog_name):
parser = super(BangCommand, self).get_parser(prog_name)
parser.add_argument('-m', '--message',
help='Message for bang')
return parser
def take_action(self, args):
config = self.fetch_config(args)
do_bang(config, args.message)
......@@ -6,15 +6,15 @@ from slapos.cli.config import ConfigCommand
from slapos.cache import do_lookup
class CacheLookup(ConfigCommand):
class CacheLookupCommand(ConfigCommand):
log = logging.getLogger(__name__)
def get_parser(self, prog_name):
parser = super(CacheLookup, self).get_parser(prog_name)
parser = super(CacheLookupCommand, self).get_parser(prog_name)
# XXX this argument could use a better name
parser.add_argument("software_url",
help="Your software url or MD5 hash")
parser.add_argument('software_url',
help='Your software url or MD5 hash')
return parser
def take_action(self, args):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment