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()
예제 #3
0
 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)))
예제 #5
0
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
예제 #7
0
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