Current File : //sbin/nfsconvert
#!/usr/libexec/platform-python
"""
Read in the deprecated /etc/sysconfig/nfs file and
set the corresponding values in nfs.conf
"""

from __future__ import print_function
import os
import sys
import getopt
import subprocess
import configparser

CONF_NFS = '/etc/nfs.conf'
CONF_IDMAP = '/etc/idmapd.conf'
SYSCONF_NFS = '/etc/sysconfig/nfs'
SYSCONF_BACKUP = ".rpmsave"
CONF_TOOL = '/usr/sbin/nfsconf'

# options for nfsd found in RPCNFSDARGS
OPTS_NFSD = 'dH:p:rR:N:V:stTuUG:L:'
LONG_NFSD = ['debug', 'host=', 'port=', 'rdma=', 'nfs-version=', 'no-nfs-version=',
             'tcp', 'no-tcp', 'udp', 'no-udp', 'grace-time=', 'lease-time=']
CONV_NFSD = {'-d': (CONF_NFS, 'nfsd', 'debug', 'all'),
             '-H': (CONF_NFS, 'nfsd', 'host', ','),
             '-p': (CONF_NFS, 'nfsd', 'port', '$1'),
             '-r': (CONF_NFS, 'nfsd', 'rdma', 'nfsrdma'),
             '-R': (CONF_NFS, 'nfsd', 'rdma', '$1'),
             '-N': (CONF_NFS, 'nfsd', 'vers$1', 'n'),
             '-V': (CONF_NFS, 'nfsd', 'vers$1', 'y'),
             '-t': (CONF_NFS, 'nfsd', 'tcp', '1'),
             '-T': (CONF_NFS, 'nfsd', 'tcp', '0'),
             '-u': (CONF_NFS, 'nfsd', 'udp', '1'),
             '-U': (CONF_NFS, 'nfsd', 'udp', '0'),
             '-G': (CONF_NFS, 'nfsd', 'grace-time', '$1'),
             '-L': (CONF_NFS, 'nfsd', 'lease-time', '$1'),
             '$1': (CONF_NFS, 'nfsd', 'threads', '$1'),
             '--debug': (CONF_NFS, 'nfsd', 'debug', 'all'),
             '--host': (CONF_NFS, 'nfsd', 'host', ','),
             '--port': (CONF_NFS, 'nfsd', 'port', '$1'),
             '--rdma': (CONF_NFS, 'nfsd', 'rdma', '$1'),
             '--no-nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'n'),
             '--nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'y'),
             '--tcp': (CONF_NFS, 'nfsd', 'tcp', '1'),
             '--no-tcp': (CONF_NFS, 'nfsd', 'tcp', '0'),
             '--udp': (CONF_NFS, 'nfsd', 'udp', '1'),
             '--no-udp': (CONF_NFS, 'nfsd', 'udp', '0'),
             '--grace-time': (CONF_NFS, 'nfsd', 'grace-time', '$1'),
             '--lease-time': (CONF_NFS, 'nfsd', 'lease-time', '$1'),
            }

# options for mountd found in RPCMOUNTDOPTS
OPTS_MOUNTD = 'go:d:H:p:N:nrs:t:V:'
LONG_MOUNTD = ['descriptors=', 'debug=', 'nfs-version=', 'no-nfs-version=',
               'port=', 'no-tcp', 'ha-callout=', 'state-directory-path=',
               'num-threads=', 'reverse-lookup', 'manage-gids', 'no-udp']

CONV_MOUNTD = {'-g': (CONF_NFS, 'mountd', 'manage-gids', '1'),
               '-o': (CONF_NFS, 'mountd', 'descriptors', '$1'),
               '-d': (CONF_NFS, 'mountd', 'debug', '$1'),
               '-H': (CONF_NFS, 'mountd', 'ha-callout', '$1'),
               '-p': (CONF_NFS, 'mountd', 'port', '$1'),
               '-N': (CONF_NFS, 'nfsd', 'vers$1', 'n'),
               '-V': (CONF_NFS, 'nfsd', 'vers$1', 'y'),
               '-n': (CONF_NFS, 'nfsd', 'tcp', '0'),
               '-s': (CONF_NFS, 'mountd', 'stat-directory-path', '$1'),
               '-t': (CONF_NFS, 'mountd', 'threads', '$1'),
               '-r': (CONF_NFS, 'mountd', 'reverse-lookup', '1'),
               '-u': (CONF_NFS, 'nfsd', 'udp', '0'),
               '--manage-gids': (CONF_NFS, 'mountd', 'manage-gids', '1'),
               '--descriptors': (CONF_NFS, 'mountd', 'descriptors', '$1'),
               '--debug': (CONF_NFS, 'mountd', 'debug', '$1'),
               '--ha-callout': (CONF_NFS, 'mountd', 'ha-callout', '$1'),
               '--port': (CONF_NFS, 'mountd', 'port', '$1'),
               '--nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'y'),
               '--no-nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'n'),
               '--no-tcp': (CONF_NFS, 'nfsd', 'tcp', '0'),
               '--state-directory-path': (CONF_NFS, 'mountd', 'state-directory-path', '$1'),
               '--num-threads': (CONF_NFS, 'mountd', 'threads', '$1'),
               '--reverse-lookup': (CONF_NFS, 'mountd', 'reverse-lookup', '1'),
               '--no-udp': (CONF_NFS, 'nfsd', 'udp', '0'),
              }

