Exemple #1
0
 def test_get_missing_dhcp_host(self):
     """Fetch missing DHCP host; return empty list."""
     dhcp_host = "testgetmissinghost"
     host = SpokeDHCPHost(self.dhcp_server, self.dhcp_group)
     result = host.get(dhcp_host)["data"]
     expected_result = []
     self.assertEqual(result, expected_result)
Exemple #2
0
 def test_get_missing_dhcp_host(self):
     """Fetch missing DHCP host; return empty list."""
     dhcp_host = 'testgetmissinghost'
     host = SpokeDHCPHost(self.dhcp_server, self.dhcp_group)
     result = host.get(dhcp_host)['data']
     expected_result = []
     self.assertEqual(result, expected_result)
Exemple #3
0
 def test_create_dhcp_host_twice(self):
     """Create DHCP host twice; raise AlreadyExists."""
     dhcp_host = "testcreatehosttwice"
     host = SpokeDHCPHost(self.dhcp_server, self.dhcp_group)
     host.create(dhcp_host)
     self.assertRaises(error.AlreadyExists, host.create, dhcp_host)
     host.delete(dhcp_host)
Exemple #4
0
def host_search(dhcp_server, dhcp_group, dhcp_host):
    try:
        from spoke.lib.dhcp import SpokeDHCPHost
        host = SpokeDHCPHost(dhcp_server, dhcp_group)
        result = host.get(dhcp_host)
    except error.SpokeError as e:
        result = common.handle_error(e)
    return result
Exemple #5
0
def host_search(dhcp_server, dhcp_group, dhcp_host):
    try:
        from spoke.lib.dhcp import SpokeDHCPHost
        host = SpokeDHCPHost(dhcp_server, dhcp_group)
        result = host.get(dhcp_host)
    except error.SpokeError as e:
        result = common.handle_error(e)
    return result
Exemple #6
0
 def test_delete_dhcp_group_before_hosts(self):
     """Delete DHCP group while hosts present, raise SaveTheBabies."""
     dhcp_host = "testdeletebeforehost"
     host = SpokeDHCPHost(self.dhcp_server, self.dhcp_group)
     host.create(dhcp_host)
     group = SpokeDHCPGroup(self.dhcp_server)
     self.assertRaises(error.SaveTheBabies, group.delete, self.dhcp_group)
     host.delete(dhcp_host)
Exemple #7
0
def reservation_delete(dhcp_server, dhcp_group, host_name):
    try:
        from spoke.lib.dhcp import SpokeDHCPHost
        host = SpokeDHCPHost(dhcp_server, dhcp_group)
        result = host.delete(host_name)
    except error.SpokeError as e:
        result = common.handle_error(e)
    return result
Exemple #8
0
def reservation_delete(dhcp_server, dhcp_group, host_name):
    try:
        from spoke.lib.dhcp import SpokeDHCPHost
        host = SpokeDHCPHost(dhcp_server, dhcp_group)
        result = host.delete(host_name)
    except error.SpokeError as e:
        result = common.handle_error(e)
    return result
Exemple #9
0
 def setUp(self):
     server = SpokeDHCPServer()
     server.create(self.dhcp_server)
     dhcp = SpokeDHCPService()
     dhcp.create(self.dhcp_server)
     group = SpokeDHCPGroup(self.dhcp_server)
     group.create(self.dhcp_group)
     host = SpokeDHCPHost(self.dhcp_server, self.dhcp_group)
     host.create(self.dhcp_host)
Exemple #10
0
 def tearDown(self):
     host = SpokeDHCPHost(self.dhcp_server, self.dhcp_group)
     host.delete(self.dhcp_host)
     group = SpokeDHCPGroup(self.dhcp_server)
     group.delete(self.dhcp_group)
     dhcp = SpokeDHCPService()
     dhcp.delete(self.dhcp_server)
     server = SpokeDHCPServer()
     server.delete(self.dhcp_server)
Exemple #11
0
 def setUp(self):
     server = SpokeDHCPServer()
     server.create(self.dhcp_server)
     dhcp = SpokeDHCPService()
     dhcp.create(self.dhcp_server)
     group = SpokeDHCPGroup(self.dhcp_server)
     group.create(self.dhcp_group)
     host = SpokeDHCPHost(self.dhcp_server, self.dhcp_group)
     host.create(self.dhcp_host)
Exemple #12
0
 def tearDown(self):
     host = SpokeDHCPHost(self.dhcp_server, self.dhcp_group)
     host.delete(self.dhcp_host)
     group = SpokeDHCPGroup(self.dhcp_server)
     group.delete(self.dhcp_group)
     dhcp = SpokeDHCPService()
     dhcp.delete(self.dhcp_server)
     server = SpokeDHCPServer()
     server.delete(self.dhcp_server)
