]>
git.proxmox.com Git - mirror_ifupdown2.git/blob - sbin/ifupdown
7 from ifupdown
.ifupdown_main
import *
11 lockfile
="/run/network/.lock"
16 logger
.debug('args = %s' %str
(args
))
19 logger
.debug('creating ifupdown object ..')
20 ifupdown_handle
= ifupdown_main()
22 if op
== 'up' or op
== 'down':
23 if args
.force
== True:
24 ifupdown_handle
.set_force(args
.force
)
27 ifupdown_handle
.set_njobs(args
.jobs
)
29 if args
.dryrun
== True:
30 ifupdown_handle
.set_dryrun(args
.dryrun
)
32 if args
.nodepends
== True:
33 ifupdown_handle
.set_nodepends(args
.nodepends
)
36 if len(args
.iflist
) == 0:
39 logger
.debug('calling %s' %op
+ ' for all interfaces ..')
41 ifupdown_handle
.up(args
.all
, args
.allow
, iflist
)
43 ifupdown_handle
.down(args
.all
, args
.allow
, iflist
)
45 if args
.curstate
== True:
47 elif args
.presumedstate
== True:
49 elif args
.presumedstatedetailed
== True:
50 qstate
='presumeddetailed'
53 ifupdown_handle
.query(args
.all
, args
.allow
, iflist
,
62 log_level
= logging
.WARNING
64 if args
.verbose
== True:
65 log_level
= logging
.INFO
67 if args
.debug
== True:
68 log_level
= logging
.DEBUG
71 logging
.basicConfig(level
=log_level
,
73 logger
= logging
.getLogger('ifupdown')
81 def update_argparser(argparser
):
83 argparser
.add_argument('iflist', metavar
='IFACE',
84 nargs
='*', help='interfaces list')
85 argparser
.add_argument('-a', '--all', action
='store_true',
86 help='operate on all interfaces')
87 argparser
.add_argument('-n', '--dry-run', dest
='dryrun',
88 action
='store_true', help='dry run')
89 argparser
.add_argument('-v', '--verbose', dest
='verbose',
90 action
='store_true', help='verbose')
91 argparser
.add_argument('-d', '--debug', dest
='debug',
93 help='output debug info')
94 argparser
.add_argument('-q', '--quiet', dest
='quiet',
96 help=argparse
.SUPPRESS
)
97 argparser
.add_argument('--allow', dest
='allow',
99 argparser
.add_argument('--nodepends', dest
='nodepends',
100 action
='store_true', help='dont follow dependents')
103 def update_ifupdown_argparser(argparser
):
104 argparser
.add_argument('-f', '--force', dest
='force',
106 help='force run all operations')
107 argparser
.add_argument('-j', '--jobs', dest
='jobs', type=int,
108 default
=-1, choices
=range(1,12), help=argparse
.SUPPRESS
)
110 def update_ifup_argparser(argparser
):
111 update_ifupdown_argparser(argparser
)
113 def update_ifdown_argparser(argparser
):
114 update_ifupdown_argparser(argparser
)
116 def update_ifquery_argparser(argparser
):
117 group
= argparser
.add_mutually_exclusive_group(required
=False)
118 group
.add_argument('-s', '--query-state', dest
='curstate',
119 action
='store_true', help=argparse
.SUPPRESS
)
120 group
.add_argument('--presumed-state', dest
='presumedstate',
121 action
='store_true', help=argparse
.SUPPRESS
)
122 group
.add_argument('--presumed-state-detailed',
123 dest
='presumedstatedetailed',
124 action
='store_true', help=argparse
.SUPPRESS
)
126 def parse_args(argsv
, op
):
127 descr
= 'interface management'
129 argparser
= argparse
.ArgumentParser(description
=descr
)
130 update_argparser(argparser
)
132 update_ifup_argparser(argparser
)
134 update_ifdown_argparser(argparser
)
136 update_ifquery_argparser(argparser
)
138 return argparser
.parse_args(argsv
)
141 """ main function """
144 if re
.search(r
'ifup', argv
[0]) != None:
146 elif re
.search(r
'ifdown', argv
[0]) != None:
148 elif re
.search(r
'ifquery', argv
[0]) != None:
151 print ('Unexpected executable.' +
152 ' Should be \'ifup\' or \'ifdown\' or \'ifquery\'')
155 # Command line arg parser
156 args
= parse_args(argv
[1:], op
)
157 if len(args
.iflist
) > 0 and args
.all
is True:
158 print 'iflist and all are mutually exclusive'
164 if args
.debug
== True:
172 if __name__
== "__main__":
174 if not os
.geteuid() == 0:
175 print 'Error: Must be root to run this command'
179 if not utilities.lockFile(lockfile):
180 print 'Another instance of this program is already running.'