def sync(self): if not os.path.isfile(self.init_path): print 'Creating {0} file for {1}'.format('systemd unit' if use_systemd() else 'Upstart job', self.name) confirm() self.write_init_script() if self.init_script != read_text(self.init_path): print 'Overwriting init script for {0}'.format(self.name) confirm() self.write_init_script() if (os.stat(self.init_path).st_mode & 0777) != self.init_script_perms: print 'Fixing init script permissions for {0}'.format(self.name) confirm() os.chmod(self.init_path, self.init_script_perms) if not user_exists(self.username): print 'Creating user {0} for {1}'.format(self.username, self.name) confirm() create_system_user(self.username) if not os.path.isfile(self.settings_path): print 'Creating transmission settings file for {0}'.format(self.name) confirm() if not os.path.isdir(self.transmission_files_path): os.makedirs(self.transmission_files_path) os.chmod(self.transmission_files_path, 0777) self.write_settings() if not check_transmission_settings( self.settings_path, TRANSMISSION_BIND_HOST, self.instance.port, self.instance.peer_port): print 'Fixing transmission settings file for {0}'.format(self.name) confirm() self.write_settings() if use_systemd(): print 'Enabling systemd unit for {0}'.format(self.name) confirm() self.exec_init_script('enable')
def sync(self): if not os.path.isfile(self.init_path): print 'Creating init script for {0}'.format(self.name) confirm() self.write_init_script() if self.init_script != read_text(self.init_path): print 'Overwriting init script for {0}'.format(self.name) confirm() self.write_init_script() if (os.stat(self.init_path).st_mode & 0777) != self.init_script_perms: print 'Fixing init script permissions for {0}'.format(self.name) confirm() os.chmod(self.init_path, self.init_script_perms) if not user_exists(self.username): print 'Creating user {0} for {1}'.format(self.username, self.name) confirm() create_system_user(self.username) if not os.path.isfile(self.settings_path): print 'Creating transmission settings file for {0}'.format(self.name) confirm() if not os.path.isdir(self.transmission_files_path): os.makedirs(self.transmission_files_path) os.chmod(self.transmission_files_path, 0777) self.write_settings() if not check_transmission_settings(self.settings_path, self.instance.port, self.instance.peer_port): print 'Fixing transmission settings file for {0}'.format(self.name) confirm() self.write_settings()
def sync(self): if not os.path.isfile(self.init_path): print 'Creating init script for {0}'.format(self.name) confirm() self.write_init_script() if self.init_script != read_text(self.init_path): print 'Overwriting init script for {0}'.format(self.name) confirm() self.write_init_script() if (os.stat(self.init_path).st_mode & 0777) != self.init_script_perms: print 'Fixing init script permissions for {0}'.format(self.name) confirm() os.chmod(self.init_path, self.init_script_perms) if not user_exists(self.username): print 'Creating user {0} for {1}'.format(self.username, self.name) confirm() create_system_user(self.username) if not os.path.isfile(self.settings_path): print 'Creating transmission settings file for {0}'.format(self.name) confirm() if not os.path.isdir(self.transmission_files_path): os.makedirs(self.transmission_files_path) os.chmod(self.transmission_files_path, 0777) self.write_settings() if not check_transmission_settings( self.settings_path, TRANSMISSION_BIND_HOST, self.instance.port, self.instance.peer_port): print 'Fixing transmission settings file for {0}'.format(self.name) confirm() self.write_settings()
def check_running(): pids = [pid for pid in os.listdir('/proc') if pid.isdigit()] found_cmdlines = list() for pid in pids: cmdline = read_text(os.path.join('/proc', pid, 'cmdline')).split('\0') if 'python' in cmdline[0] and 'transmission_files_sync' in cmdline: found_cmdlines.append(' '.join(cmdline)) if len(found_cmdlines) != 1: raise Exception('Script is probably already running or error checking. Found {0}.'.format( '; '.join(found_cmdlines)))
def check_running(): pids = [pid for pid in os.listdir('/proc') if pid.isdigit()] found_cmdlines = list() for pid in pids: cmdline = read_text(os.path.join('/proc', pid, 'cmdline')).split('\0') if 'python' in cmdline[0] and 'transmission_files_sync' in cmdline: found_cmdlines.append(' '.join(cmdline)) if len(found_cmdlines) != 1: raise Exception( 'Script is probably already running or error checking. Found {0}.'. format('; '.join(found_cmdlines)))
def check_transmission_settings(path, rpc_port, peer_port, username='******', umask=0): try: settings = json.loads(read_text(path)) except: return False if settings.get('rpc-port') != rpc_port: return False if settings.get('peer-port') != peer_port: return False if settings.get('rpc-username') != username: return False if settings.get('umask') != umask: return False return True
def check_transmission_settings(path, bind_host, rpc_port, peer_port, username='******', umask=0): try: settings = json.loads(read_text(path)) except: return False if settings.get('bind-address-ipv4') != bind_host: return False if settings.get('rpc-port') != rpc_port: return False if settings.get('peer-port') != peer_port: return False if settings.get('rpc-username') != username: return False if settings.get('umask') != umask: return False return True