def cli(env, identifier): """Detail firewall.""" mgr = SoftLayer.FirewallManager(env.client) firewall_type, firewall_id = firewall.parse_id(identifier) _firewall = mgr.get_instance(firewall_id) table = formatting.KeyValueTable(['name', 'value']) table.align['name'] = 'r' table.align['value'] = 'l' table.add_row(['id', _firewall.get('id')]) table.add_row(['primaryIpAddress', _firewall.get('primaryIpAddress')]) table.add_row( ['datacenter', utils.lookup(_firewall, 'datacenter', 'longName')]) table.add_row( ['networkVlan', utils.lookup(_firewall, 'networkVlan', 'name')]) table.add_row( ['networkVlaniD', utils.lookup(_firewall, 'networkVlan', 'id')]) if firewall_type == 'vlan': rules = mgr.get_dedicated_fwl_rules(firewall_id) else: rules = mgr.get_standard_fwl_rules(firewall_id) table.add_row(['rules', get_rules_table(rules)]) env.fout(table)
def cli(env, identifier): """Detail firewall.""" mgr = SoftLayer.FirewallManager(env.client) firewall_type, firewall_id = firewall.parse_id(identifier) if firewall_type == 'vlan': rules = mgr.get_dedicated_fwl_rules(firewall_id) else: rules = mgr.get_standard_fwl_rules(firewall_id) env.fout(get_rules_table(rules))
def cli(env, identifier): """List firewalls.""" mgr = SoftLayer.FirewallManager(env.client) firewall_type, firewall_id = firewall.parse_id(identifier) if any([env.skip_confirmations, formatting.confirm("This action will cancel a firewall from your" "account. Continue?")]): if firewall_type in ['vs', 'server']: mgr.cancel_firewall(firewall_id, dedicated=False) elif firewall_type == 'vlan': mgr.cancel_firewall(firewall_id, dedicated=True) return 'Firewall with id %s is being cancelled!' % identifier else: raise exceptions.CLIAbort('Aborted.')
def cli(env, identifier): """List firewalls.""" mgr = SoftLayer.FirewallManager(env.client) firewall_type, firewall_id = firewall.parse_id(identifier) if any([ env.skip_confirmations, formatting.confirm("This action will cancel a firewall from your" "account. Continue?") ]): if firewall_type in ['cci', 'server']: mgr.cancel_firewall(firewall_id, dedicated=False) elif firewall_type == 'vlan': mgr.cancel_firewall(firewall_id, dedicated=True) return 'Firewall with id %s is being cancelled!' % identifier else: raise exceptions.CLIAbort('Aborted.')
def cli(env, identifier): """Cancels a firewall.""" mgr = SoftLayer.FirewallManager(env.client) firewall_type, firewall_id = firewall.parse_id(identifier) if not (env.skip_confirmations or formatting.confirm("This action will cancel a firewall from your " "account. Continue?")): raise exceptions.CLIAbort('Aborted.') if firewall_type in ['vs', 'server']: mgr.cancel_firewall(firewall_id, dedicated=False) elif firewall_type == 'vlan': mgr.cancel_firewall(firewall_id, dedicated=True) else: raise exceptions.CLIAbort('Unknown firewall type: %s' % firewall_type) env.fout('Firewall with id %s is being cancelled!' % identifier)
def cli(env, identifier): """Cancels a firewall.""" mgr = SoftLayer.FirewallManager(env.client) firewall_type, firewall_id = firewall.parse_id(identifier) if not (env.skip_confirmations or formatting.confirm( "This action will cancel a firewall from your " "account. Continue?")): raise exceptions.CLIAbort('Aborted.') if firewall_type in ['vs', 'server']: mgr.cancel_firewall(firewall_id, dedicated=False) elif firewall_type == 'vlan': mgr.cancel_firewall(firewall_id, dedicated=True) else: raise exceptions.CLIAbort('Unknown firewall type: %s' % firewall_type) env.fout('Firewall with id %s is being cancelled!' % identifier)
def cli(env, identifier): """Edit firewall rules.""" mgr = SoftLayer.FirewallManager(env.client) firewall_type, firewall_id = firewall.parse_id(identifier) if firewall_type == 'vlan': orig_rules = mgr.get_dedicated_fwl_rules(firewall_id) else: orig_rules = mgr.get_standard_fwl_rules(firewall_id) # open an editor for the user to enter their rules edited_rules = open_editor(rules=orig_rules) env.out(edited_rules) if formatting.confirm("Would you like to submit the rules. " "Continue?"): while True: try: rules = parse_rules(edited_rules) if firewall_type == 'vlan': rules = mgr.edit_dedicated_fwl_rules(firewall_id, rules) else: rules = mgr.edit_standard_fwl_rules(firewall_id, rules) break except (SoftLayer.SoftLayerError, ValueError) as error: env.out("Unexpected error({%s})" % (error)) if formatting.confirm("Would you like to continue editing " "the rules. Continue?"): edited_rules = open_editor(content=edited_rules) env.out(edited_rules) if formatting.confirm("Would you like to submit the " "rules. Continue?"): continue else: raise exceptions.CLIAbort('Aborted.') else: raise exceptions.CLIAbort('Aborted.') env.fout('Firewall updated!') else: raise exceptions.CLIAbort('Aborted.')
def __init__(self, path, fw): self.client = SoftLayer.Client() self.fw = SoftLayer.FirewallManager(self.client) self.path = path self.fw_type, self.fw_id = firewall.parse_id(fw)
def cli(env, identifier, credentials): """Detail firewall. EXAMPLES: slcli firewall detail vs:12345 slcli firewall detail --credentials true multiVlan:456789 """ mgr = SoftLayer.FirewallManager(env.client) firewall_type, firewall_id = firewall.parse_id(identifier) if firewall_type in ('vs', 'server', 'vlan', 'multiVlan'): if firewall_type == 'vlan': _firewall = mgr.get_instance(firewall_id) table = formatting.KeyValueTable(['name', 'value']) table.align['name'] = 'r' table.align['value'] = 'l' table.add_row(['id', _firewall.get('id')]) table.add_row( ['primaryIpAddress', _firewall.get('primaryIpAddress')]) table.add_row([ 'datacenter', utils.lookup(_firewall, 'datacenter', 'longName') ]) table.add_row([ 'networkVlan', utils.lookup(_firewall, 'networkVlan', 'name') ]) table.add_row([ 'networkVlaniD', utils.lookup(_firewall, 'networkVlan', 'id') ]) rules = mgr.get_dedicated_fwl_rules(firewall_id) table.add_row(['rules', get_rules_table(rules)]) if firewall_type == 'multiVlan': _firewall = mgr.get_instance(firewall_id) table = formatting.KeyValueTable(['name', 'value']) table.align['name'] = 'r' table.align['value'] = 'l' table.add_row( ['name', utils.lookup(_firewall, 'networkGateway', 'name')]) table.add_row([ 'datacenter', utils.lookup(_firewall, 'datacenter', 'longName') ]) table.add_row([ 'public ip', utils.lookup(_firewall, 'networkGateway', 'publicIpAddress', 'ipAddress') ]) table.add_row([ 'private ip', utils.lookup(_firewall, 'networkGateway', 'privateIpAddress', 'ipAddress') ]) table.add_row([ 'public ipv6', utils.lookup(_firewall, 'networkGateway', 'publicIpv6Address', 'ipAddress') ]) table.add_row([ 'public vlan', utils.lookup(_firewall, 'networkGateway', 'publicVlan', 'vlanNumber') ]) table.add_row([ 'private vlan', utils.lookup(_firewall, 'networkGateway', 'privateVlan', 'vlanNumber') ]) table.add_row(['type', _firewall.get('firewallType')]) if credentials: table.add_row([ 'fortiGate username', utils.lookup(_firewall, 'managementCredentials', 'username') ]) table.add_row([ 'fortiGate password', utils.lookup(_firewall, 'managementCredentials', 'password') ]) rules = mgr.get_dedicated_fwl_rules(firewall_id) if len(rules) != 0: table.add_row(['rules', get_rules_table(rules)]) else: table.add_row(['rules', '-']) if firewall_type == 'vs' or firewall_type == 'server': rules = mgr.get_standard_fwl_rules(firewall_id) table = get_rules_table(rules) env.fout(table) else: click.secho( 'Invalid firewall type %s: firewall type should be either vlan, multiVlan, vs or server.' % firewall_type, fg='red') return