summaryrefslogtreecommitdiff
path: root/azurelinuxagent/daemon
diff options
context:
space:
mode:
authorƁukasz 'sil2100' Zemczak <lukasz.zemczak@ubuntu.com>2017-05-18 19:58:02 +0200
committerusd-importer <ubuntu-server@lists.ubuntu.com>2017-05-31 09:53:12 +0000
commit4fb0b5a09b26135ade285844da5d7dfe582a8d4c (patch)
tree09b1e5867d6e7501118cdd0af0012b51fc216530 /azurelinuxagent/daemon
parent473ad6fbfe0b9c3b362b530492928303f2b4c7f3 (diff)
downloadvyos-walinuxagent-4fb0b5a09b26135ade285844da5d7dfe582a8d4c.tar.gz
vyos-walinuxagent-4fb0b5a09b26135ade285844da5d7dfe582a8d4c.zip
Import patches-unapplied version 2.2.12-0ubuntu1 to ubuntu/artful-proposed
Imported using git-ubuntu import. Changelog parent: 473ad6fbfe0b9c3b362b530492928303f2b4c7f3 New changelog entries: * New upstream release (LP: #1690854). - Refreshed debian/patches/disable_import_test.patch.
Diffstat (limited to 'azurelinuxagent/daemon')
-rw-r--r--azurelinuxagent/daemon/main.py33
-rw-r--r--azurelinuxagent/daemon/resourcedisk/default.py5
2 files changed, 30 insertions, 8 deletions
diff --git a/azurelinuxagent/daemon/main.py b/azurelinuxagent/daemon/main.py
index b0da02a..5b8db2f 100644
--- a/azurelinuxagent/daemon/main.py
+++ b/azurelinuxagent/daemon/main.py
@@ -25,12 +25,15 @@ import traceback
import azurelinuxagent.common.conf as conf
import azurelinuxagent.common.logger as logger
import azurelinuxagent.common.utils.fileutil as fileutil
+
from azurelinuxagent.common.event import add_event, WALAEventOperation
from azurelinuxagent.common.future import ustr
from azurelinuxagent.common.osutil import get_osutil
from azurelinuxagent.common.protocol import get_protocol_util
+from azurelinuxagent.common.protocol.wire import WireClient
from azurelinuxagent.common.rdma import setup_rdma_device
-from azurelinuxagent.common.version import AGENT_LONG_NAME, AGENT_VERSION, \
+from azurelinuxagent.common.version import AGENT_NAME, AGENT_LONG_NAME, \
+ AGENT_VERSION, \
DISTRO_NAME, DISTRO_VERSION, PY_VERSION_MAJOR, PY_VERSION_MINOR, \
PY_VERSION_MICRO
from azurelinuxagent.daemon.resourcedisk import get_resourcedisk_handler
@@ -39,6 +42,8 @@ from azurelinuxagent.ga.update import get_update_handler
from azurelinuxagent.pa.provision import get_provision_handler
from azurelinuxagent.pa.rdma import get_rdma_handler
+OPENSSL_FIPS_ENVIRONMENT = "OPENSSL_FIPS"
+
def get_daemon_handler():
return DaemonHandler()
@@ -53,7 +58,7 @@ class DaemonHandler(object):
self.running = True
self.osutil = get_osutil()
- def run(self):
+ def run(self, child_args=None):
logger.info("{0} Version:{1}", AGENT_LONG_NAME, AGENT_VERSION)
logger.info("OS: {0} {1}", DISTRO_NAME, DISTRO_VERSION)
logger.info("Python: {0}.{1}.{2}", PY_VERSION_MAJOR, PY_VERSION_MINOR,
@@ -61,12 +66,18 @@ class DaemonHandler(object):
self.check_pid()
+ # If FIPS is enabled, set the OpenSSL environment variable
+ # Note:
+ # -- Subprocesses inherit the current environment
+ if conf.get_fips_enabled():
+ os.environ[OPENSSL_FIPS_ENVIRONMENT] = '1'
+
while self.running:
try:
- self.daemon()
+ self.daemon(child_args)
except Exception as e:
err_msg = traceback.format_exc()
- add_event("WALA", is_success=False, message=ustr(err_msg),
+ add_event(name=AGENT_NAME, is_success=False, message=ustr(err_msg),
op=WALAEventOperation.UnhandledError)
logger.info("Sleep 15 seconds and restart daemon")
time.sleep(15)
@@ -84,7 +95,7 @@ class DaemonHandler(object):
fileutil.write_file(pid_file, ustr(os.getpid()))
- def daemon(self):
+ def daemon(self, child_args=None):
logger.info("Run daemon")
self.protocol_util = get_protocol_util()
@@ -117,6 +128,16 @@ class DaemonHandler(object):
logger.info("RDMA capabilities are enabled in configuration")
try:
+ # Ensure the most recent SharedConfig is available
+ # - Changes to RDMA state may not increment the goal state
+ # incarnation number. A forced update ensures the most
+ # current values.
+ protocol = self.protocol_util.get_protocol()
+ client = protocol.client
+ if client is None or type(client) is not WireClient:
+ raise Exception("Attempt to setup RDMA without Wireserver")
+ client.update_goal_state(forced=True)
+
setup_rdma_device()
except Exception as e:
logger.error("Error setting up rdma device: %s" % e)
@@ -124,4 +145,4 @@ class DaemonHandler(object):
logger.info("RDMA capabilities are not enabled, skipping")
while self.running:
- self.update_handler.run_latest()
+ self.update_handler.run_latest(child_args=child_args)
diff --git a/azurelinuxagent/daemon/resourcedisk/default.py b/azurelinuxagent/daemon/resourcedisk/default.py
index 2b116fb..dadd49c 100644
--- a/azurelinuxagent/daemon/resourcedisk/default.py
+++ b/azurelinuxagent/daemon/resourcedisk/default.py
@@ -29,6 +29,7 @@ import azurelinuxagent.common.utils.fileutil as fileutil
import azurelinuxagent.common.utils.shellutil as shellutil
from azurelinuxagent.common.exception import ResourceDiskError
from azurelinuxagent.common.osutil import get_osutil
+from azurelinuxagent.common.version import AGENT_NAME
DATALOSS_WARNING_FILE_NAME = "DATALOSS_WARNING_README.txt"
DATA_LOSS_WARNING = """\
@@ -74,7 +75,7 @@ class ResourceDiskHandler(object):
return mount_point
except ResourceDiskError as e:
logger.error("Failed to mount resource disk {0}", e)
- add_event(name="WALA", is_success=False, message=ustr(e),
+ add_event(name=AGENT_NAME, is_success=False, message=ustr(e),
op=WALAEventOperation.ActivateResourceDisk)
def enable_swap(self, mount_point):
@@ -123,7 +124,7 @@ class ResourceDiskHandler(object):
force_option = 'F'
if self.fs == 'xfs':
force_option = 'f'
- mkfs_string = "mkfs.{0} {1} -{2}".format(self.fs, partition, force_option)
+ mkfs_string = "mkfs.{0} -{2} {1}".format(self.fs, partition, force_option)
if "gpt" in ret[1]:
logger.info("GPT detected, finding partitions")