summaryrefslogtreecommitdiff
path: root/cloudinit/sources/DataSourceCloudSigma.py
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2014-05-30 14:46:53 -0400
committerScott Moser <smoser@ubuntu.com>2014-05-30 14:46:53 -0400
commit2d36a7ce4a0ccec3bd2881dd99d6d5012a85fe3c (patch)
treef03436881aad39ebd671569f930a9d020f83a151 /cloudinit/sources/DataSourceCloudSigma.py
parent71d817c427f06e9e1f5d547d5db191e541963d31 (diff)
downloadvyos-cloud-init-2d36a7ce4a0ccec3bd2881dd99d6d5012a85fe3c.tar.gz
vyos-cloud-init-2d36a7ce4a0ccec3bd2881dd99d6d5012a85fe3c.zip
minor cleanups.
* do not run dmidecode on arm. * line length * comment that 60 second time out is expected
Diffstat (limited to 'cloudinit/sources/DataSourceCloudSigma.py')
-rw-r--r--cloudinit/sources/DataSourceCloudSigma.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/cloudinit/sources/DataSourceCloudSigma.py b/cloudinit/sources/DataSourceCloudSigma.py
index fffff91e..a8c04d19 100644
--- a/cloudinit/sources/DataSourceCloudSigma.py
+++ b/cloudinit/sources/DataSourceCloudSigma.py
@@ -16,6 +16,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from base64 import b64decode
+import os
import re
from cloudinit import log as logging
@@ -46,16 +47,23 @@ class DataSourceCloudSigma(sources.DataSource):
Uses dmidecode to detect if this instance of cloud-init is running
in the CloudSigma's infrastructure.
"""
+ uname_arch = os.uname()[4]
+ if uname_arch.startswith("arm") or uname_arch == "aarch64":
+ # Disabling because dmidecode in CMD_DMI_SYSTEM crashes kvm process
+ LOG.debug("Disabling CloudSigma datasource on arm (LP: #1243287)")
+ return False
+
dmidecode_path = util.which('dmidecode')
if not dmidecode_path:
return False
LOG.debug("Determining hypervisor product name via dmidecode")
try:
- system_product_name, _ = util.subp([dmidecode_path, "-s", "system-product-name"])
+ cmd = [dmidecode_path, "--string", "system-product-name"]
+ system_product_name, _ = util.subp(cmd)
return 'cloudsigma' in system_product_name.lower()
except:
- LOG.exception("Failed to get hypervisor product name")
+ LOG.warn("Failed to get hypervisor product name via dmidecode")
return False