Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit c3dac29

Browse files
authored
fix: Configure firewall if enabled (#453)
Configure the firewall if it is already running, but do not enable or start it. Advise the user to start the firewall if it is not running.
1 parent cdaeee9 commit c3dac29

File tree

1 file changed

+31
-35
lines changed

1 file changed

+31
-35
lines changed

software/wmla120.py

+31-35
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,13 @@ def __init__(self, eval_ver=False, non_int=False, arch='ppc64le', proc_family=''
7070
self.arch = arch
7171
self.ana_platform_basename = '64' if self.arch == "x86_64" else self.arch
7272
self.sw_vars_file_name = 'software-vars'
73-
self.sw_vars_file_name = self.sw_vars_file_name + '-eval' if self.eval_ver else self.sw_vars_file_name
74-
# self.sw_vars_file_name = self.sw_vars_file_name if self.arch == "ppc64le" else self.sw_vars_file_name + "_" + self.arch
73+
self.sw_vars_file_name = self.sw_vars_file_name + '-eval' if self.eval_ver \
74+
else self.sw_vars_file_name
7575
self.sw_vars_file_name = self.sw_vars_file_name + ".yml"
7676
self.log.info(f"Using architecture: {self.arch}")
7777
# add filename to distinguish architecture
78-
self.base_filename = f'{self.my_name}' if self.arch == 'ppc64le' else f'{self.my_name}_{self.arch}'
78+
self.base_filename = f'{self.my_name}' if self.arch == 'ppc64le' \
79+
else f'{self.my_name}_{self.arch}'
7980
self.state = self._get_state_dict()
8081
# Only yum repos should be listed under self.repo_id
8182
self.repo_id = {'EPEL Repository': f'epel-{self.arch}',
@@ -86,12 +87,14 @@ def __init__(self, eval_ver=False, non_int=False, arch='ppc64le', proc_family=''
8687
self._load_pkglist()
8788

8889
try:
89-
self.sw_vars = yaml.load(open(GEN_SOFTWARE_PATH + f'{self.sw_vars_file_name}'))
90+
self.sw_vars = yaml.load(open(GEN_SOFTWARE_PATH +
91+
f'{self.sw_vars_file_name}'))
9092
except IOError:
9193
# if no eval vars file exist, see if the license var file exists
9294
# and start with that
9395
try:
94-
self.sw_vars = yaml.load(open(GEN_SOFTWARE_PATH + f'{self.sw_vars_file_name}'))
96+
self.sw_vars = yaml.load(open(GEN_SOFTWARE_PATH +
97+
f'{self.sw_vars_file_name}'))
9598
except IOError:
9699
self.log.info('Creating software vars yaml file')
97100
self.sw_vars = {}
@@ -441,42 +444,35 @@ def _is_firewall_running(self, eval_ver=False, non_int=False):
441444
return False
442445

443446
def _setup_firewall(self, eval_ver=False, non_int=False):
444-
# Setup firewall to allow http
445-
heading1('Setting up firewall')
446-
fw_err = 0
447-
cmd = 'systemctl status firewalld.service'
448-
resp, _, rc = sub_proc_exec(cmd)
449-
if 'Active: active (running)' in resp.splitlines()[2]:
450-
self.log.debug('Firewall is running')
451-
else:
452-
cmd = 'systemctl enable firewalld.service'
447+
if self._is_firewall_running():
448+
heading1('Configuring firewall to enable http')
449+
fw_err = 0
450+
cmd = 'firewall-cmd --permanent --add-service=http'
453451
resp, err, rc = sub_proc_exec(cmd)
454452
if rc != 0:
455-
fw_err += 1
456-
self.log.error('Failed to enable firewall')
453+
fw_err += 100
454+
self.log.error('Failed to enable http service on firewall')
457455

458-
cmd = 'systemctl start firewalld.service'
456+
cmd = 'firewall-cmd --reload'
459457
resp, err, rc = sub_proc_exec(cmd)
460-
if rc != 0:
461-
fw_err += 10
462-
self.log.error('Failed to start firewall')
463-
cmd = 'firewall-cmd --permanent --add-service=http'
464-
resp, err, rc = sub_proc_exec(cmd)
465-
if rc != 0:
466-
fw_err += 100
467-
self.log.error('Failed to enable http service on firewall')
458+
if 'success' not in resp:
459+
fw_err += 1000
460+
self.log.error('Error attempting to restart firewall')
468461

469-
cmd = 'firewall-cmd --reload'
470-
resp, err, rc = sub_proc_exec(cmd)
471-
if 'success' not in resp:
472-
fw_err += 1000
473-
self.log.error('Error attempting to restart firewall')
474-
475-
self.status_prep(which='Firewall')
476-
if self.state['Firewall'] == '-':
477-
self.log.info('Failed to configure firewall')
462+
self.status_prep(which='Firewall')
463+
if self.state['Firewall'] == '-':
464+
self.log.info('Failed to configure firewall')
465+
else:
466+
self.log.info(self.state['Firewall'])
478467
else:
479-
self.log.info(self.state['Firewall'])
468+
self.log.debug('Firewall is not running')
469+
self.log.info(bold('The firewall is not enabled.\n'))
470+
print('The PowerUp software installer utilizes Nginx web server.')
471+
print('Nginx will run without the Firewall enabled, but it is \n'
472+
'advisable to utilize a firewall when running a web server.')
473+
if not get_yesno('\nContinue with installation? ', default='y'):
474+
self.log.info('Exiting at user request')
475+
sys.exit()
480476

481477
def _setup_nginx_server(self, eval_ver=False, non_int=False):
482478
# nginx setup

0 commit comments

Comments
 (0)