AMBARI-26020: upgrade Ambari Metrics to python3 (#126)
diff --git a/ambari-metrics-assembly/pom.xml b/ambari-metrics-assembly/pom.xml
index 1f5f10e..8f26a5e 100644
--- a/ambari-metrics-assembly/pom.xml
+++ b/ambari-metrics-assembly/pom.xml
@@ -41,13 +41,13 @@
<storm-sink.dir>${project.basedir}/../ambari-metrics-storm-sink</storm-sink.dir>
<flume-sink.dir>${project.basedir}/../ambari-metrics-flume-sink</flume-sink.dir>
<kafka-sink.dir>${project.basedir}/../ambari-metrics-kafka-sink</kafka-sink.dir>
- <python.ver>python >= 2.6</python.ver>
- <python.devel>python-devel</python.devel>
+ <python.ver>python3 >= 3.0</python.ver>
+ <python.devel>python3-devel</python.devel>
<deb.publisher>Apache</deb.publisher>
<deb.section>universe/admin</deb.section>
<deb.architecture>i386 amd64</deb.architecture>
<deb.priority>extra</deb.priority>
- <deb.python.ver>python (>= 2.6)</deb.python.ver>
+ <deb.python.ver>python3 (>= 3.0)</deb.python.ver>
<deb.architecture>amd64</deb.architecture>
<deb.dependency.list>${deb.python.ver},python-dev,gcc</deb.dependency.list>
<hadoop.sink.jar>ambari-metrics-hadoop-sink-with-common-${project.version}.jar</hadoop.sink.jar>
diff --git a/ambari-metrics-assembly/src/main/package/deb/control/prerm b/ambari-metrics-assembly/src/main/package/deb/control/prerm
index f50d88a..a231fdb 100644
--- a/ambari-metrics-assembly/src/main/package/deb/control/prerm
+++ b/ambari-metrics-assembly/src/main/package/deb/control/prerm
@@ -17,7 +17,7 @@
# during package update. See http://www.ibm.com/developerworks/library/l-rpm2/
# for details
-RESOURCE_MONITORING_DIR=/usr/lib/python2.6/site-packages/resource_monitoring
+RESOURCE_MONITORING_DIR=/usr/lib/python3.9/site-packages/resource_monitoring
PSUTIL_DIR="${RESOURCE_MONITORING_DIR}/psutil"
diff --git a/ambari-metrics-host-monitoring/conf/unix/ambari-metrics-monitor b/ambari-metrics-host-monitoring/conf/unix/ambari-metrics-monitor
index 7cde266..977fe20 100644
--- a/ambari-metrics-host-monitoring/conf/unix/ambari-metrics-monitor
+++ b/ambari-metrics-host-monitoring/conf/unix/ambari-metrics-monitor
@@ -18,7 +18,7 @@
MONITOR_CONF_DIR=/etc/ambari-metrics-monitor/conf/
METRIC_MONITOR=ambari-metrics-monitor
-RESOURCE_MONITORING_DIR=/usr/lib/python2.6/site-packages/resource_monitoring
+RESOURCE_MONITORING_DIR=/usr/lib/python3.9/site-packages/resource_monitoring
METRIC_MONITOR_PY_SCRIPT=${RESOURCE_MONITORING_DIR}/main.py
PIDFILE=/var/run/ambari-metrics-monitor/ambari-metrics-monitor.pid
@@ -30,20 +30,12 @@
NOTOK=1
# checking for default Python 2
-if [ -a /usr/bin/python2 ] && [ -z "$PYTHON" ]; then
- PYTHON=/usr/bin/python2
+if [ -a /usr/bin/python3 ] && [ -z "$PYTHON" ]; then
+ PYTHON=/usr/bin/python3
fi
-if [ -a /usr/bin/python2.7 ] && [ -z "${PYTHON}" ]; then
- PYTHON=/usr/bin/python2.7
-fi
-
-if [ -a /usr/bin/python2.6 ] && [ -z "${PYTHON}" ]; then
- PYTHON=/usr/bin/python2.6
-fi
-
-if [ "x$PYTHON" == "x" ]; then
- PYTHON=/usr/bin/python
+if [ -a /usr/bin/python3.9 ] && [ -z "${PYTHON}" ]; then
+ PYTHON=/usr/bin/python3.9
fi
export PYTHON=${PYTHON}
diff --git a/ambari-metrics-host-monitoring/src/main/package/rpm/preremove.sh b/ambari-metrics-host-monitoring/src/main/package/rpm/preremove.sh
index 9789127..d191fe5 100644
--- a/ambari-metrics-host-monitoring/src/main/package/rpm/preremove.sh
+++ b/ambari-metrics-host-monitoring/src/main/package/rpm/preremove.sh
@@ -17,7 +17,7 @@
# during package update. See http://www.ibm.com/developerworks/library/l-rpm2/
# for details
-RESOURCE_MONITORING_DIR=/usr/lib/python2.6/site-packages/resource_monitoring
+RESOURCE_MONITORING_DIR=/usr/lib/python3.9/site-packages/resource_monitoring
PSUTIL_DIR="${RESOURCE_MONITORING_DIR}/psutil"
diff --git a/ambari-metrics-host-monitoring/src/main/python/__init__.py b/ambari-metrics-host-monitoring/src/main/python/__init__.py
index adfc71c..a082e43 100644
--- a/ambari-metrics-host-monitoring/src/main/python/__init__.py
+++ b/ambari-metrics-host-monitoring/src/main/python/__init__.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
diff --git a/ambari-metrics-host-monitoring/src/main/python/core/__init__.py b/ambari-metrics-host-monitoring/src/main/python/core/__init__.py
index 264a95d..8b1fff1 100644
--- a/ambari-metrics-host-monitoring/src/main/python/core/__init__.py
+++ b/ambari-metrics-host-monitoring/src/main/python/core/__init__.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
"""
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
@@ -26,12 +26,13 @@
IS_WINDOWS = platform.system() == "Windows"
if not IS_WINDOWS:
- for dir in os.walk(path).next()[1]:
- if 'lib' in dir:
- sys.path.insert(1, os.path.join(path, dir))
+ for root, dirs, files in os.walk(path):
+ for dir in dirs:
+ if 'lib' in dir:
+ sys.path.insert(1, os.path.join(path, dir))
try:
import psutil
except ImportError:
- print 'psutil binaries need to be built by running, psutil/build.py ' \
- 'manually or by running a, mvn clean package, command.'
+ print('psutil binaries need to be built by running, psutil/build.py ' \
+ 'manually or by running a, mvn clean package, command.')
diff --git a/ambari-metrics-host-monitoring/src/main/python/core/aggregator.py b/ambari-metrics-host-monitoring/src/main/python/core/aggregator.py
index 59cdd27..88af469 100644
--- a/ambari-metrics-host-monitoring/src/main/python/core/aggregator.py
+++ b/ambari-metrics-host-monitoring/src/main/python/core/aggregator.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -21,7 +21,7 @@
import threading
import subprocess
import logging
-import urllib2
+import urllib.request, urllib.error, urllib.parse
logger = logging.getLogger()
class Aggregator(threading.Thread):
@@ -82,11 +82,11 @@
if 0 == self._stop_handler.wait(self.SLEEP_TIME):
break
try:
- conn = urllib2.urlopen(self.URL, timeout=self.CONNECTION_TIMEOUT)
+ conn = urllib.request.urlopen(self.URL, timeout=self.CONNECTION_TIMEOUT)
self.set_is_ok(True)
except (KeyboardInterrupt, SystemExit):
raise
- except Exception, e:
+ except Exception as e:
self.set_is_ok(False)
continue
if conn.code != 200:
diff --git a/ambari-metrics-host-monitoring/src/main/python/core/application_metric_map.py b/ambari-metrics-host-monitoring/src/main/python/core/application_metric_map.py
index 59d4af0..ed08a17 100644
--- a/ambari-metrics-host-monitoring/src/main/python/core/application_metric_map.py
+++ b/ambari-metrics-host-monitoring/src/main/python/core/application_metric_map.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -46,7 +46,7 @@
def put_metric(self, application_id, metric_id_to_value_map, timestamp):
with self.lock:
- for metric_name, value in metric_id_to_value_map.iteritems():
+ for metric_name, value in metric_id_to_value_map.items():
metric_map = self.app_metric_map.get(application_id)
if not metric_map:
@@ -79,7 +79,7 @@
local_metric_map = {}
if application_id:
- if self.app_metric_map.has_key(application_id):
+ if application_id in self.app_metric_map:
local_metric_map = { application_id : self.app_metric_map[application_id] }
else:
logger.info("application_id: {0}, not present in the map.".format(application_id))
@@ -87,9 +87,9 @@
local_metric_map = self.app_metric_map.copy()
pass
- for appId, metrics in local_metric_map.iteritems():
+ for appId, metrics in local_metric_map.items():
current_app_id = "HOST" if "HOST" in appId else appId
- for metricId, metricData in dict(metrics).iteritems():
+ for metricId, metricData in dict(metrics).items():
# Create a timeline metric object
result_instanceid = ""
if set_instanceid:
@@ -116,14 +116,14 @@
def get_start_time(self, app_id, metric_id):
with self.lock:
- if self.cached_metric_map.has_key(app_id):
- if self.cached_metric_map.get(app_id).has_key(metric_id):
+ if app_id in self.cached_metric_map:
+ if metric_id in self.cached_metric_map.get(app_id):
metrics = self.cached_metric_map.get(app_id).get(metric_id)
- return min(metrics.iterkeys())
- if self.app_metric_map.has_key(app_id):
- if self.app_metric_map.get(app_id).has_key(metric_id):
+ return min(metrics.keys())
+ if app_id in self.app_metric_map:
+ if metric_id in self.app_metric_map.get(app_id):
metrics = self.app_metric_map.get(app_id).get(metric_id)
- return min(metrics.iterkeys())
+ return min(metrics.keys())
pass
def format_app_id(self, app_id, instance_id = None):
@@ -164,11 +164,11 @@
# check if needs to be cached
# in case there can't be any more datapoints in last minute just post the metrics,
# otherwise need to cut off and cache the last uncompleted minute
- max_time = max(metricData.iterkeys())
+ max_time = max(metricData.keys())
if max_time % 60000 <= 60000 - 10000:
max_minute = max_time / 60000
metric_data_copy = metricData.copy()
- for time,value in metric_data_copy.iteritems():
+ for time,value in metric_data_copy.items():
if time / 60000 == max_minute:
cached_metric_map = self.cached_metric_map.get(appId)
if not cached_metric_map:
diff --git a/ambari-metrics-host-monitoring/src/main/python/core/blacklisted_set.py b/ambari-metrics-host-monitoring/src/main/python/core/blacklisted_set.py
index dab54c0..57991d7 100644
--- a/ambari-metrics-host-monitoring/src/main/python/core/blacklisted_set.py
+++ b/ambari-metrics-host-monitoring/src/main/python/core/blacklisted_set.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -38,7 +38,7 @@
def __iter__(self):
for item in set.__iter__(self):
- if time.time() > self.__dict.get(item):
+ if time.time() > self.__dict.get(item, 0):
yield item
def get_actual_size(self):
@@ -62,12 +62,12 @@
hosts = [1, 2, 3, 4]
bs = BlacklistedSet(hosts)
bs.blacklist(4)
- print bs
+ print(bs)
for a in bs:
- print a
+ print(a)
time.sleep(2)
bs.blacklist(1)
bs.blacklist(5)
for a in bs:
- print a
+ print(a)
diff --git a/ambari-metrics-host-monitoring/src/main/python/core/config_reader.py b/ambari-metrics-host-monitoring/src/main/python/core/config_reader.py
index 18ade5b..043298e 100644
--- a/ambari-metrics-host-monitoring/src/main/python/core/config_reader.py
+++ b/ambari-metrics-host-monitoring/src/main/python/core/config_reader.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -18,8 +18,8 @@
limitations under the License.
'''
-import ConfigParser
-import StringIO
+import configparser
+import io
import json
import os
@@ -54,7 +54,7 @@
configDefaults = ConfigDefaultsLinux()
-config = ConfigParser.RawConfigParser()
+config = configparser.RawConfigParser()
CONFIG_DIR = configDefaults.get_config_dir()
CONFIG_FILE_PATH = configDefaults.get_config_file_path()
@@ -147,17 +147,17 @@
def __init__(self):
global config_content
- self.config = ConfigParser.RawConfigParser()
+ self.config = configparser.RawConfigParser()
if os.path.exists(CONFIG_FILE_PATH):
self.config.read(CONFIG_FILE_PATH)
else:
- self.config.readfp(StringIO.StringIO(config_content))
+ self.config.readfp(io.StringIO(config_content))
pass
if os.path.exists(METRIC_FILE_PATH):
with open(METRIC_FILE_PATH, 'r') as f:
self.metric_groups = json.load(f)
else:
- print 'No metric configs found at {0}'.format(METRIC_FILE_PATH)
+ print('No metric configs found at {0}'.format(METRIC_FILE_PATH))
self.metric_groups = \
{
'host_metric_groups': [],
@@ -166,7 +166,7 @@
pass
self._ca_cert_file_path = CA_CERTS_FILE_PATH
self.hostname_script = None
- ambari_agent_config = ConfigParser.RawConfigParser()
+ ambari_agent_config = configparser.RawConfigParser()
if os.path.exists(AMBARI_AGENT_CONF):
try:
ambari_agent_config.read(AMBARI_AGENT_CONF)
diff --git a/ambari-metrics-host-monitoring/src/main/python/core/controller.py b/ambari-metrics-host-monitoring/src/main/python/core/controller.py
index 080eaca..7fa937e 100644
--- a/ambari-metrics-host-monitoring/src/main/python/core/controller.py
+++ b/ambari-metrics-host-monitoring/src/main/python/core/controller.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -20,15 +20,15 @@
import logging
import threading
-from Queue import Queue
+from queue import Queue
from threading import Timer
-from application_metric_map import ApplicationMetricMap
-from event_definition import HostMetricCollectEvent, ProcessMetricCollectEvent
-from metric_collector import MetricsCollector
-from emitter import Emitter
-from host_info import HostInfo
-from aggregator import Aggregator
-from aggregator import AggregatorWatchdog
+from resource_monitoring.core.application_metric_map import ApplicationMetricMap
+from resource_monitoring.core.event_definition import HostMetricCollectEvent, ProcessMetricCollectEvent
+from resource_monitoring.core.metric_collector import MetricsCollector
+from resource_monitoring.core.emitter import Emitter
+from resource_monitoring.core.host_info import HostInfo
+from resource_monitoring.core.aggregator import Aggregator
+from resource_monitoring.core.aggregator import AggregatorWatchdog
logger = logging.getLogger()
@@ -107,13 +107,13 @@
try:
host_metrics_groups = self.metrics_config['host_metric_groups']
process_metrics_groups = self.metrics_config['process_metric_groups']
- except KeyError, ke:
+ except KeyError as ke:
logger.warn('Error loading metric groups.')
raise ke
pass
if host_metrics_groups:
- for name, properties in host_metrics_groups.iteritems():
+ for name, properties in host_metrics_groups.items():
event = HostMetricCollectEvent(properties, name)
logger.info('Adding event to cache, {0} : {1}'.format(name, properties))
self.events_cache.append(event)
diff --git a/ambari-metrics-host-monitoring/src/main/python/core/emitter.py b/ambari-metrics-host-monitoring/src/main/python/core/emitter.py
index 4c0dd96..d220b7a 100644
--- a/ambari-metrics-host-monitoring/src/main/python/core/emitter.py
+++ b/ambari-metrics-host-monitoring/src/main/python/core/emitter.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -21,10 +21,10 @@
import logging
import threading
-from security import CachedHTTPSConnection, CachedHTTPConnection
-from blacklisted_set import BlacklistedSet
-from config_reader import ROUND_ROBIN_FAILOVER_STRATEGY
-from spnego_kerberos_auth import SPNEGOKerberosAuth
+from resource_monitoring.core.security import CachedHTTPSConnection, CachedHTTPConnection
+from resource_monitoring.core.blacklisted_set import BlacklistedSet
+from resource_monitoring.core.config_reader import ROUND_ROBIN_FAILOVER_STRATEGY
+from resource_monitoring.core.spnego_kerberos_auth import SPNEGOKerberosAuth
logger = logging.getLogger()
@@ -80,7 +80,7 @@
while True:
try:
self.submit_metrics()
- except Exception, e:
+ except Exception as e:
logger.warn('Unable to emit events. %s' % str(e))
self.cookie_cached = {}
pass
@@ -129,7 +129,7 @@
if self.cookie_cached[connection.host]:
headers["Cookie"] = self.cookie_cached[connection.host]
logger.debug("Cookie: %s" % self.cookie_cached[connection.host])
- except Exception, e:
+ except Exception as e:
self.cookie_cached = {}
pass
@@ -197,7 +197,7 @@
.format(response.status, response.reason))
logger.debug(str(response.read()))
return response
- except Exception, e:
+ except Exception as e:
logger.warn('Error sending metrics to server. %s' % str(e))
self.cookie_cached = {}
return None
@@ -213,7 +213,7 @@
def compute_hash(self, hostname):
hash = 11987
length = len(hostname)
- for i in xrange(0, length - 1):
+ for i in range(0, length - 1):
hash = 31*hash + ord(hostname[i])
return hash
diff --git a/ambari-metrics-host-monitoring/src/main/python/core/event_definition.py b/ambari-metrics-host-monitoring/src/main/python/core/event_definition.py
index 8c905da..45c9c1a 100644
--- a/ambari-metrics-host-monitoring/src/main/python/core/event_definition.py
+++ b/ambari-metrics-host-monitoring/src/main/python/core/event_definition.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -54,7 +54,7 @@
try:
self.group_interval = group_config['collect_every']
self.metrics = group_config['metrics']
- except KeyError, ex:
+ except KeyError as ex:
logger.warn('Unable to create event from metric group. {0}'.format(
group_config))
raise ex
diff --git a/ambari-metrics-host-monitoring/src/main/python/core/host_info.py b/ambari-metrics-host-monitoring/src/main/python/core/host_info.py
index 6198c53..b33ba46 100644
--- a/ambari-metrics-host-monitoring/src/main/python/core/host_info.py
+++ b/ambari-metrics-host-monitoring/src/main/python/core/host_info.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -69,7 +69,7 @@
'cpu_intr': cpu_times.irq if hasattr(cpu_times, 'irq') else 0,
'cpu_sintr': cpu_times.softirq if hasattr(cpu_times, 'softirq') else 0,
'cpu_steal': cpu_times.steal if hasattr(cpu_times, 'steal') else 0,
- 'boottime': long(boot_time) if boot_time else 0
+ 'boottime': int(boot_time) if boot_time else 0
}
if platform.system() != "Windows":
load_avg = os.getloadavg()
@@ -157,7 +157,7 @@
skip_virtual_interfaces = self.get_virtual_network_interfaces() if self.__config.get_virtual_interfaces_skip() == 'True' else []
skip_network_patterns = self.__config.get_network_interfaces_skip_pattern()
skip_network_patterns_list = skip_network_patterns.split(',') if skip_network_patterns and skip_network_patterns != 'None' else []
- for interface, values in net_stats.iteritems():
+ for interface, values in net_stats.items():
if interface != 'lo' and not interface in skip_virtual_interfaces:
ignore_network = False
for p in skip_network_patterns_list:
@@ -171,8 +171,8 @@
}
with self.__last_network_lock:
- result = dict((k, (v - self.__last_network_data.get(k, 0)) / delta) for k, v in new_net_stats.iteritems())
- result = dict((k, 0 if v < 0 else v) for k, v in result.iteritems())
+ result = dict((k, (v - self.__last_network_data.get(k, 0)) / delta) for k, v in new_net_stats.items())
+ result = dict((k, 0 if v < 0 else v) for k, v in result.items())
self.__last_network_data = new_net_stats
return result
@@ -199,7 +199,7 @@
pass
try:
usage = psutil.disk_usage(part.mountpoint)
- except Exception, e:
+ except Exception as e:
logger.debug('Failed to read disk_usage for a mountpoint : ' + str(e))
continue
@@ -267,7 +267,7 @@
logger.debug('skip_disk_patterns: %s' % skip_disk_patterns)
if not skip_disk_patterns or skip_disk_patterns == 'None':
io_counters = psutil.disk_io_counters()
- print io_counters
+ print(io_counters)
else:
sdiskio = namedtuple('sdiskio', ['read_count', 'write_count',
'read_bytes', 'write_bytes',
@@ -277,14 +277,14 @@
if not rawdict:
raise RuntimeError("Couldn't find any physical disk")
trimmed_dict = {}
- for disk, fields in rawdict.items():
+ for disk, fields in list(rawdict.items()):
ignore_disk = False
for p in skip_disk_pattern_list:
if re.match(p, disk):
ignore_disk = True
if not ignore_disk:
trimmed_dict[disk] = sdiskio(*fields)
- io_counters = sdiskio(*[sum(x) for x in zip(*trimmed_dict.values())])
+ io_counters = sdiskio(*[sum(x) for x in zip(*list(trimmed_dict.values()))])
new_disk_stats = {
'read_count' : io_counters.read_count if hasattr(io_counters, 'read_count') else 0,
@@ -309,7 +309,7 @@
disk_io_counters = psutil.disk_io_counters(True)
per_disk_io_counters = {}
- sortByKey = lambda x: sorted(x.items(), key=operator.itemgetter(0))
+ sortByKey = lambda x: sorted(list(x.items()), key=operator.itemgetter(0))
disk_counter = 0
if disk_io_counters:
diff --git a/ambari-metrics-host-monitoring/src/main/python/core/instance_type_provider.py b/ambari-metrics-host-monitoring/src/main/python/core/instance_type_provider.py
index 2e0a321..5eb1002 100644
--- a/ambari-metrics-host-monitoring/src/main/python/core/instance_type_provider.py
+++ b/ambari-metrics-host-monitoring/src/main/python/core/instance_type_provider.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
diff --git a/ambari-metrics-host-monitoring/src/main/python/core/krberr.py b/ambari-metrics-host-monitoring/src/main/python/core/krberr.py
index c5e0163..0b3ce53 100644
--- a/ambari-metrics-host-monitoring/src/main/python/core/krberr.py
+++ b/ambari-metrics-host-monitoring/src/main/python/core/krberr.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
diff --git a/ambari-metrics-host-monitoring/src/main/python/core/metering.py b/ambari-metrics-host-monitoring/src/main/python/core/metering.py
index bac71e6..842bfa9 100644
--- a/ambari-metrics-host-monitoring/src/main/python/core/metering.py
+++ b/ambari-metrics-host-monitoring/src/main/python/core/metering.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -21,7 +21,7 @@
import logging
import time
import json
-from instance_type_provider import HostInstanceTypeProvider
+from resource_monitoring.core.instance_type_provider import HostInstanceTypeProvider
logger = logging.getLogger()
@@ -50,7 +50,7 @@
def get_metering_metrics(self, metrics):
metering_metrics = {}
curr_time = int(round(time.time() * 1000))
- for metric_name, value in metrics.iteritems():
+ for metric_name, value in metrics.items():
if metric_name in self.metering_metric_list:
end_time_metric_key = self.metering_metric_key_prefix + "~" + metric_name + "~" + str(value) + "~" + self.METERING_ALIVE_TIME_METRIC_SUFFIX
metering_metrics[end_time_metric_key] = curr_time
diff --git a/ambari-metrics-host-monitoring/src/main/python/core/metric_collector.py b/ambari-metrics-host-monitoring/src/main/python/core/metric_collector.py
index f728c2d..f0318b6 100644
--- a/ambari-metrics-host-monitoring/src/main/python/core/metric_collector.py
+++ b/ambari-metrics-host-monitoring/src/main/python/core/metric_collector.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -20,8 +20,8 @@
import logging
from time import time
-from event_definition import HostMetricCollectEvent, ProcessMetricCollectEvent
-from metering import MeteringMetricHandler
+from resource_monitoring.core.event_definition import HostMetricCollectEvent, ProcessMetricCollectEvent
+from resource_monitoring.core.metering import MeteringMetricHandler
logger = logging.getLogger()
diff --git a/ambari-metrics-host-monitoring/src/main/python/core/security.py b/ambari-metrics-host-monitoring/src/main/python/core/security.py
index e36e01d..bfb2131 100644
--- a/ambari-metrics-host-monitoring/src/main/python/core/security.py
+++ b/ambari-metrics-host-monitoring/src/main/python/core/security.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -21,17 +21,17 @@
import logging
import ssl
import socket
-import httplib
+import http.client
logger = logging.getLogger()
# TODO merge this with security.py in ambari-agent and move to ambrari commons
-class VerifiedHTTPSConnection(httplib.HTTPSConnection):
+class VerifiedHTTPSConnection(http.client.HTTPSConnection):
""" Connecting using ssl wrapped sockets """
def __init__(self, host, port, timeout, ca_certs):
- httplib.HTTPSConnection.__init__(self, host, port=port, timeout=timeout)
+ http.client.HTTPSConnection.__init__(self, host, port=port, timeout=timeout)
self.ca_certs = ca_certs
def connect(self):
@@ -85,7 +85,7 @@
return self.httpconn.getresponse()
def create_connection(self):
- return httplib.HTTPConnection(self.host, self.port, self.timeout)
+ return http.client.HTTPConnection(self.host, self.port, self.timeout)
class CachedHTTPSConnection(CachedHTTPConnection):
""" Caches an ssl socket and uses a single https connection to the server. """
diff --git a/ambari-metrics-host-monitoring/src/main/python/core/spnego_kerberos_auth.py b/ambari-metrics-host-monitoring/src/main/python/core/spnego_kerberos_auth.py
index e49712f..401f66d 100644
--- a/ambari-metrics-host-monitoring/src/main/python/core/spnego_kerberos_auth.py
+++ b/ambari-metrics-host-monitoring/src/main/python/core/spnego_kerberos_auth.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -19,14 +19,14 @@
'''
import logging
-import httplib
+import http.client
import os
logger = logging.getLogger()
try:
import kerberos
except ImportError:
- import krberr as kerberos
+ from resource_monitoring.core import krberr as kerberos
logger.warn('import kerberos exception: %s' % str(ImportError))
pass
@@ -70,7 +70,7 @@
try:
connection.request(method, service_url, body, headers)
response = connection.getresponse()
- except Exception, e:
+ except Exception as e:
logger.warn('2nd HTTP request exception from server: %s' % str(e))
return None
pass
@@ -88,7 +88,7 @@
if result == -1:
logger.warn('authGSSClientInit result: {0}'.format(result))
return None
- except kerberos.GSSError, e:
+ except kerberos.GSSError as e:
logger.warn('authGSSClientInit exception: %s' % str(e))
return None
pass
@@ -99,7 +99,7 @@
if result == -1:
logger.warn('authGSSClientStep result for authenticate client: {0}'.format(result))
return None
- except kerberos.GSSError, e:
+ except kerberos.GSSError as e:
logger.warn('authGSSClientStep exception for authenticate client: %s' % str(e))
return None
pass
@@ -108,7 +108,7 @@
try:
negotiate_value = kerberos.authGSSClientResponse(self.krb_context)
logger.debug("authGSSClientResponse response:{0}".format(negotiate_value))
- except kerberos.GSSError, e:
+ except kerberos.GSSError as e:
logger.warn('authGSSClientResponse exception: %s' % str(e))
return None
pass
@@ -127,7 +127,7 @@
result = kerberos.authGSSClientStep(self.krb_context, negotiate_value)
if result == -1:
logger.warn('authGSSClientStep result for authenticate server: {0}'.format(result))
- except kerberos.GSSError, e:
+ except kerberos.GSSError as e:
logger.warn('authGSSClientStep exception for authenticate server: %s' % str(e))
result = -1
pass
@@ -138,7 +138,7 @@
try:
result = kerberos.authGSSClientClean(self.krb_context)
logger.debug("authGSSClientClean result:{0}".format(result))
- except kerberos.GSSError, e:
+ except kerberos.GSSError as e:
logger.warn('authGSSClientClean exception: %s' % str(e))
result = -1
pass
diff --git a/ambari-metrics-host-monitoring/src/main/python/core/stop_handler.py b/ambari-metrics-host-monitoring/src/main/python/core/stop_handler.py
index ba77be6..134edf6 100644
--- a/ambari-metrics-host-monitoring/src/main/python/core/stop_handler.py
+++ b/ambari-metrics-host-monitoring/src/main/python/core/stop_handler.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
diff --git a/ambari-metrics-host-monitoring/src/main/python/main.py b/ambari-metrics-host-monitoring/src/main/python/main.py
index 02914da..ef674ed 100644
--- a/ambari-metrics-host-monitoring/src/main/python/main.py
+++ b/ambari-metrics-host-monitoring/src/main/python/main.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -23,9 +23,14 @@
import os
import sys
import signal
-from core.controller import Controller
-from core.config_reader import Configuration, PID_OUT_FILE
-from core.stop_handler import bind_signal_handlers
+
+current_dir = os.path.dirname(os.path.abspath(__file__))
+parent_dir = os.path.dirname(current_dir)
+sys.path.append(parent_dir)
+
+from resource_monitoring.core.config_reader import Configuration, PID_OUT_FILE
+from resource_monitoring.core.stop_handler import bind_signal_handlers
+from resource_monitoring.core.controller import Controller
logger = logging.getLogger()
@@ -65,8 +70,8 @@
logger.info('Starting Server RPC Thread: %s' % ' '.join(sys.argv))
controller.start()
- print "Server out at: " + main_config.ams_monitor_out_file()
- print "Server log at: " + main_config.ams_monitor_log_file()
+ print("Server out at: " + main_config.ams_monitor_out_file())
+ print("Server log at: " + main_config.ams_monitor_log_file())
save_pid(os.getpid(), PID_OUT_FILE)
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/Makefile b/ambari-metrics-host-monitoring/src/main/python/psutil/Makefile
index b812527..59b0862 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/Makefile
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/Makefile
@@ -3,7 +3,7 @@
# $ make install PYTHON=python3.3
# You can set these variables from the command line.
-PYTHON = python
+PYTHON = python3
TSCRIPT = test/test_psutil.py
all: test
@@ -26,7 +26,7 @@
$(PYTHON) setup.py build
install: build
- if test $(PYTHON) = python2.4; then \
+ if test $(PYTHON) = python3.9; then \
$(PYTHON) setup.py install; \
elif test $(PYTHON) = python2.5; then \
$(PYTHON) setup.py install; \
@@ -35,8 +35,8 @@
fi
uninstall:
- if test $(PYTHON) = python2.4; then \
- pip-2.4 uninstall -y -v psutil; \
+ if test $(PYTHON) = python3.9; then \
+ pip-3.9 uninstall -y -v psutil; \
else \
cd ..; $(PYTHON) -m pip uninstall -y -v psutil; \
fi
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/build.py b/ambari-metrics-host-monitoring/src/main/python/psutil/build.py
index 09fb411..66bcd06 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/build.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/build.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -37,7 +37,7 @@
cwd = os.getcwd()
os.chdir(path)
- print 'Executing make at location: %s ' % path
+ print('Executing make at location: %s ' % path)
if sys.platform.startswith("win"):
# Windows
@@ -50,7 +50,7 @@
os.chdir(cwd)
if returncode != 0:
- print 'psutil build failed. Please find build output at: %s' % build_out_path
+ print('psutil build failed. Please find build output at: %s' % build_out_path)
pass
if __name__ == '__main__':
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/docs/conf.py b/ambari-metrics-host-monitoring/src/main/python/psutil/docs/conf.py
index 0c6608a..417f0ec 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/docs/conf.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/docs/conf.py
@@ -16,8 +16,8 @@
import os
-PROJECT_NAME = u"psutil"
-AUTHOR = u"Giampaolo Rodola'"
+PROJECT_NAME = "psutil"
+AUTHOR = "Giampaolo Rodola'"
THIS_YEAR = str(datetime.datetime.now().year)
HERE = os.path.abspath(os.path.dirname(__file__))
@@ -68,7 +68,7 @@
# General information about the project.
project = PROJECT_NAME
-copyright = u'2009-%s, %s' % (THIS_YEAR, AUTHOR)
+copyright = '2009-%s, %s' % (THIS_YEAR, AUTHOR)
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
@@ -214,7 +214,7 @@
# (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents = [
('index', '%s.tex' % PROJECT_NAME,
- u'%s documentation' % PROJECT_NAME, AUTHOR),
+ '%s documentation' % PROJECT_NAME, AUTHOR),
]
# The name of an image file (relative to this directory) to place at the top of
@@ -246,7 +246,7 @@
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
- ('index', PROJECT_NAME, u'%s documentation' % PROJECT_NAME, [AUTHOR], 1)
+ ('index', PROJECT_NAME, '%s documentation' % PROJECT_NAME, [AUTHOR], 1)
]
# If true, show URL addresses after external links.
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/disk_usage.py b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/disk_usage.py
index 787cb0f..0c6ff84 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/disk_usage.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/disk_usage.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/free.py b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/free.py
index 95e11fb..0114783 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/free.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/free.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/iotop.py b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/iotop.py
index 47f1ca5..3a1f10f 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/iotop.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/iotop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/killall.py b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/killall.py
index b548e7b..7b5a38c 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/killall.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/killall.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/meminfo.py b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/meminfo.py
index 671f907..a404702 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/meminfo.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/meminfo.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/netstat.py b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/netstat.py
index 70bc231..d9d9cbe 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/netstat.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/netstat.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/nettop.py b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/nettop.py
index 857285c..2cc03b2 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/nettop.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/nettop.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# $Id: iotop.py 1160 2011-10-14 18:50:36Z g.rodola@gmail.com $
#
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/pmap.py b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/pmap.py
index 1936c0b..ee39cf9 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/pmap.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/pmap.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/process_detail.py b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/process_detail.py
index 371142c..50b686f 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/process_detail.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/process_detail.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/top.py b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/top.py
index 479c797..93ac6c5 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/top.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/top.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/who.py b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/who.py
index 8ffbc81..a1bc155 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/examples/who.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/examples/who.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/__init__.py b/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/__init__.py
index 3068b10..166a2c1 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/__init__.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/__init__.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
@@ -10,7 +10,7 @@
in Python.
"""
-from __future__ import division
+
__author__ = "Giampaolo Rodola'"
__version__ = "2.1.1"
@@ -754,7 +754,7 @@
pass
else:
# Windows only (faster)
- for pid, ppid in ppid_map.items():
+ for pid, ppid in list(ppid_map.items()):
if ppid == self.pid:
try:
child = Process(pid)
@@ -775,7 +775,7 @@
except NoSuchProcess:
pass
else:
- for pid, ppid in ppid_map.items():
+ for pid, ppid in list(ppid_map.items()):
try:
p = Process(pid)
table[ppid].append(p)
@@ -925,7 +925,7 @@
path = tupl[2]
nums = tupl[3:]
try:
- d[path] = map(lambda x, y: x + y, d[path], nums)
+ d[path] = list(map(lambda x, y: x + y, d[path], nums))
except KeyError:
d[path] = nums
nt = _psplatform.pmmap_grouped
@@ -1725,11 +1725,11 @@
if not rawdict:
raise RuntimeError("couldn't find any physical disk")
if perdisk:
- for disk, fields in rawdict.items():
+ for disk, fields in list(rawdict.items()):
rawdict[disk] = _nt_sys_diskio(*fields)
return rawdict
else:
- return _nt_sys_diskio(*[sum(x) for x in zip(*rawdict.values())])
+ return _nt_sys_diskio(*[sum(x) for x in zip(*list(rawdict.values()))])
# =====================================================================
@@ -1759,11 +1759,11 @@
if not rawdict:
raise RuntimeError("couldn't find any network interface")
if pernic:
- for nic, fields in rawdict.items():
+ for nic, fields in list(rawdict.items()):
rawdict[nic] = _nt_sys_netio(*fields)
return rawdict
else:
- return _nt_sys_netio(*[sum(x) for x in zip(*rawdict.values())])
+ return _nt_sys_netio(*[sum(x) for x in zip(*list(rawdict.values()))])
def net_connections(kind='inet'):
@@ -1979,7 +1979,7 @@
_replace_module()
-del property, memoize, division, _replace_module
+del property, memoize, _replace_module
if sys.version_info < (3, 0):
del num
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_common.py b/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_common.py
index 3d2f27c..88708cb 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_common.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_common.py
@@ -6,7 +6,7 @@
"""Common objects shared by all _ps* modules."""
-from __future__ import division
+
import errno
import os
import socket
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_compat.py b/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_compat.py
index b6ac933..11a98bb 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_compat.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_compat.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_psbsd.py b/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_psbsd.py
index 5663736..62d51d6 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_psbsd.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_psbsd.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_pslinux.py b/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_pslinux.py
index d20b267..407fd90 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_pslinux.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_pslinux.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
@@ -6,7 +6,7 @@
"""Linux platform implementation."""
-from __future__ import division
+
import base64
import errno
@@ -1061,7 +1061,7 @@
@wrap_exceptions
def cpu_affinity_get(self):
- from_bitmask = lambda x: [i for i in xrange(64) if (1 << i) & x]
+ from_bitmask = lambda x: [i for i in range(64) if (1 << i) & x]
bitmask = cext.proc_cpu_affinity_get(self.pid)
return from_bitmask(bitmask)
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_psosx.py b/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_psosx.py
index 8953867..8b21ae1 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_psosx.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_psosx.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_psposix.py b/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_psposix.py
index 1188c9f..3a68b03 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_psposix.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_psposix.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_pssunos.py b/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_pssunos.py
index bc18427..ba8143a 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_pssunos.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_pssunos.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_pswindows.py b/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_pswindows.py
index 1a786f1..ee56109 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_pswindows.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/psutil/_pswindows.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
@@ -444,7 +444,7 @@
@wrap_exceptions
def cpu_affinity_get(self):
- from_bitmask = lambda x: [i for i in xrange(64) if (1 << i) & x]
+ from_bitmask = lambda x: [i for i in range(64) if (1 << i) & x]
bitmask = cext.proc_cpu_affinity_get(self.pid)
return from_bitmask(bitmask)
diff --git a/ambari-metrics-host-monitoring/src/main/python/psutil/setup.py b/ambari-metrics-host-monitoring/src/main/python/psutil/setup.py
index 98b24a1..cb7835f 100644
--- a/ambari-metrics-host-monitoring/src/main/python/psutil/setup.py
+++ b/ambari-metrics-host-monitoring/src/main/python/psutil/setup.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2009 Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
diff --git a/ambari-metrics-host-monitoring/src/main/unix/ambari-python-wrap b/ambari-metrics-host-monitoring/src/main/unix/ambari-python-wrap
index 72041ef..099fee6 100755
--- a/ambari-metrics-host-monitoring/src/main/unix/ambari-python-wrap
+++ b/ambari-metrics-host-monitoring/src/main/unix/ambari-python-wrap
@@ -17,24 +17,15 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-export PYTHONPATH=/usr/lib/python2.6/site-packages:$PYTHONPATH
+export PYTHONPATH=/usr/lib/python3.9/site-packages:$PYTHONPATH
-# checking for default Python 2
-if [ -a /usr/bin/python2 ] && [ -z "$PYTHON" ]; then
- PYTHON=/usr/bin/python2
+# checking for default Python 3
+if [ -a /usr/bin/python3 ] && [ -z "$PYTHON" ]; then
+ PYTHON=/usr/bin/python3
fi
-if [ -a /usr/bin/python2.7 ] && [ -z "$PYTHON" ]; then
- PYTHON=/usr/bin/python2.7
-fi
-
-if [ -a /usr/bin/python2.6 ] && [ -z "$PYTHON" ]; then
- PYTHON=/usr/bin/python2.6
-fi
-
-# if no preferable python versions found, try to use system one. Hoping it's Python 2
-if [[ -z "$PYTHON" ]]; then
- PYTHON=/usr/bin/python
+if [ -a /usr/bin/python3.9 ] && [ -z "$PYTHON" ]; then
+ PYTHON=/usr/bin/python3.9
fi
# execute script
diff --git a/ambari-metrics-host-monitoring/src/test/python/core/TestApplicationMetricMap.py b/ambari-metrics-host-monitoring/src/test/python/core/TestApplicationMetricMap.py
index d9ea55d..08af2ea 100644
--- a/ambari-metrics-host-monitoring/src/test/python/core/TestApplicationMetricMap.py
+++ b/ambari-metrics-host-monitoring/src/test/python/core/TestApplicationMetricMap.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
diff --git a/ambari-metrics-host-monitoring/src/test/python/core/TestEmitter.py b/ambari-metrics-host-monitoring/src/test/python/core/TestEmitter.py
index aa83026..bce5e75 100644
--- a/ambari-metrics-host-monitoring/src/test/python/core/TestEmitter.py
+++ b/ambari-metrics-host-monitoring/src/test/python/core/TestEmitter.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
diff --git a/ambari-metrics-host-monitoring/src/test/python/core/TestHostInfo.py b/ambari-metrics-host-monitoring/src/test/python/core/TestHostInfo.py
index 1b249c7..058a57e 100644
--- a/ambari-metrics-host-monitoring/src/test/python/core/TestHostInfo.py
+++ b/ambari-metrics-host-monitoring/src/test/python/core/TestHostInfo.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
diff --git a/ambari-metrics-host-monitoring/src/test/python/core/TestMetricCollector.py b/ambari-metrics-host-monitoring/src/test/python/core/TestMetricCollector.py
index 64df3e6..d6593aa 100644
--- a/ambari-metrics-host-monitoring/src/test/python/core/TestMetricCollector.py
+++ b/ambari-metrics-host-monitoring/src/test/python/core/TestMetricCollector.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
diff --git a/ambari-metrics-host-monitoring/src/test/python/mock/docs/conf.py b/ambari-metrics-host-monitoring/src/test/python/mock/docs/conf.py
index 62f0491..51ca069 100644
--- a/ambari-metrics-host-monitoring/src/test/python/mock/docs/conf.py
+++ b/ambari-metrics-host-monitoring/src/test/python/mock/docs/conf.py
@@ -65,8 +65,8 @@
master_doc = 'index'
# General substitutions.
-project = u'Mock'
-copyright = u'2007-2012, Michael Foord & the mock team'
+project = 'Mock'
+copyright = '2007-2012, Michael Foord & the mock team'
# The default replacements for |version| and |release|, also used in various
# other places throughout the built documents.
@@ -187,8 +187,8 @@
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, document class [howto/manual]).
latex_documents = [
- ('index', 'Mock.tex', u'Mock Documentation',
- u'Michael Foord', 'manual'),
+ ('index', 'Mock.tex', 'Mock Documentation',
+ 'Michael Foord', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
diff --git a/ambari-metrics-host-monitoring/src/test/python/mock/mock.py b/ambari-metrics-host-monitoring/src/test/python/mock/mock.py
index 2a3f869..accf619 100644
--- a/ambari-metrics-host-monitoring/src/test/python/mock/mock.py
+++ b/ambari-metrics-host-monitoring/src/test/python/mock/mock.py
@@ -86,7 +86,7 @@
next
except NameError:
def next(obj):
- return obj.next()
+ return obj.__next__()
BaseExceptions = (BaseException,)
@@ -616,7 +616,7 @@
self.call_args_list = _CallList()
self.method_calls = _CallList()
- for child in self._mock_children.values():
+ for child in list(self._mock_children.values()):
if isinstance(child, _SpecState):
continue
child.reset_mock()
@@ -635,7 +635,7 @@
>>> attrs = {'method.return_value': 3, 'other.side_effect': KeyError}
>>> mock.configure_mock(**attrs)"""
- for arg, val in sorted(kwargs.items(),
+ for arg, val in sorted(list(kwargs.items()),
# we sort on the number of dots so that
# attributes are set before we set attributes on
# attributes
@@ -1216,7 +1216,7 @@
# not in Python 3
patched.compat_co_firstlineno = getattr(
func, "compat_co_firstlineno",
- func.func_code.co_firstlineno
+ func.__code__.co_firstlineno
)
return patched
@@ -1764,7 +1764,7 @@
'__hash__': lambda self: object.__hash__(self),
'__str__': lambda self: object.__str__(self),
'__sizeof__': lambda self: object.__sizeof__(self),
- '__unicode__': lambda self: unicode(object.__str__(self)),
+ '__unicode__': lambda self: str(object.__str__(self)),
}
_return_values = {
@@ -1951,7 +1951,7 @@
formatted_args = ''
args_string = ', '.join([repr(arg) for arg in args])
kwargs_string = ', '.join([
- '%s=%r' % (key, value) for key, value in kwargs.items()
+ '%s=%r' % (key, value) for key, value in list(kwargs.items())
])
if args_string:
formatted_args = args_string
diff --git a/ambari-metrics-host-monitoring/src/test/python/unitTests.py b/ambari-metrics-host-monitoring/src/test/python/unitTests.py
index f4aa845..7fb1b54 100644
--- a/ambari-metrics-host-monitoring/src/test/python/unitTests.py
+++ b/ambari-metrics-host-monitoring/src/test/python/unitTests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
diff --git a/ambari-metrics-timelineservice/conf/unix/sqlline/phoenix_utils.py b/ambari-metrics-timelineservice/conf/unix/sqlline/phoenix_utils.py
index 492764b..5a2daf6 100644
--- a/ambari-metrics-timelineservice/conf/unix/sqlline/phoenix_utils.py
+++ b/ambari-metrics-timelineservice/conf/unix/sqlline/phoenix_utils.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
############################################################################
#
# Licensed to the Apache Software Foundation (ASF) under one
@@ -175,18 +175,18 @@
if __name__ == "__main__":
setPath()
- print "phoenix_class_path:", phoenix_class_path
- print "hbase_conf_dir:", hbase_conf_dir
- print "hbase_conf_path:", hbase_conf_path
- print "current_dir:", current_dir
- print "phoenix_jar_path:", phoenix_jar_path
- print "phoenix_client_jar:", phoenix_client_jar
- print "phoenix_test_jar_path:", phoenix_test_jar_path
- print "hadoop_common_jar_path:", hadoop_common_jar_path
- print "hadoop_common_jar:", hadoop_common_jar
- print "hadoop_hdfs_jar_path:", hadoop_hdfs_jar_path
- print "hadoop_hdfs_jar:", hadoop_hdfs_jar
- print "testjar:", testjar
- print "phoenix_queryserver_jar:", phoenix_queryserver_jar
- print "phoenix_thin_client_jar:", phoenix_thin_client_jar
- print "hadoop_classpath:", hadoop_classpath
+ print("phoenix_class_path:", phoenix_class_path)
+ print("hbase_conf_dir:", hbase_conf_dir)
+ print("hbase_conf_path:", hbase_conf_path)
+ print("current_dir:", current_dir)
+ print("phoenix_jar_path:", phoenix_jar_path)
+ print("phoenix_client_jar:", phoenix_client_jar)
+ print("phoenix_test_jar_path:", phoenix_test_jar_path)
+ print("hadoop_common_jar_path:", hadoop_common_jar_path)
+ print("hadoop_common_jar:", hadoop_common_jar)
+ print("hadoop_hdfs_jar_path:", hadoop_hdfs_jar_path)
+ print("hadoop_hdfs_jar:", hadoop_hdfs_jar)
+ print("testjar:", testjar)
+ print("phoenix_queryserver_jar:", phoenix_queryserver_jar)
+ print("phoenix_thin_client_jar:", phoenix_thin_client_jar)
+ print("hadoop_classpath:", hadoop_classpath)
diff --git a/ambari-metrics-timelineservice/conf/unix/sqlline/sqlline.py b/ambari-metrics-timelineservice/conf/unix/sqlline/sqlline.py
index 852f264..ef064ba 100644
--- a/ambari-metrics-timelineservice/conf/unix/sqlline/sqlline.py
+++ b/ambari-metrics-timelineservice/conf/unix/sqlline/sqlline.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
############################################################################
#
# Licensed to the Apache Software Foundation (ASF) under one
@@ -57,9 +57,9 @@
#phoenix_utils.setPath()
if len(sys.argv) < 2:
- print "Zookeeper not specified. \nUsage: sqlline.py <zookeeper> \
+ print("Zookeeper not specified. \nUsage: sqlline.py <zookeeper> \
<optional_sql_file> \nExample: \n 1. sqlline.py localhost:2181:/hbase \n 2. sqlline.py \
-localhost:2181:/hbase ../examples/stock_symbol.sql"
+localhost:2181:/hbase ../examples/stock_symbol.sql")
sys.exit()
sqlfile = ""
@@ -79,7 +79,7 @@
PATH_PREFIX = '/usr/lib/ambari-metrics-collector/'
if not os.path.exists(PATH_PREFIX):
- print 'Fatal Error: ' + PATH_PREFIX + ' not a valid path.'
+ print('Fatal Error: ' + PATH_PREFIX + ' not a valid path.')
sys.exit(1)
current_dir = os.path.dirname(os.path.abspath(__file__))
@@ -93,7 +93,7 @@
" -n none -p none --color=" + colorSetting + " --fastConnect=false --verbose=true \
--isolation=TRANSACTION_READ_COMMITTED " + sqlfile
-print 'java command: %s' % str(java_cmd)
+print('java command: %s' % str(java_cmd))
childProc = subprocess.Popen(java_cmd, shell=True)
#Wait for child process exit
diff --git a/ambari-metrics-timelineservice/src/main/python/ambari_metrics_collector/__init__.py b/ambari-metrics-timelineservice/src/main/python/ambari_metrics_collector/__init__.py
index 38e1a5e..ec4a97c 100644
--- a/ambari-metrics-timelineservice/src/main/python/ambari_metrics_collector/__init__.py
+++ b/ambari-metrics-timelineservice/src/main/python/ambari_metrics_collector/__init__.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
"""
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
diff --git a/ambari-metrics-timelineservice/src/main/python/ambari_metrics_collector/properties.py b/ambari-metrics-timelineservice/src/main/python/ambari_metrics_collector/properties.py
index 8e00762..878f4de 100644
--- a/ambari-metrics-timelineservice/src/main/python/ambari_metrics_collector/properties.py
+++ b/ambari-metrics-timelineservice/src/main/python/ambari_metrics_collector/properties.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -87,7 +87,7 @@
first, last = m.span()
sepidx = last - 1
while line[-1] == '\\':
- nextline = i.next()
+ nextline = next(i)
nextline = nextline.strip()
lineno += 1
line = line[:-1] + nextline
@@ -114,7 +114,7 @@
oldvalue = self.unescape(oldvalue)
value = self.unescape(value)
self._props[key] = None if value is None else value.strip()
- if self._keymap.has_key(key):
+ if key in self._keymap:
oldkey = self._keymap.get(key)
self._origprops[oldkey] = None if oldvalue is None else oldvalue.strip()
else:
@@ -129,20 +129,20 @@
return newvalue
def removeOldProp(self, key):
- if self._origprops.has_key(key):
+ if key in self._origprops:
del self._origprops[key]
pass
def removeProp(self, key):
- if self._props.has_key(key):
+ if key in self._props:
del self._props[key]
pass
def load(self, stream):
if type(stream) is not file:
- raise TypeError, 'Argument should be a file object!'
+ raise TypeError('Argument should be a file object!')
if stream.mode != 'r':
- raise ValueError, 'Stream should be opened in read-only mode!'
+ raise ValueError('Stream should be opened in read-only mode!')
try:
self.fileName = os.path.abspath(stream.name)
lines = stream.readlines()
@@ -154,7 +154,7 @@
return self._props.get(key, '')
def propertyNames(self):
- return self._props.keys()
+ return list(self._props.keys())
def getPropertyDict(self):
return self._props
@@ -168,10 +168,15 @@
except KeyError:
if hasattr(self._props, name):
return getattr(self._props, name)
+ else:
+ raise NotImplementedError("The method '{}' is not implemented.".format(name))
+
+ def __contains__(self, key):
+ return key in self._props
def sort_props(self):
tmp_props = {}
- for key in sorted(self._props.iterkeys()):
+ for key in sorted(self._props.keys()):
tmp_props[key] = self._props[key]
self._props = tmp_props
pass
@@ -179,7 +184,7 @@
def sort_origprops(self):
tmp_props = self._origprops.copy()
self._origprops.clear()
- for key in sorted(tmp_props.iterkeys()):
+ for key in sorted(tmp_props.keys()):
self._origprops[key] = tmp_props[key]
pass
@@ -187,7 +192,7 @@
""" Write the properties list to the stream 'out' along
with the optional 'header' """
if out.mode[0] != 'w':
- raise ValueError, 'Steam should be opened in write mode!'
+ raise ValueError('Steam should be opened in write mode!')
try:
out.write(''.join(('#', ASF_LICENSE_HEADER, '\n')))
out.write(''.join(('#', header, '\n')))
@@ -195,7 +200,7 @@
tstamp = time.strftime('%a %b %d %H:%M:%S %Z %Y', time.localtime())
out.write(''.join(('#', tstamp, '\n')))
# Write properties from the pristine dictionary
- for prop, val in self._origprops.items():
+ for prop, val in list(self._origprops.items()):
if val is not None:
out.write(''.join((prop, '=', val, '\n')))
out.close()
@@ -206,7 +211,7 @@
""" Write the properties list to the stream 'out' along
with the optional 'header' """
if out.mode[0] != 'w':
- raise ValueError, 'Steam should be opened in write mode!'
+ raise ValueError('Steam should be opened in write mode!')
try:
out.write(''.join(('#', ASF_LICENSE_HEADER, '\n')))
out.write(''.join(('#', header, '\n')))
@@ -214,7 +219,7 @@
tstamp = time.strftime('%a %b %d %H:%M:%S %Z %Y', time.localtime())
out.write(''.join(('#', tstamp, '\n')))
# Write properties from the pristine dictionary
- for key in sorted(self._origprops.iterkeys()):
+ for key in sorted(self._origprops.keys()):
val = self._origprops[key]
if val is not None:
out.write(''.join((key, '=', val, '\n')))
diff --git a/ambari-metrics-timelineservice/src/main/python/ambari_metrics_collector/serviceConfiguration.py b/ambari-metrics-timelineservice/src/main/python/ambari_metrics_collector/serviceConfiguration.py
index 5e73e24..0348d6a 100644
--- a/ambari-metrics-timelineservice/src/main/python/ambari_metrics_collector/serviceConfiguration.py
+++ b/ambari-metrics-timelineservice/src/main/python/ambari_metrics_collector/serviceConfiguration.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -82,7 +82,7 @@
if conf_file is None:
err = 'File %s not found in search path $%s: %s' % (AMS_PROPERTIES_FILE,
AMS_CONF_VAR, get_conf_dir())
- print err
+ print(err)
raise FatalException(1, err)
else:
print_info_msg('Loading properties from ' + conf_file)
@@ -96,8 +96,8 @@
try:
properties = Properties()
properties.load(open(conf_file))
- except (Exception), e:
- print 'Could not read "%s": %s' % (conf_file, e)
+ except (Exception) as e:
+ print('Could not read "%s": %s' % (conf_file, e))
return -1
return properties
diff --git a/ambari-metrics-timelineservice/src/main/python/amc_service.py b/ambari-metrics-timelineservice/src/main/python/amc_service.py
index a19fd11..592a93d 100644
--- a/ambari-metrics-timelineservice/src/main/python/amc_service.py
+++ b/ambari-metrics-timelineservice/src/main/python/amc_service.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -136,7 +136,7 @@
options.exit_message = None
statusStr = AMCollectorService.QueryStatus()
- print "Ambari Metrics Collector is " + statusStr
+ print("Ambari Metrics Collector is " + statusStr)
def setup(options):
diff --git a/ambari-metrics-timelineservice/src/main/python/embedded_hbase_service.py b/ambari-metrics-timelineservice/src/main/python/embedded_hbase_service.py
index 2040959..ebd1ded 100644
--- a/ambari-metrics-timelineservice/src/main/python/embedded_hbase_service.py
+++ b/ambari-metrics-timelineservice/src/main/python/embedded_hbase_service.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -80,7 +80,7 @@
@classmethod
def Install(cls, startupMode = "auto", username = None, password = None):
- print "Installing service %s" % (cls._svc_name_)
+ print("Installing service %s" % (cls._svc_name_))
# Configure master.xml, which drives the java subprocess32
java_path = get_java_exe_path()
@@ -120,18 +120,18 @@
None,
username,
password)
- print "Service installed"
+ print("Service installed")
win32service.CloseServiceHandle(hs)
finally:
win32service.CloseServiceHandle(hscm)
- except win32service.error, exc:
+ except win32service.error as exc:
if exc.winerror==winerror.ERROR_SERVICE_EXISTS:
cls.Update(username, password)
else:
- print "Error installing service: %s (%d)" % (exc.strerror, exc.winerror)
+ print("Error installing service: %s (%d)" % (exc.strerror, exc.winerror))
err = exc.winerror
- except ValueError, msg: # Can be raised by custom option handler.
- print "Error installing service: %s" % str(msg)
+ except ValueError as msg: # Can be raised by custom option handler.
+ print("Error installing service: %s" % str(msg))
err = -1
# xxx - maybe I should remove after _any_ failed install - however,
# xxx - it may be useful to help debug to leave the service as it failed.
@@ -141,7 +141,7 @@
try:
RemoveService(cls._svc_name_)
except win32api.error:
- print "Warning - could not remove the partially installed service."
+ print("Warning - could not remove the partially installed service.")
@classmethod
def Update(cls, startupMode = "auto", username = None, password = None):
@@ -170,7 +170,7 @@
username,
password,
cls._svc_display_name_)
- print "Service updated"
+ print("Service updated")
finally:
win32service.CloseServiceHandle(hs)
finally:
diff --git a/ambari-metrics-timelineservice/src/main/python/main.py b/ambari-metrics-timelineservice/src/main/python/main.py
index 2467ea3..ec12a22 100644
--- a/ambari-metrics-timelineservice/src/main/python/main.py
+++ b/ambari-metrics-timelineservice/src/main/python/main.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -122,7 +122,7 @@
suspend_mode = 'y' if SUSPEND_START_MODE else 'n'
command = command_base.format(java_class_path, java_heap_max, suspend_mode)
if not os.path.exists(PID_DIR):
- os.makedirs(PID_DIR, 0755)
+ os.makedirs(PID_DIR, 0o755)
#Ignore the requirement to run as root. In Windows, by default the child process inherits the security context
# and the environment from the parent process.
@@ -132,7 +132,7 @@
procJava = subprocess32.Popen(param_list, env=os.environ)
#wait for server process for SERVER_START_TIMEOUT seconds
- print "Waiting for server start..."
+ print("Waiting for server start...")
pidJava = procJava.pid
if pidJava <= 0:
@@ -146,9 +146,9 @@
raise FatalException(-1, AMC_DIE_MSG.format(exitcode, SERVER_OUT_FILE))
else:
save_pid(pidJava, PID_OUT_FILE)
- print "Server PID at: " + PID_OUT_FILE
- print "Server out at: " + SERVER_OUT_FILE
- print "Server log at: " + SERVER_LOG_FILE
+ print("Server PID at: " + PID_OUT_FILE)
+ print("Server out at: " + SERVER_OUT_FILE)
+ print("Server log at: " + SERVER_LOG_FILE)
if scmStatus is not None:
scmStatus.reportStarted()
@@ -167,7 +167,7 @@
init_service_debug(options)
if len(args) == 0:
- print parser.print_help()
+ print(parser.print_help())
parser.error("No action entered")
action = args[0]
@@ -203,7 +203,7 @@
print_warning_msg(e.reason)
if options.exit_message is not None:
- print options.exit_message
+ print(options.exit_message)
if __name__ == "__main__":
diff --git a/ambari-metrics-timelineservice/src/main/resources/scripts/ams_query.py b/ambari-metrics-timelineservice/src/main/resources/scripts/ams_query.py
index 0247990..d130f31 100644
--- a/ambari-metrics-timelineservice/src/main/resources/scripts/ams_query.py
+++ b/ambari-metrics-timelineservice/src/main/resources/scripts/ams_query.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
'''
Licensed to the Apache Software Foundation (ASF) under one
@@ -18,7 +18,7 @@
limitations under the License.
'''
-import urllib2
+import urllib.request, urllib.error, urllib.parse
import signal
import sys
import optparse
@@ -92,11 +92,11 @@
(options, args) = parser.parse_args()
if options.host is None:
- print "Ambari Metrics host name is required (--host or -h)"
+ print("Ambari Metrics host name is required (--host or -h)")
exit(-1)
if options.node_names is None:
- print "cluster nodes are required (--nodes or -n)"
+ print("cluster nodes are required (--nodes or -n)")
exit(3)
global start_time_secs, metrics_test_host, hostnames
@@ -121,8 +121,8 @@
hostname = ','.join(hostnames)
qs = QuerySender(metrics_test_host, True)
for metric_name in all_metrics:
- print
- print 'Querying for ' + metric_name + ' metrics'
+ print()
+ print('Querying for ' + metric_name + ' metrics')
current_time_secs = start_time_secs
qs.query_all_app_metrics(hostname, metric_name,
all_metrics[metric_name],
@@ -136,7 +136,7 @@
def print_all_metrics(metrics):
- print 'Metrics Summary'
+ print('Metrics Summary')
for app_id in sorted(metrics):
first = True
for single_query_metrics in metrics[app_id]:
@@ -147,12 +147,12 @@
def print_app_metrics(app_id, metric_timing, header=False):
#header
if header:
- print app_id + ': ' + ','.join(sorted(metric_timing.keys()))
+ print(app_id + ': ' + ','.join(sorted(metric_timing.keys())))
#vals
- print app_id + ':',
+ print(app_id + ':', end=' ')
for key in sorted(metric_timing):
- print '%.3f,' % metric_timing[key],
- print
+ print('%.3f,' % metric_timing[key], end=' ')
+ print()
class QuerySender:
@@ -163,14 +163,14 @@
def query_all_app_metrics(self, hostname, app_id, metrics, current_time_secs):
metric_timing = {}
for key in metrics:
- print 'Getting metrics for', key
+ print('Getting metrics for', key)
query_time = time.time()
metric_names = ','.join(metrics[key])
self.query(hostname, app_id, metric_names, current_time_secs)
query_time_elapsed = time.time() - query_time
- print 'Query for "%s" took %s' % (key, query_time_elapsed)
+ print('Query for "%s" took %s' % (key, query_time_elapsed))
metric_timing[key] = query_time_elapsed
add_query_metrics_for_app_id(app_id, metric_timing)
@@ -179,21 +179,21 @@
def query(self, hostname, app_id, metric_names, current_time_secs):
url = self.create_url(hostname, metric_names, app_id, current_time_secs)
- print url
+ print(url)
response = self.send(url)
if self.print_responses:
- print response
+ print(response)
pass
def send(self, url):
- request = urllib2.Request(url)
+ request = urllib.request.Request(url)
try:
- response = urllib2.urlopen(request, timeout=int(30))
+ response = urllib.request.urlopen(request, timeout=int(30))
response = response.read()
return response
- except urllib2.URLError as e:
- print e.reason
+ except urllib.error.URLError as e:
+ print(e.reason)
def create_url(self, hostname, metric_names, app_id, current_time_secs):
server = AMS_URL.format(self.metrics_address,
diff --git a/pom.xml b/pom.xml
index a8ecba5..5a1b6f4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,8 +35,8 @@
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <python.ver>python >= 2.6</python.ver>
- <deb.python.ver>python (>= 2.6)</deb.python.ver>
+ <python.ver>python3 >= 3.0</python.ver>
+ <deb.python.ver>python3 (>= 3.0)</deb.python.ver>
<slf4j.version>2.0.0</slf4j.version>
<zookeeper.version>3.5.9</zookeeper.version>
<kafka.version>2.8.1</kafka.version>
@@ -53,7 +53,7 @@
<grafana.tar>https://dl.grafana.com/oss/release/grafana-9.5.6.linux-amd64.tar.gz</grafana.tar>
<phoenix.tar>http://repo.bigtop.apache.org.s3.amazonaws.com/bigtop-stack-binary/3.2.0/centos-7/x86_64/phoenix-hbase-2.4-5.1.2-bin.tar.gz</phoenix.tar>
<phoenix.folder>phoenix-hbase-2.4-5.1.2-bin</phoenix.folder>
- <resmonitor.install.dir>/usr/lib/python2.6/site-packages/resource_monitoring</resmonitor.install.dir>
+ <resmonitor.install.dir>/usr/lib/python3.9/site-packages/resource_monitoring</resmonitor.install.dir>
<powermock.version>1.6.2</powermock.version>
<distMgmtSnapshotsId>apache.snapshots.https</distMgmtSnapshotsId>
<distMgmtSnapshotsName>Apache Development Snapshot Repository</distMgmtSnapshotsName>