# options for statd found in STATDARG
OPTS_STATD = 'o:p:T:U:n:P:H:L'
LONG_STATD = ['outgoing-port=', 'port=', 'name=', 'state-directory-path=',
              'ha-callout=', 'nlm-port=', 'nlm-udp-port=', 'no-notify']
CONV_STATD = {'-o': (CONF_NFS, 'statd', 'outgoing-port', '$1'),
              '-p': (CONF_NFS, 'statd', 'port', '$1'),
              '-T': (CONF_NFS, 'lockd', 'port', '$1'),
              '-U': (CONF_NFS, 'lockd', 'udp-port', '$1'),
              '-n': (CONF_NFS, 'statd', 'name', '$1'),
              '-P': (CONF_NFS, 'statd', 'state-directory-path', '$1'),
              '-H': (CONF_NFS, 'statd', 'ha-callout', '$1'),
              '-L': (CONF_NFS, 'statd', 'no-notify', '1'),
              '--outgoing-port': (CONF_NFS, 'statd', 'outgoing-port', '$1'),
              '--port': (CONF_NFS, 'statd', 'port', '$1'),
              '--name': (CONF_NFS, 'statd', 'name', '$1'),
              '--state-directory-path': (CONF_NFS, 'statd', 'state-directory-path', '$1'),
              '--ha-callout': (CONF_NFS, 'statd', 'ha-callout', '$1'),
              '--nlm-port': (CONF_NFS, 'lockd', 'port', '$1'),
              '--nlm-udp-port': (CONF_NFS, 'lockd', 'udp-port', '$1'),
              '--no-notify': (CONF_NFS, 'statd', 'no-notify', '1'),
             }

# options for sm-notify found in SMNOTIFYARGS
OPTS_SMNOTIFY = 'dm:np:v:P:f'
CONV_SMNOTIFY = {'-d': (CONF_NFS, 'sm-notify', 'debug', 'all'),
                 '-m': (CONF_NFS, 'sm-notify', 'retry-time', '$1'),
                 '-n': (CONF_NFS, 'sm-notify', 'update-state', '1'),
                 '-p': (CONF_NFS, 'sm-notify', 'outgoing-port', '$1'),
                 '-v': (CONF_NFS, 'sm-notify', 'outgoing-addr', '$1'),
                 '-f': (CONF_NFS, 'sm-notify', 'force', '1'),
                 '-P': (CONF_NFS, 'statd', 'state-directory-path', '$1'),
                }

# options for idmapd found in RPCIDMAPDARGS
OPTS_IDMAPD = 'vp:CS'
CONV_IDMAPD = {'-v': (CONF_IDMAP, 'general', 'verbosity', '+'),
               '-p': (CONF_NFS, 'general', 'pipefs-directory', '$1'),
               '-C': (CONF_IDMAP, 'general', 'client-only', '1'),
               '-S': (CONF_IDMAP, 'general', 'server-only', '1'),
              }

# options for gssd found in RPCGSSDARGS
OPTS_GSSD = 'Mnvrp:k:d:t:T:R:lD'
CONV_GSSD = {'-M': (CONF_NFS, 'gssd', 'use-memcache', '1'),
             '-n': (CONF_NFS, 'gssd', 'root_uses_machine_creds', '0'),
             '-v': (CONF_NFS, 'gssd', 'verbosity', '+'),
             '-r': (CONF_NFS, 'gssd', 'rpc-verbosity', '+'),
             '-p': (CONF_NFS, 'general', 'pipefs-directory', '$1'),
             '-k': (CONF_NFS, 'gssd', 'keytab-file', '$1'),
             '-d': (CONF_NFS, 'gssd', 'cred-cache-directory', '$1'),
             '-t': (CONF_NFS, 'gssd', 'context-timeout', '$1'),
             '-T': (CONF_NFS, 'gssd', 'rpc-timeout', '$1'),
             '-R': (CONF_NFS, 'gssd', 'preferred-realm', '$1'),
             '-l': (CONF_NFS, 'gssd', 'limit-to-legacy-enctypes', '0'),
             '-D': (CONF_NFS, 'gssd', 'avoid-dns', '0'),
            }