Exemple #13
0
 def test_create_dhcp_host(self):
     """Create DHCP host; return results object."""
     dhcp_host = "testcreatehost"
     host = SpokeDHCPHost(self.dhcp_server, self.dhcp_group)
     result = host.create(dhcp_host)["data"]
     service_name = self.dhcp_server + self.dhcp_conf_suffix
     group_base_dn = "cn=%s,cn=%s,%s" % (self.dhcp_group, service_name, self.base_dn)
     dn = "cn=%s,%s" % (dhcp_host, group_base_dn)
     dn_info = {"objectClass": ["top", self.dhcp_host_class, self.dhcp_options_class], "cn": [dhcp_host]}
     expected_result = [(dn, dn_info)]
     self.assertEqual(result, expected_result)
     host.delete(dhcp_host)
Exemple #14
0
def reservation_delete(host_name, dhcp_server=None, dhcp_group=None):
    try:
        conf = _spoke_config(_salt_config('config'))
        if not dhcp_server:
            dhcp_server = conf.get('DHCP', 'dhcp_def_server')
        if not dhcp_group:
            dhcp_group = conf.get('DHCP', 'dhcp_def_group')
        from spoke.lib.dhcp import SpokeDHCPHost
        host = SpokeDHCPHost(dhcp_server, dhcp_group)
        result = host.delete(host_name)
    except error.SpokeError as e:
        result = common.handle_error(e)
    return result
Exemple #15
0
 def test_create_dhcp_host(self):
     """Create DHCP host; return results object."""
     dhcp_host = 'testcreatehost'
     host = SpokeDHCPHost(self.dhcp_server, self.dhcp_group)
     result = host.create(dhcp_host)['data']
     service_name = self.dhcp_server + self.dhcp_conf_suffix
     group_base_dn = 'cn=%s,cn=%s,%s' % (self.dhcp_group, service_name,
                                         self.base_dn)
     dn = 'cn=%s,%s' % (dhcp_host, group_base_dn)
     dn_info = {'objectClass': ['top', self.dhcp_host_class,
                                self.dhcp_options_class],
                'cn': [dhcp_host]}
     expected_result = [(dn, dn_info)]
     self.assertEqual(result, expected_result)
     host.delete(dhcp_host)
Exemple #16
0
def reservation_create(dhcp_server, dhcp_group, host_name, mac, ip):
    try:
        from spoke.lib.dhcp import SpokeDHCPHost
        from spoke.lib.dhcp import SpokeDHCPAttr
        host = SpokeDHCPHost(dhcp_server, dhcp_group)
        try:
            host.create(host_name)
        except error.AlreadyExists:
            pass
        attr = SpokeDHCPAttr(dhcp_server, dhcp_group, host_name)
        attr.create("dhcpHWAddress", "ethernet %s" % mac)
        attr.create("dhcpStatements", "fixed-address %s" % ip)
        attr.create("dhcpOption", "host-name \"%s\"" % host_name)
        result = host.get(host_name)
    except error.SpokeError as e:
        result = common.handle_error(e)
    return result
Exemple #17
0
 def test_create_dhcp_host(self):
     """Create DHCP host; return results object."""
     dhcp_host = 'testcreatehost'
     host = SpokeDHCPHost(self.dhcp_server, self.dhcp_group)
     result = host.create(dhcp_host)['data']
     service_name = self.dhcp_server + self.dhcp_conf_suffix
     group_base_dn = 'cn=%s,cn=%s,%s' % (self.dhcp_group, service_name,
                                         self.base_dn)
     dn = 'cn=%s,%s' % (dhcp_host, group_base_dn)
     dn_info = {
         'objectClass':
         ['top', self.dhcp_host_class, self.dhcp_options_class],
         'cn': [dhcp_host]
     }
     expected_result = [(dn, dn_info)]
     self.assertEqual(result, expected_result)
     host.delete(dhcp_host)
Exemple #18
0
def reservation_create(dhcp_server, dhcp_group, host_name, mac,  ip):
    try:
        from spoke.lib.dhcp import SpokeDHCPHost
        from spoke.lib.dhcp import SpokeDHCPAttr
        host = SpokeDHCPHost(dhcp_server, dhcp_group)
        try:
            host.create(host_name)
        except error.AlreadyExists:
            pass
        attr = SpokeDHCPAttr(dhcp_server, dhcp_group, host_name)
        attr.create("dhcpHWAddress", "ethernet %s" % mac )
        attr.create("dhcpStatements", "fixed-address %s" %ip )
        attr.create("dhcpOption", "host-name \"%s\"" %host_name )
        result = host.get(host_name)
    except error.SpokeError as e:
        result = common.handle_error(e)
    return result
Exemple #19
0
 def test_create_dhcp_host_twice(self):
     """Create DHCP host twice; raise AlreadyExists."""
     dhcp_host = 'testcreatehosttwice'
     host = SpokeDHCPHost(self.dhcp_server, self.dhcp_group)
     host.create(dhcp_host)
     self.assertRaises(error.AlreadyExists, host.create, dhcp_host)
     host.delete(dhcp_host)
