Example #1
0
def info(args):
    parser = OptionParser(usage='usage: %prog <name, ip, or mac>')
    options, args = parser.parse_args(args)

    if not args:
        parser.print_help()
        return -1

    obj = clusto.get(args[0])
    if not obj:
        log.error('No entity named %s' % args[0])
        return -1

    obj = obj[0]

    def format_line(key, value, pad=20):
        if isinstance(value, list):
            value = ', '.join(value)
            key += ':'
        print key.ljust(pad, ' '), value

    print 'Name:'.ljust(20, ' '), obj.name
    print 'Type:'.ljust(20, ' '), obj.type

    ip = obj.attr_values(key='ip', subkey='ipstring')
    if ip:
        format_line('IP', ip)
    parents = obj.parents()
    if parents:
        format_line('Parents', [x.name for x in parents])
    contents = obj.contents()
    if contents:
        format_line('Contents', [x.name for x in contents])

    print '\n',

    serial = obj.attr_values(key='system', subkey='serial')
    if serial:
        format_line('Serial', [x.rstrip('\r\n') for x in serial if x])
    memory = obj.attr_value(key='system', subkey='memory')
    if memory:
        format_line('Memory', '%i GB' % (memory / 1000))
    disk = obj.attr_value(key='system', subkey='disk')
    if disk:
        format_line(
            'Disk',
            '%i GB (%i)' % (disk, len(obj.attrs(key='disk', subkey='size'))))
    cpucount = obj.attr_value(key='system', subkey='cpucount')
    if cpucount:
        format_line('CPU Cores', cpucount)
    desc = obj.attr_values(key='description')
    if desc:
        format_line('Description', '\n                    '.join(desc))

    ifaces = [('nic-eth(%i)' % x.number).ljust(20, ' ') + ' %s = %s' %
              (x.subkey, x.value) for x in obj.attrs(key='port-nic-eth')
              if x.subkey.find('mac') != -1]
    if ifaces:
        print '\n', '\n'.join(ifaces)
Example #2
0
def attr(args):
    parser = OptionParser(
        usage='%prog (add|set|delete|show) [options] <object>')
    parser.add_option('-k', '--key', dest='key', default=None)
    parser.add_option('-s', '--subkey', dest='subkey', default=None)
    parser.add_option('-v', '--value', dest='value', default=None)
    parser.add_option('-n', '--number', dest='number', default=None)
    parser.add_option(
        '-m',
        '--merge',
        dest='merge_container_attrs',
        action='store_true',
        help='Merge attributes from this object\'s parent objects')
    parser.add_option(
        '-c',
        '--csv',
        dest='csv',
        action='store_true',
        help=
        'Output from the show action will be comma-delimited, rather than pretty'
    )
    options, args = parser.parse_args(args)

    if len(args) < 2:
        parser.print_help()
        return -1

    action, obj = args[:2]

    try:
        obj = clusto.get(obj)
    except LookupError:
        sys.stderr.write('%s does not exist\n' % object)
        return -1
    obj = obj[0]

    actions = {
        'add': obj.addattr,
        'set': obj.setattr,
        'delete': obj.delattr,
        'del': obj.delattr,
        'show': AttrQuery(obj),
    }

    func = actions.get(action.lower(), None)
    if not func:
        sys.stderr.write('Unknown action: %s\n' % action)
        return -1

    if options.number:
        options.number = int(options.number)

    if isinstance(options.value, str) and options.value.isdigit():
        options.value = int(options.value)

    opts = dict([(k, v) for k, v in options.__dict__.items() if v != None])
    func(**opts)
Example #3
0
def info(args):
    parser = OptionParser(usage='usage: %prog <name, ip, or mac>')
    options, args = parser.parse_args(args)

    if not args:
        parser.print_help()
        return -1

    obj = clusto.get(args[0])
    if not obj:
        log.error('No entity named %s' % args[0])
        return -1

    obj = obj[0]

    def format_line(key, value, pad=20):
        if isinstance(value, list):
            value = ', '.join(value)
            key += ':'
        print key.ljust(pad, ' '), value

    print 'Name:'.ljust(20, ' '), obj.name
    print 'Type:'.ljust(20, ' '), obj.type

    ip = obj.attr_values(key='ip', subkey='ipstring')
    if ip:
        format_line('IP', ip)
    parents = obj.parents()
    if parents:
        format_line('Parents', [x.name for x in parents])
    contents = obj.contents()
    if contents:
        format_line('Contents', [x.name for x in contents])

    print '\n',

    serial = obj.attr_values(key='system', subkey='serial')
    if serial:
        format_line('Serial', [x.rstrip('\r\n') for x in serial if x])
    memory = obj.attr_value(key='system', subkey='memory')
    if memory:
        format_line('Memory', '%i GB' % (memory / 1000))
    disk = obj.attr_value(key='system', subkey='disk')
    if disk:
        format_line('Disk', '%i GB (%i)' % (disk, len(obj.attrs(key='disk', subkey='size'))))
    cpucount = obj.attr_value(key='system', subkey='cpucount')
    if cpucount:
        format_line('CPU Cores', cpucount)
    desc = obj.attr_values(key='description')
    if desc:
        format_line('Description', '\n                    '.join(desc))

    ifaces = [('nic-eth(%i)' % x.number).ljust(20, ' ') + ' %s = %s' % (x.subkey, x.value) for x in obj.attrs(key='port-nic-eth') 
if x.subkey.find('mac') != -1]
    if ifaces:
        print '\n', '\n'.join(ifaces)
Example #4
0
def attr(args):
    parser = OptionParser(usage='%prog (add|set|delete|show) [options] <object>')
    parser.add_option('-k', '--key', dest='key', default=None)
    parser.add_option('-s', '--subkey', dest='subkey', default=None)
    parser.add_option('-v', '--value', dest='value', default=None)
    parser.add_option('-n', '--number', dest='number', default=None)
    parser.add_option('-m', '--merge', dest='merge_container_attrs', action='store_true', help='Merge attributes from this object\'s parent objects')
    parser.add_option('-c', '--csv', dest='csv', action='store_true', help='Output from the show action will be comma-delimited, rather than pretty')
    options, args = parser.parse_args(args)

    if len(args) < 2:
        parser.print_help()
        return -1

    action, obj = args[:2]

    try:
        obj = clusto.get(obj)
    except LookupError:
        sys.stderr.write('%s does not exist\n' % object)
        return -1
    obj = obj[0]

    actions = {
        'add':  obj.addattr,
        'set':  obj.setattr,
        'delete': obj.delattr,
        'del': obj.delattr,
        'show': AttrQuery(obj),
    }

    func = actions.get(action.lower(), None)
    if not func:
        sys.stderr.write('Unknown action: %s\n' % action)
        return -1

    if options.number:
        options.number = int(options.number)

    if isinstance(options.value, str) and options.value.isdigit():
        options.value = int(options.value)

    opts = dict([(k, v) for k, v in options.__dict__.items() if v != None])
    func(**opts)