in ambari-server/src/main/python/ambari-server.py [0:0]
def main():
parser = optparse.OptionParser(usage="usage: %prog [options] action [stack_id]",)
parser.add_option('-f', '--init-script-file',
default='/var/lib/ambari-server/'
'resources/Ambari-DDL-Postgres-CREATE.sql',
help="File with setup script")
parser.add_option('-r', '--drop-script-file', default="/var/lib/"
"ambari-server/resources/"
"Ambari-DDL-Postgres-DROP.sql",
help="File with drop script")
parser.add_option('-u', '--upgrade-script-file', default="/var/lib/"
"ambari-server/resources/upgrade/ddl/"
"Ambari-DDL-Postgres-UPGRADE-1.3.0.sql",
help="File with upgrade script")
parser.add_option('-t', '--upgrade-stack-script-file', default="/var/lib/"
"ambari-server/resources/upgrade/dml/"
"Ambari-DML-Postgres-UPGRADE_STACK.sql",
help="File with stack upgrade script")
parser.add_option('-j', '--java-home', default=None,
help="Use specified java_home. Must be valid on all hosts")
parser.add_option('-i', '--jdk-location', dest="jdk_location", default=None,
help="Use specified JDK file in local filesystem instead of downloading")
#parser.add_option('-c', '--jce-policy', default=None,
# help="Use specified jce_policy. Must be valid on all hosts", dest="jce_policy")
parser.add_option("-v", "--verbose",
action="store_true", dest="verbose", default=False,
help="Print verbose status messages")
parser.add_option("-s", "--silent",
action="store_true", dest="silent", default=False,
help="Silently accepts default prompt values")
parser.add_option('-g', '--debug', action="store_true", dest='debug', default=False,
help="Start ambari-server in debug mode")
parser.add_option('--database', default=None, help ="Database to use postgres|oracle", dest="database")
parser.add_option('--databasehost', default=None, help="Hostname of database server", dest="database_host")
parser.add_option('--databaseport', default=None, help="Database port", dest="database_port")
parser.add_option('--databasename', default=None, help="Database/Schema/Service name or ServiceID",
dest="database_name")
parser.add_option('--databaseusername', default=None, help="Database user login", dest="database_username")
parser.add_option('--databasepassword', default=None, help="Database user password", dest="database_password")
parser.add_option('--sidorsname', default="sname", help="Oracle database identifier type, Service ID/Service "
"Name sid|sname", dest="sid_or_sname")
(options, args) = parser.parse_args()
# set verbose
global VERBOSE
VERBOSE = options.verbose
# set silent
global SILENT
SILENT = options.silent
# debug mode
global SERVER_DEBUG_MODE
SERVER_DEBUG_MODE = options.debug
global DATABASE_INDEX
global PROMPT_DATABASE_OPTIONS
#perform checks
options.warnings = []
if options.database is None \
and options.database_host is None \
and options.database_port is None \
and options.database_name is None \
and options.database_username is None \
and options.database_password is None:
PROMPT_DATABASE_OPTIONS = True
elif not (options.database is not None
and options.database_host is not None
and options.database_port is not None
and options.database_name is not None
and options.database_username is not None
and options.database_password is not None):
parser.error('All database options should be set. Please see help for the options.')
#correct database
if options.database is not None and options.database not in DATABASE_NAMES:
parser.print_help()
parser.error("Unsupported Database " + options.database)
elif options.database is not None:
options.database = options.database.lower()
DATABASE_INDEX = DATABASE_NAMES.index(options.database)
#correct port
if options.database_port is not None:
correct=False
try:
port = int(options.database_port)
if 65536 > port > 0:
correct = True
except ValueError:
pass
if not correct:
parser.print_help()
parser.error("Incorrect database port " + options.database_port)
if options.database is not None and options.database == "postgres":
print "WARNING: HostName for postgres server " + options.database_host + \
" will be ignored: using localhost."
options.database_host = "localhost"
if options.sid_or_sname.lower() not in ["sid", "sname"]:
print "WARNING: Valid values for sid_or_sname are 'sid' or 'sname'. Use 'sid' if the db identifier type is " \
"Service ID. Use 'sname' if the db identifier type is Service Name"
parser.print_help()
exit(-1)
else:
options.sid_or_sname = options.sid_or_sname.lower()
if len(args) == 0:
print parser.print_help()
parser.error("No action entered")
action = args[0]
if action == UPGRADE_STACK_ACTION:
args_number_required = 2
else:
args_number_required = 1
if len(args) < args_number_required:
print parser.print_help()
parser.error("Invalid number of arguments. Entered: " + str(len(args)) + ", required: " + str(args_number_required))
options.exit_message = "Ambari Server '%s' completed successfully." % action
need_restart = True
try:
if action == SETUP_ACTION:
setup(options)
elif action == START_ACTION:
start(options)
elif action == STOP_ACTION:
stop(options)
elif action == RESET_ACTION:
reset(options)
elif action == STATUS_ACTION:
status(options)
elif action == UPGRADE_ACTION:
upgrade(options)
elif action == UPGRADE_STACK_ACTION:
stack_id = args[1]
upgrade_stack(options, stack_id)
elif action == LDAP_SETUP_ACTION:
setup_ldap()
elif action == UPDATE_METAINFO_ACTION:
update_metainfo(options)
elif action == SETUP_SECURITY_ACTION:
need_restart = setup_security(options)
else:
parser.error("Invalid action")
if action in ACTION_REQUIRE_RESTART and need_restart:
pstatus, pid = is_server_runing()
if pstatus:
print 'NOTE: Restart Ambari Server to apply changes'+ \
' ("ambari-server restart|stop|start")'
except FatalException as e:
if e.reason is not None:
print_error_msg("Exiting with exit code {0}. Reason: {1}".format(e.code, e.reason))
sys.exit(e.code)
except NonFatalException as e:
options.exit_message = "Ambari Server '%s' completed with warnings." % action
if e.reason is not None:
print_warning_msg(e.reason)
if options.exit_message is not None:
print options.exit_message