# options for blkmapd found in BLKMAPDARGS
OPTS_BLKMAPD = ''
CONV_BLKMAPD = {}

# meta list of all the getopt lists
GETOPT_MAPS = [('RPCNFSDARGS', OPTS_NFSD, LONG_NFSD, CONV_NFSD),
               ('RPCMOUNTDOPTS', OPTS_MOUNTD, LONG_MOUNTD, CONV_MOUNTD),
               ('STATDARG', OPTS_STATD, LONG_STATD, CONV_STATD),
               ('STATDARGS', OPTS_STATD, LONG_STATD, CONV_STATD),
               ('SMNOTIFYARGS', OPTS_SMNOTIFY, [], CONV_SMNOTIFY),
               ('RPCIDMAPDARGS', OPTS_IDMAPD, [], CONV_IDMAPD),
               ('RPCGSSDARGS', OPTS_GSSD, [], CONV_GSSD),
               ('BLKMAPDARGS', OPTS_BLKMAPD, [], CONV_BLKMAPD),
              ]

# any fixups we need to apply first
GETOPT_FIXUP = {'RPCNFSDARGS': ('--rdma', '--rdma=nfsrdma'),
               }

# map for all of the single option values
VALUE_MAPS = {'LOCKD_TCPPORT': (CONF_NFS, 'lockd', 'port', '$1'),
              'LOCKD_UDPPORT': (CONF_NFS, 'lockd', 'udp-port', '$1'),
              'RPCNFSDCOUNT': (CONF_NFS, 'nfsd', 'threads', '$1'),
              'NFSD_V4_GRACE': (CONF_NFS, 'nfsd', 'grace-time', '$1'),
              'NFSD_V4_LEASE': (CONF_NFS, 'nfsd', 'lease-time', '$1'),
              'MOUNTD_PORT': (CONF_NFS, 'mountd', 'port', '$1'),
              'STATD_PORT': (CONF_NFS, 'statd', 'port', '$1'),
              'STATD_OUTGOING_PORT': (CONF_NFS, 'statd', 'outgoing-port', '$1'),
              'STATD_HA_CALLOUT': (CONF_NFS, 'statd', 'ha-callout', '$1'),
              'GSS_USE_PROXY': (CONF_NFS, 'gssd', 'use-gss-proxy', '$1')
             }

def eprint(*args, **kwargs):
    """ Print error to stderr """
    print(*args, file=sys.stderr, **kwargs)

def makesub(param, value):
    """ Variable substitution """
    return param.replace('$1', value)

def set_value(value, entry):
    """ Set a configuration value by running nfsconf tool"""
    cfile, section, tag, param = entry

    tag = makesub(tag, value)
    param = makesub(param, value)
    if param == '+':
        param = value
    if param == ',':
        param = value
    args = [CONF_TOOL, "--file", cfile, "--set", section, tag, param]

    try:
        subprocess.check_output(args, stderr=subprocess.STDOUT)
    except subprocess.CalledProcessError as e:
        print("Error running nfs-conf tool:\n %s" % (e.output.decode()))
        print("Args: %s\n" % args)
        raise Exception

def convert_getopt(optname, options, optstring, longopts, conversions):
    """ Parse option string into seperate config items

        Take a getopt string and a table of conversions
        parse it all and spit out the converted config

        Keyword arguments:
        options -- the argv string to convert
        optstring --  getopt format option list
        conversions -- table of translations
    """
    optcount = 0
    try:
        args = options.strip('\"').split()
        if optname in GETOPT_FIXUP:
            (k, v) = GETOPT_FIXUP[optname]
            for i, opt in enumerate(args):
                if opt == k:
                    args[i] = v
                elif opt == '--':
                    break
        optlist, optargs = getopt.gnu_getopt(args, optstring, longopts=longopts)
    except getopt.GetoptError as err:
        eprint(err)
        raise Exception

    setlist = {}
    for (k, v) in optlist:
        if k in conversions:
            # it's already been set once
            param = conversions[k][3]
            tag = k + makesub(conversions[k][2], v)
            if tag in setlist:
                value = setlist[tag][0]
                # is it a cummulative entry
                if param == '+':
                    value = str(int(value) + 1)
                if param == ',':
                    value += "," + v
            else:
                if param == '+':
                    value = "1"
                elif param == ',':
                    value = v
                else:
                    value = v
            setlist[tag] = (value, conversions[k])
        else:
            if v:
                eprint("Ignoring unrecognised option %s=%s in %s" % (k, v, optname))
            else:
                eprint("Ignoring unrecognised option %s in %s" % (k, optname))


    for v, c in setlist.values():
        try:
            set_value(v, c)
            optcount += 1
        except Exception:
            raise

    i = 1
    for o in optargs:
        opname = '$' + str(i)
        if opname in conversions:
            try:
                set_value(o, conversions[opname])
                optcount += 1
            except Exception:
                raise
        else:
            eprint("Unrecognised trailing arguments")
            raise Exception
        i += 1

    return optcount