Exemple #20
0
def reservation_create(host_name, mac, ip, dhcp_server=None, dhcp_group=None):
    try:
        conf = _spoke_config(_salt_config('config'))
        if not dhcp_server:
            dhcp_server = conf.get('DHCP', 'dhcp_def_server')
        if not dhcp_group:
            dhcp_group = conf.get('DHCP', 'dhcp_def_group')
        from spoke.lib.dhcp import SpokeDHCPHost
        from spoke.lib.dhcp import SpokeDHCPAttr
        host = SpokeDHCPHost(dhcp_server, dhcp_group)
        try:
            host.create(host_name)
        except error.AlreadyExists:
            pass
        attr = SpokeDHCPAttr(dhcp_server, dhcp_group, host_name)
        attr.create("dhcpHWAddress", "ethernet %s" % mac)
        attr.create("dhcpStatements", "fixed-address %s" % ip)
        attr.create("dhcpOption", "host-name \"%s\"" % host_name)
        result = host.get(host_name)
    except error.SpokeError as e:
        result = common.handle_error(e)
    return result
Exemple #21
0
 def test_delete_dhcp_group_before_hosts(self):
     """Delete DHCP group while hosts present, raise SaveTheBabies."""
     dhcp_host = 'testdeletebeforehost'
     host = SpokeDHCPHost(self.dhcp_server, self.dhcp_group)
     host.create(dhcp_host)
     group = SpokeDHCPGroup(self.dhcp_server)
     self.assertRaises(error.SaveTheBabies, group.delete, self.dhcp_group)
     host.delete(dhcp_host)
Exemple #22
0
import spoke.lib.config as config
import spoke.lib.logger as logger
import spoke.lib.mc_helper as mc
from spoke.lib.dhcp import SpokeDHCPHost, SpokeDHCPAttr

config_file = '/usr/local/pkg/spoke/etc/spoke.conf'
config = config.setup(config_file)

if __name__ == '__main__':
    log = logger.setup('main', verbose=False, quiet=True)
    mc = mc.MCollectiveAction()
    request = mc.request()
    try:
        server = config.get('DHCP', 'dhcp_def_server')
        group = config.get('DHCP', 'dhcp_def_group')
        host = SpokeDHCPHost(server, group)
    except Exception as e:
        mc.fail(e)

    if request['action'] != 'search':
        try:
            hostname = request['data']['hostname']
        except KeyError:
            mc.fail("Missing input hostname", 2)

    if request['action'] == 'create':
        try:
            mac = request['data']['mac']
            ip = request['data']['ip']
            try:
                mc.info('Creating host %s' % hostname)
Exemple #23
0
import spoke.lib.config as config
import spoke.lib.logger as logger
import spoke.lib.mc_helper as mc
from spoke.lib.dhcp import SpokeDHCPHost, SpokeDHCPAttr
        
config_file = '/usr/local/pkg/spoke/etc/spoke.conf'
config = config.setup(config_file)
    
if __name__ == '__main__':
    log = logger.setup('main', verbose=False, quiet=True)
    mc = mc.MCollectiveAction()
    request = mc.request()
    try:
        server = config.get('DHCP', 'dhcp_def_server')
        group   = config.get('DHCP', 'dhcp_def_group')
        host = SpokeDHCPHost(server, group)
    except Exception as e:
        mc.fail(e)

    if request['action'] != 'search':
        try:
            hostname = request['data']['hostname']
        except KeyError:
            mc.fail("Missing input hostname", 2)
            
    if request['action'] == 'create':
        try:
            mac = request['data']['mac']
            ip = request['data']['ip']
            try:
                mc.info('Creating host %s' % hostname)
Exemple #24
0
 def test_create_dhcp_host_with_same_name_as_server(self):
     """Create DHCP host with same name as server; raise InputError."""
     dhcp_host = self.dhcp_server
     host = SpokeDHCPHost(self.dhcp_server, self.dhcp_group)
     self.assertRaises(error.InputError, host.create, dhcp_host)
Exemple #25
0
 def test_delete_dhcp_host(self):
     """Delete DHCP host, return True."""
     dhcp_host = "testdeletehost"
     host = SpokeDHCPHost(self.dhcp_server, self.dhcp_group)
     host.create(dhcp_host)
     self.assertTrue(host.delete(dhcp_host))
Exemple #26
0
 def test_delete_dhcp_host(self):
     """Delete DHCP host, return True."""
     dhcp_host = 'testdeletehost'
     host = SpokeDHCPHost(self.dhcp_server, self.dhcp_group)
     host.create(dhcp_host)
     self.assertTrue(host.delete(dhcp_host))
Exemple #27
0
 def test_delete_missing_dhcp_host(self):
     """Delete missing DHCP host; raise NotFound."""
     dhcp_host = 'testdeletemissing.dhcp.host.local'
     host = SpokeDHCPHost(self.dhcp_server, self.dhcp_group)
     self.assertRaises(error.NotFound, host.delete, dhcp_host)