summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alvarez <pedro.alvarez@codethink.co.uk>2014-12-09 13:45:15 +0000
committerPedro Alvarez <pedro.alvarez@codethink.co.uk>2014-12-09 13:45:15 +0000
commit37dabb1897bdbf16816b7d6b563237d04e9a3aba (patch)
tree1cfb77b027d38ebc1676305abe5751e039242a9d
parentb5cd7fa7e85d751d2868340248e02836ff0cceae (diff)
downloaddefinitions-baserock/pedroalvarez/installer-pxeboot.tar.gz
-rwxr-xr-xpxeboot.check71
1 files changed, 0 insertions, 71 deletions
diff --git a/pxeboot.check b/pxeboot.check
deleted file mode 100755
index d17f64c0..00000000
--- a/pxeboot.check
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/python
-
-import itertools
-import os
-import sys
-flatten = itertools.chain.from_iterable
-
-def powerset(iterable):
- "powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)"
- s = list(iterable)
- return flatten(itertools.combinations(s, r) for r in range(len(s)+1))
-
-valid_option_sets = frozenset((
- ('spawn-novlan', frozenset(('PXEBOOT_DEPLOYER_INTERFACE',))),
- ('spawn-vlan', frozenset(('PXEBOOT_DEPLOYER_INTERFACE', 'PXEBOOT_VLAN'))),
- ('existing-dhcp', frozenset(('PXEBOOT_DEPLOYER_INTERFACE',
- 'PXEBOOT_CONFIG_TFTP_ADDRESS'))),
- ('existing-server', frozenset(('PXEBOOT_CONFIG_TFTP_ADDRESS',
- 'PXEBOOT_ROOTFS_RSYNC_ADDRESS'))),
-))
-valid_modes = frozenset(mode for mode, opt_set in valid_option_sets)
-
-
-def compute_matches(env):
- complete_matches = set()
- for mode, opt_set in valid_option_sets:
- if mode == os.environ['PXEBOOT_MODE']:
- if all(k in env for k in opt_set):
- complete_matches.add(opt_set)
- return complete_matches
-
-complete_matches = compute_matches(os.environ)
-
-def word_separate_options(options):
- assert options
- s = options.pop(-1)
- if options:
- s = '%s and %s' % (', '.join(options), s)
- return s
-
-
-valid_options = frozenset(flatten(opt_set for (mode, opt_set)
- in valid_option_sets))
-matched_options = frozenset(o for o in valid_options
- if o in os.environ)
-if not complete_matches:
- addable_sets = frozenset(frozenset(os) - matched_options for os in
- valid_options
- if frozenset(os) - matched_options)
- print('Please provide %s' % ' or '.join(
- word_separate_options(list(opt_set))
- for opt_set in addable_sets if opt_set))
- sys.exit(1)
-elif len(complete_matches) > 1:
- removable_sets = frozenset(matched_options - frozenset(os) for os in
- powerset(matched_options)
- if len(compute_matches(os)) == 1)
- print('Please unset %s' % ' or '.join(
- word_separate_options(list(opt_set))
- for opt_set in removable_sets if opt_set))
- sys.exit(1)
-
-if 'PXEBOOT_MODE' in os.environ:
- mode = os.environ['PXEBOOT_MODE']
-else:
- mode, = (mode for (mode, opt_set) in valid_option_sets
- if all(o in os.environ for o in opt_set))
-
-if mode not in valid_modes:
- print('%s is not a valid PXEBOOT_MODE' % mode)
- sys.exit(1)