def map_values():
    """ Main function """
    mapcount = 0

    # Lets load the old config
    with open(SYSCONF_NFS) as cfile:
        file_content = '[sysconf]\n' + cfile.read()
    sysconfig = configparser.RawConfigParser()
    sysconfig.read_string(file_content)

    # Map all the getopt option lists
    for (name, opts, lopts, conv) in GETOPT_MAPS:
        if name in sysconfig['sysconf']:
            try:
                mapcount += convert_getopt(name, sysconfig['sysconf'][name], opts,
                                           lopts, conv)
            except Exception:
                eprint("Error whilst converting %s to nfsconf options." % (name))
                raise

    # Map the single value options
    for name, opts in VALUE_MAPS.items():
        if name in sysconfig['sysconf']:
            try:
                value = sysconfig['sysconf'][name]
                set_value(value.strip('\"'), opts)
                mapcount += 1
            except Exception:
                raise

    # All went well, move aside the old file
    # but dont bother if there were no changes and
    # an old config file already exists
    backupfile = SYSCONF_NFS + SYSCONF_BACKUP
    if mapcount > 0 or not os.path.exists(backupfile):
        try:
            os.replace(SYSCONF_NFS, backupfile)
        except OSError as err:
            eprint("Error moving old config %s: %s" % (SYSCONF_NFS, err))
            raise

# Main routine
try:
    map_values()
except Exception as e:
    eprint(e)
    eprint("Conversion failed. Please correct the error and try again.")
    exit(1)
Internet casino application company

Internet casino application company

Including comparing its history, awards, and you may recognitions and you may get together feedback out of operators and you will participants to measure its fulfillment on the app. Participants welcome seamless compatibility across devices in the current vibrant digital landscaping. I appraise the convenience with which a vendor’s app is going to be incorporated with different networks and its particular compatibility with numerous gadgets, as well as desktops, pills, and you can mobile phones.

Practical Play: Fruit Party slot UK

By the entry this type, your accept that contact route is simply for prospective agencies and not to have reporting cons otherwise looking to advice about him or her. As well, you know you to definitely as a real estate agent involves doing a business, and therefore requires upfront will cost you, which is maybe not an employment options. It’s and significant you to definitely services for example buyers and blog post-discharge support can be bypassed, while they should be as part of the rates.

Social Sale

I and seek out startups that have a potential of increasing on the a recognised brand that have an incredible number of fans. The new White Identity offers the fastest day-to-market and you can tall discount. Collaborating with Orion Celebrities & Juwa Gambling enterprise Supplier can help you stand out from other competitive online casino games programs. Buyers may also interact mutually useful partnerships having Orion Star because of its various advantages, including the exceptional profile, creative feelings, and dedication to user excitement. Subscribe all of us within this interesting initiative and help so you can profile the brand new way forward for internet casino playing.

Betting Web sites By Country

Fruit Party slot UK

Once you research their victory stories, you can observe some new releases, including, Fortune Angling or Golden Lord of your own Water. A few of their antique performs, Sizzling hot and Publication out of Ra were reissued a few minutes. Per tool Playtech brings comes with creative technology, including IMS, Bit, Playtech Open System and Playtech Webpage. He or she is serious about renewable practices — the producer features applications for all those, world and you will couples. If your image are worst, the customer will leave the game eventually, and will likely be operational seek a far greater solution.

  • Another significant part is short for the newest features of one’s desktop computer otherwise cellular software.
  • Using the sophisticated video streaming technology, they send practical alive dining tables with High definition stream and you can unbelievable camerawork you to catches all of the understated subtleties of game play.
  • Statistics show that by the 2029 there’ll be as much as 139.4 users of online gambling platforms worldwide.
  • Leveraging the 20+ several years of serving as one of the top services out of on line games app, its group requires a consumer-centric approach, consolidating trail-form technology and cryptocurrency.
  • Boost customer engagement, desire the new players, and you can increase cash from the partnering Orion Celebs’ game in the present collection.

