def run(self, ftp): if ftp.get('filemask'): ftp['filemask'] = get_integer(ftp['filemask']) if ftp.get('dirmask'): ftp['dirmask'] = get_integer(ftp['dirmask']) if ftp.get('anonymous_path'): if not os.path.exists(ftp['anonymous_path']): raise TaskException(errno.ENOENT, 'Directory {0} does not exists'.format(ftp['anonymous_path'])) try: node = ConfigNode('service.ftp', self.configstore) node.update(ftp) self.dispatcher.call_sync('etcd.generation.generate_group', 'ftp') self.dispatcher.dispatch_event('service.ftp.changed', { 'operation': 'updated', 'ids': None, }) except RpcException as e: raise TaskException( errno.ENXIO, 'Cannot reconfigure FTP: {0}'.format(str(e)) ) return 'RESTART'
def run(self, ftp): if ftp.get('filemask'): ftp['filemask'] = get_integer(ftp['filemask']) if ftp.get('dirmask'): ftp['dirmask'] = get_integer(ftp['dirmask']) if ftp.get('anonymous_path'): if not os.path.exists(ftp['anonymous_path']): raise TaskException( errno.ENOENT, 'Directory {0} does not exists'.format( ftp['anonymous_path'])) try: node = ConfigNode('service.ftp', self.configstore) node.update(ftp) self.dispatcher.call_sync('etcd.generation.generate_group', 'ftp') self.dispatcher.dispatch_event('service.ftp.changed', { 'operation': 'updated', 'ids': None, }) except RpcException as e: raise TaskException(errno.ENXIO, 'Cannot reconfigure FTP: {0}'.format(str(e))) return 'RESTART'
def run(self, smb): try: action = 'NONE' node = ConfigNode('service.smb', self.configstore) if smb.get('filemask'): smb['filemask'] = get_integer(smb['filemask']) if smb.get('dirmask'): smb['dirmask'] = get_integer(smb['dirmask']) node.update(smb) configure_params(node.__getstate__(), self.dispatcher.call_sync('service.smb.ad_enabled')) try: rpc = smbconf.SambaMessagingContext() rpc.reload_config() except OSError: action = 'RESTART' # XXX: Is restart to change netbios name/workgroup *really* needed? if 'netbiosname' in smb or 'workgroup' in smb: action = 'RESTART' self.dispatcher.dispatch_event('service.smb.changed', { 'operation': 'updated', 'ids': None, }) except RpcException as e: raise TaskException( errno.ENXIO, 'Cannot reconfigure SMB: {0}'.format(str(e)) ) return action
def run(self, smb): node = ConfigNode('service.smb', self.configstore).__getstate__() netbiosname = smb.get('netbiosname') if netbiosname is not None: for n in netbiosname: if not validate_netbios_name(n): raise TaskException(errno.EINVAL, 'Invalid name {0}'.format(n)) else: netbiosname = node['netbiosname'] workgroup = smb.get('workgroup') if workgroup is not None: if not validate_netbios_name(workgroup): raise TaskException(errno.EINVAL, 'Invalid name') else: workgroup = node['workgroup'] if workgroup.lower() in [i.lower() for i in netbiosname]: raise TaskException(errno.EINVAL, 'NetBIOS and Workgroup must be unique') if smb.get('guest_user'): if not self.dispatcher.call_sync('user.query', [('username', '=', smb['guest_user'])], {'single': True}): raise TaskException(errno.EINVAL, 'User: {0} does not exist'.format(smb['guest_user'])) try: action = 'NONE' node = ConfigNode('service.smb', self.configstore) if smb.get('filemask'): smb['filemask'] = get_integer(smb['filemask']) if smb.get('dirmask'): smb['dirmask'] = get_integer(smb['dirmask']) node.update(smb) configure_params(node.__getstate__(), self.dispatcher.call_sync('service.smb.ad_enabled')) try: rpc = smbconf.SambaMessagingContext() rpc.reload_config() except OSError: action = 'RESTART' # XXX: Is restart to change netbios name/workgroup *really* needed? if 'netbiosname' in smb or 'workgroup' in smb: action = 'RESTART' self.dispatcher.dispatch_event('service.smb.changed', { 'operation': 'updated', 'ids': None, }) except RpcException as e: raise TaskException( errno.ENXIO, 'Cannot reconfigure SMB: {0}'.format(str(e)) ) return action
def run(self, smb): node = ConfigNode('service.smb', self.configstore).__getstate__() netbiosname = smb.get('netbiosname') if netbiosname is not None: for n in netbiosname: if not validate_netbios_name(n): raise TaskException(errno.EINVAL, 'Invalid name {0}'.format(n)) else: netbiosname = node['netbiosname'] workgroup = smb.get('workgroup') if workgroup is not None: if not validate_netbios_name(workgroup): raise TaskException(errno.EINVAL, 'Invalid name') else: workgroup = node['workgroup'] if workgroup.lower() in [i.lower() for i in netbiosname]: raise TaskException(errno.EINVAL, 'NetBIOS and Workgroup must be unique') try: action = 'NONE' node = ConfigNode('service.smb', self.configstore) if smb.get('filemask'): smb['filemask'] = get_integer(smb['filemask']) if smb.get('dirmask'): smb['dirmask'] = get_integer(smb['dirmask']) node.update(smb) configure_params(node.__getstate__(), self.dispatcher.call_sync('service.smb.ad_enabled')) try: rpc = smbconf.SambaMessagingContext() rpc.reload_config() except OSError: action = 'RESTART' # XXX: Is restart to change netbios name/workgroup *really* needed? if 'netbiosname' in smb or 'workgroup' in smb: action = 'RESTART' self.dispatcher.dispatch_event('service.smb.changed', { 'operation': 'updated', 'ids': None, }) except RpcException as e: raise TaskException( errno.ENXIO, 'Cannot reconfigure SMB: {0}'.format(str(e)) ) return action
def run(self, ftp): try: node = ConfigNode('service.ftp', self.configstore) ftp['filemask'] = get_integer(ftp['filemask']) ftp['dirmask'] = get_integer(ftp['dirmask']) node.update(ftp) self.dispatcher.call_sync('etcd.generation.generate_group', 'ftp') self.dispatcher.dispatch_event('service.ftp.changed', { 'operation': 'updated', 'ids': None, }) except RpcException as e: raise TaskException(errno.ENXIO, 'Cannot reconfigure FTP: {0}'.format(str(e))) return 'RESTART'
def run(self, smb): node = ConfigNode("service.smb", self.configstore).__getstate__() netbiosname = smb.get("netbiosname") if netbiosname is not None: for n in netbiosname: if not validate_netbios_name(n): raise TaskException(errno.EINVAL, "Invalid name {0}".format(n)) else: netbiosname = node["netbiosname"] workgroup = smb.get("workgroup") if workgroup is not None: if not validate_netbios_name(workgroup): raise TaskException(errno.EINVAL, "Invalid name") else: workgroup = node["workgroup"] if workgroup.lower() in [i.lower() for i in netbiosname]: raise TaskException(errno.EINVAL, "NetBIOS and Workgroup must be unique") try: action = "NONE" node = ConfigNode("service.smb", self.configstore) if smb.get("filemask"): smb["filemask"] = get_integer(smb["filemask"]) if smb.get("dirmask"): smb["dirmask"] = get_integer(smb["dirmask"]) node.update(smb) configure_params(node.__getstate__(), self.dispatcher.call_sync("service.smb.ad_enabled")) try: rpc = smbconf.SambaMessagingContext() rpc.reload_config() except OSError: action = "RESTART" # XXX: Is restart to change netbios name/workgroup *really* needed? if "netbiosname" in smb or "workgroup" in smb: action = "RESTART" self.dispatcher.dispatch_event("service.smb.changed", {"operation": "updated", "ids": None}) except RpcException as e: raise TaskException(errno.ENXIO, "Cannot reconfigure SMB: {0}".format(str(e))) return action
def run(self, ftp): try: node = ConfigNode('service.ftp', self.configstore) ftp['filemask'] = get_integer(ftp['filemask']) ftp['dirmask'] = get_integer(ftp['dirmask']) node.update(ftp) self.dispatcher.call_sync('etcd.generation.generate_group', 'ftp') self.dispatcher.dispatch_event('service.ftp.changed', { 'operation': 'updated', 'ids': None, }) except RpcException as e: raise TaskException( errno.ENXIO, 'Cannot reconfigure FTP: {0}'.format(str(e)) ) return 'RESTART'