config/sysinv/sysinv/sysinv/sysinv/cmd/puppet.py

78 lines
2.0 KiB
Python

#!/usr/bin/env python
#
# Copyright (c) 2017 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
"""
System Inventory Puppet Utility.
"""
import sys
from oslo_config import cfg
from sysinv.common import service
from sysinv.db import api
from sysinv.puppet import puppet
CONF = cfg.CONF
def create_static_config_action(path):
operator = puppet.PuppetOperator(path=path)
operator.create_static_config()
operator.create_secure_config()
def create_system_config_action(path):
dbapi = api.get_instance()
operator = puppet.PuppetOperator(dbapi=dbapi, path=path)
operator.update_system_config()
operator.update_secure_system_config()
def create_host_config_action(path, hostname=None):
dbapi = api.get_instance()
operator = puppet.PuppetOperator(dbapi=dbapi, path=path)
if hostname:
host = dbapi.ihost_get_by_hostname(hostname)
operator.update_host_config(host)
else:
hosts = dbapi.ihost_get_list()
for host in hosts:
operator.update_host_config(host)
def add_action_parsers(subparsers):
parser = subparsers.add_parser('create-static-config')
parser.set_defaults(func=create_static_config_action)
parser.add_argument('path', nargs='?')
parser = subparsers.add_parser('create-system-config')
parser.set_defaults(func=create_system_config_action)
parser.add_argument('path', nargs='?')
parser = subparsers.add_parser('create-host-config')
parser.set_defaults(func=create_host_config_action)
parser.add_argument('path', nargs='?')
parser.add_argument('hostname', nargs='?')
CONF.register_cli_opt(
cfg.SubCommandOpt('action',
title='actions',
help='Perform the puppet operation',
handler=add_action_parsers))
def main():
service.prepare_service(sys.argv)
if CONF.action.name == 'create-host-config':
CONF.action.func(CONF.action.path, CONF.action.hostname)
else:
CONF.action.func(CONF.action.path)