Plunge to your our advertising now offers having #FreeMobileSweepstakes #MobileSweepstakesBonuses #MobileGamingPromotions and you may #EnterMobileSweepstakes to boost your chances of winning. Find out the ropes which have #HowToEnterMobileSweepstakes #MobileSweepstakesRules and you may talk about the fresh lavish honors with #MobileGamingPrizes. The program is just one of the #BestMobileSweepstakesSites providing #LongTailKeywords focused game such as #WinRealPrizesOnMobileSweepstakes #HowToWinMobileSweepstakesGames. Explore the realm of #MobileGambling #MobileCasinoGames #OnlineLotteryGames once we transcend the conventional playing sense. To be one of several leadership within this world, organizations must cooperate that have respected gambling establishment application company. The new decided to go with collaborator might be able to offering a safe, legitimate and you will authoritative casino system.

The system supports an over-all list of gambling establishment app game, giving supplier options to possess Vblink Fruit Party slot UK casino games, Juwa, Flames Kirin, and a lot more. Once we circulate then to the 2025, the newest integration out of virtual facts (VR) for the gambling on line platforms try poised so you can redefine the consumer experience. This particular technology is anticipated to elevate the web gaming sense to help you the newest heights, so it’s be as if professionals try in person present in a good gambling establishment otherwise sports club, even if he’s seated in the home. Boost customer engagement, desire the fresh players, and you may raise revenue from the integrating Orion Celebrities’ video game in the current profile.

Fruit Party slot UK

In addition, i gauge the quality of image, animated graphics, voice, and game play to guarantee a primary-classification playing feel. Play’n’Wade try a lengthy-based seller from movies harbors, desk game, video poker, bingo and you may abrasion cards. Video game and software solutions away from you to merchant features acquired several prestigious awards out of EGR, CEEG, WiG or other awards you to accept its perfection and advancement effort.

The invention team ensures unwavering help in different aspects of games, so we highlight rigid compliance one problems with all of our application tend to end up being taken care of lawfully. All of our technology solutions and you can globe education permit us to electricity advanced iGaming names around the world. Easily do, discharge, and you will do regional, cross-enterprise, and you may community competitions, agenda coming offers, and you may song efficiency for the Tournament Device — a robust investment to compliment user engagement. Customise tournaments in your case and you can leverage real-day statistics to possess analysis-driven choice-and then make, eventually increasing pro value and you may riding revenue gains. Jackpot App brings a premier-top quality and you may lawfully certified playing collection inside controlled international areas.

Those people sweepstakes distributor otherwise providers sell to smaller suppliers one to promote in order to private locations. We have no association with your areas and are not in charge for how it focus on its company. Once we facilitate the new shipment out of software, the role will not extend to your lead handling of personal places or their working practices.

Fruit Party slot UK

To your Turnkey Provider i deliver the software for you have a tendency to need start your gambling enterprise brand. Platon is a technology and you may device frontrunner which have a decade out of creating nimble technology enterprises from solution to performance to produce best software programs. Another important section stands for the fresh features of one’s desktop otherwise mobile application. If your app captures group’ interest, treks her or him as a result of a rotating processes, possesses quick routing, you might give it provides a associate excursion. Pay attention to the tasks they had, the way they taken care of them and you will whatever they got back effect.

The box can get include such as pros, or you may need to shell out a lot more charges with respect to the app development organization’s criteria. For example, Limeup is among the producers you to definitely zeroes in the to your brand’s label and provides customized tech products. Look at reviewer’s examination to guarantee the organization brings perhaps not simple but end-users-customized gambles. Workers away from gaming networks was happy to discover that on the internet currency games other sites element incorporated right back functions, multi-lingual alternatives, event-centered and you can secured minimal time taken between breakages. Because the establishment, Play’nGo might have been promoting online slots games, given social responsibility, collaborations, and you may designs as the key thinking.

The fresh gambling enterprise platform right back workplace also offers an entire review of the brand new user account. This consists of athlete gambling and you can class interest, obtained bonuses and you can user balance, along with mind exceptions and you will account limits. The rear place of work could also be used so you can thing private incentives in order to quickly award players, otherwise do harmony alterations in case there is unjust gamble. The gamer account administration and extends to pro places and you may lets for versatile player tagging. Customized while the a great standard software, the brand new Gambling establishment System allows for treating user profile, fee suppliers, online game suppliers, reporting and you will analytics. Subscribers receive an extensive gambling enterprise back workplace to administer its on the internet local casino brand name.


Publicado

en

por

Etiquetas: