28
from azurelinuxagent.metadata import AGENT_NAME, AGENT_LONG_VERSION, \
28
import azurelinuxagent.common.logger as logger
29
import azurelinuxagent.common.event as event
30
import azurelinuxagent.common.conf as conf
31
from azurelinuxagent.common.version import AGENT_NAME, AGENT_LONG_VERSION, \
29
32
DISTRO_NAME, DISTRO_VERSION, \
30
33
PY_VERSION_MAJOR, PY_VERSION_MINOR, \
33
from azurelinuxagent.distro.loader import get_distro
35
from azurelinuxagent.common.osutil import get_osutil
35
37
class Agent(object):
36
38
def __init__(self, verbose):
38
40
Initialize agent running environment.
40
self.distro = get_distro();
41
self.distro.init_handler.run(verbose)
42
self.osutil = get_osutil()
44
level = logger.LogLevel.VERBOSE if verbose else logger.LogLevel.INFO
45
logger.add_logger_appender(logger.AppenderType.STDOUT, level)
48
conf_file_path = self.osutil.get_agent_conf_file_path()
49
conf.load_conf_from_file(conf_file_path)
52
verbose = verbose or conf.get_logs_verbose()
53
level = logger.LogLevel.VERBOSE if verbose else logger.LogLevel.INFO
54
logger.add_logger_appender(logger.AppenderType.FILE, level,
55
path="/var/log/waagent.log")
56
logger.add_logger_appender(logger.AppenderType.CONSOLE, level,
60
event_dir = os.path.join(conf.get_lib_dir(), "events")
61
event.init_event_logger(event_dir)
62
event.enable_unhandled_err_dump("WALA")
47
self.distro.daemon_handler.run()
68
from azurelinuxagent.daemon import get_daemon_handler
69
daemon_handler = get_daemon_handler()
76
from azurelinuxagent.pa.provision import get_provision_handler
77
provision_handler = get_provision_handler()
78
provision_handler.run()
49
80
def deprovision(self, force=False, deluser=False):
51
82
Run deprovision command
53
self.distro.deprovision_handler.run(force=force, deluser=deluser)
84
from azurelinuxagent.pa.deprovision import get_deprovision_handler
85
deprovision_handler = get_deprovision_handler()
86
deprovision_handler.run(force=force, deluser=deluser)
55
88
def register_service(self):
57
90
Register agent as a service
59
92
print("Register {0} service".format(AGENT_NAME))
60
self.distro.osutil.register_agent_service()
93
self.osutil.register_agent_service()
61
94
print("Start {0} service".format(AGENT_NAME))
62
self.distro.osutil.start_agent_service()
95
self.osutil.start_agent_service()
97
def run_exthandlers(self):
99
Run the update and extension handler
101
from azurelinuxagent.ga.update import get_update_handler
102
update_handler = get_update_handler()
66
107
Parse command line arguments, exit with usage() on error.
67
108
Invoke different methods according to different command
69
command, force, verbose = parse_args(sys.argv[1:])
112
command, force, verbose = parse_args(args)
70
113
if command == "version":
72
115
elif command == "help":
74
117
elif command == "start":
77
agent = Agent(verbose)
78
if command == "deprovision+user":
79
agent.deprovision(force, deluser=True)
80
elif command == "deprovision":
81
agent.deprovision(force, deluser=False)
82
elif command == "register-service":
83
agent.register_service()
84
elif command == "daemon":
121
agent = Agent(verbose)
122
if command == "deprovision+user":
123
agent.deprovision(force, deluser=True)
124
elif command == "deprovision":
125
agent.deprovision(force, deluser=False)
126
elif command == "provision":
128
elif command == "register-service":
129
agent.register_service()
130
elif command == "daemon":
132
elif command == "run-exthandlers":
133
agent.run_exthandlers()
134
except Exception as e:
135
logger.error(u"Failed to run '{0}': {1}", command, e)
87
137
def parse_args(sys_args):