Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(890)

Unified Diff: remoting/tools/me2me_virtual_host.py

Issue 159753008: Disable Me2Me host controls on unsupported Linux systems. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/host/setup/daemon_controller_delegate_linux.cc ('k') | remoting/webapp/host_list.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/tools/me2me_virtual_host.py
diff --git a/remoting/tools/me2me_virtual_host.py b/remoting/tools/me2me_virtual_host.py
index c1eaa99b7cb9a59de5b2b79660e60c7014f5e7dd..fac470d59c103a9e0a3149fa33d165bbcafb9647 100755
--- a/remoting/tools/me2me_virtual_host.py
+++ b/remoting/tools/me2me_virtual_host.py
@@ -52,8 +52,9 @@ else:
CHROME_REMOTING_GROUP_NAME = "chrome-remote-desktop"
-CONFIG_DIR = os.path.expanduser("~/.config/chrome-remote-desktop")
HOME_DIR = os.environ["HOME"]
+CONFIG_DIR = HOME_DIR + "/.config/chrome-remote-desktop"
Lambros 2014/02/12 20:50:32 Use os.path.join instead of string concatenation?
Sergey Ulanov 2014/02/13 02:25:44 Done.
+SESSION_FILE_PATH = HOME_DIR + "/.chrome-remote-desktop-session"
X_LOCK_FILE_TEMPLATE = "/tmp/.X%d-lock"
FIRST_X_DISPLAY_NUMBER = 20
@@ -75,6 +76,28 @@ MAX_LAUNCH_FAILURES = SHORT_BACKOFF_THRESHOLD + 10
g_desktops = []
g_host_hash = hashlib.md5(socket.gethostname()).hexdigest()
+def load_lsb_release_file():
Lambros 2014/02/12 20:50:32 optional: I've just found out about Python's "plat
Sergey Ulanov 2014/02/13 02:25:44 actually platform.dist() is deprecated in 2.6. Th
+ result = {}
+ try:
+ for line in open('/etc/lsb-release').readlines():
+ parts = (line.split('#', 2)[0]).split('=', 2)
+ if len(parts) == 2:
+ result[parts[0].strip()] = parts[1].strip()
+ except IOError as e:
+ logging.error('Failed to load /etc/lsb-release: ' + str(e))
+ return result
+
+def is_supported_platform():
+ # Always assume that the system is supported if the config directory or
+ # session file exist.
+ if os.path.isdir(CONFIG_DIR) or os.path.isfile(SESSION_FILE_PATH):
+ return True
+
+ # The host has been tested only on Ubuntu.
+ lsb_release = load_lsb_release_file()
+ return (lsb_release.has_key('DISTRIB_ID') and
+ lsb_release['DISTRIB_ID'] == 'Ubuntu')
+
class Config:
def __init__(self, path):
self.path = path
@@ -502,7 +525,7 @@ def choose_x_session():
# session instead of looking for custom .xsession files in the home directory.
# So it's necessary to test for these files here.
XSESSION_FILES = [
- "~/.chrome-remote-desktop-session",
+ SESSION_FILE_PATH,
"~/.xsession",
"~/.Xsession" ]
for startup_file in XSESSION_FILES:
@@ -902,6 +925,9 @@ Web Store: https://chrome.google.com/remotedesktop"""
parser.add_option("-k", "--stop", dest="stop", default=False,
action="store_true",
help="Stop the daemon currently running.")
+ parser.add_option("", "--get-status", dest="get_status", default=False,
+ action="store_true",
+ help="Prints host status")
parser.add_option("", "--check-running", dest="check_running", default=False,
action="store_true",
help="Return 0 if the daemon is running, or 1 otherwise.")
@@ -923,6 +949,19 @@ Web Store: https://chrome.google.com/remotedesktop"""
options.config = os.path.join(CONFIG_DIR, "host#%s.json" % g_host_hash)
# Check for a modal command-line option (start, stop, etc.)
+
+ if options.get_status:
+ pid = get_daemon_pid()
+ if pid != 0:
+ print "STARTED"
+ elif is_supported_platform():
+ print "STOPPED"
+ else:
+ print "NOT_IMPLEMENTED"
+ return 0
+
+ # TODO(sergeyu): Remove --check-running once NPAPI plugin and NM host are
+ # updated to always use get-status flag instead.
if options.check_running:
pid = get_daemon_pid()
return 0 if pid != 0 else 1
« no previous file with comments | « remoting/host/setup/daemon_controller_delegate_linux.cc ('k') | remoting/webapp/host_list.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698