def __init__(self, con=None): self._con = con self._dns = DNS(self) self._dhcp = DHCP(self) self._ftp = PureFTP(self) self._network = Network(self) self._firewall = Firewall(self)
def create_dhcp_pool(options, vsm_obj, range, default_gateway): """ function to create dhcp ip pool @param options cli options to this script @param vsm_obj reference to vsm client object @param range dhcp ip range @param default_gateway default gateway @return True/False True - success False - error """ edge = Edge(vsm_obj, '4.0') edge_id = get_edge(vsm_obj) edge.id = edge_id dhcp_py_dict = { 'enabled': True, 'logging': { 'loglevel': 'info', 'enable': False }, 'ippools': [{ 'autoconfiguredns': True, 'defaultGateway': default_gateway, 'iprange': range, }], } dhcp_client = DHCP(edge) print("Creating dhcp ippool with range %s" % range) dhcp_schema_object = dhcp_client.get_schema_object(dhcp_py_dict) existing_dhcp_schema = dhcp_client.read() if existing_dhcp_schema and existing_dhcp_schema.ipPools: print "append dhcp ippool to existing list" dhcp_schema_object.ipPools = existing_dhcp_schema.ipPools + \ dhcp_schema_object.ipPools result = dhcp_client.create(dhcp_schema_object) if (result[0].response.status != 204): r_vars = vars(result[0]) print("Create IP Pool error: %s" % result[0].response.reason) print ', '.join("%s: %s" % item for item in r_vars.items()) return False return True
def create_dhcp_pool(options, vsm_obj, range, default_gateway): """ function to create dhcp ip pool @param options cli options to this script @param vsm_obj reference to vsm client object @param range dhcp ip range @param default_gateway default gateway @return True/False True - success False - error """ edge = Edge(vsm_obj, '4.0') edge_id = get_edge(vsm_obj) edge.id = edge_id dhcp_py_dict = { 'enabled': True, 'logging': {'loglevel': 'info', 'enable': False}, 'ippools': [ { 'autoconfiguredns': True, 'defaultGateway': default_gateway, 'iprange': range, } ], } dhcp_client = DHCP(edge) print("Creating dhcp ippool with range %s" % range) dhcp_schema_object = dhcp_client.get_schema_object(dhcp_py_dict) existing_dhcp_schema = dhcp_client.read() if existing_dhcp_schema and existing_dhcp_schema.ipPools: print "append dhcp ippool to existing list" dhcp_schema_object.ipPools = existing_dhcp_schema.ipPools + \ dhcp_schema_object.ipPools result = dhcp_client.create(dhcp_schema_object) if (result[0].response.status != 204): r_vars = vars(result[0]) print("Create IP Pool error: %s" % result[0].response.reason) print ', '.join("%s: %s" % item for item in r_vars.items()) return False return True
def _getFactoryEnabledClasses(self): return (("", "UCI", UCI()), ("", "DNS", DNS()), ("", "DHCP", DHCP()), ("", "PureFTP", PureFTP()), ("", "Network", Network()), ("", "Firewall", Firewall()), ("", "OpenWRTManager", OpenWRTManager()))
dhcp_py_dict = { 'enabled': True, 'logging': {'loglevel': 'info', 'enable': False}, 'ippools': [ { 'autoconfiguredns': True, 'defaultGateway': '192.168.0.3', 'domainname': 'eng.vmware.com', 'primarynameserver': '192.168.0.4', 'secondarynameserver': '4.2.2.4', 'leasetime': 360000, 'iprange': '192.168.0.10-192.168.0.20', } ], } dhcp_client = DHCP(edge_client) dhcp_schema_object = dhcp_client.get_schema_object(dhcp_py_dict) result_obj_1 = dhcp_client.create(dhcp_schema_object) print result_obj_1.status_code dhcp_schema = dhcp_client.read() dhcp_schema.print_object() #Append IPPool to DHCP ippool_py_dict = { 'autoconfiguredns': True, 'defaultGateway': '192.168.0.3', 'domainname': 'eng.vmware.com', 'primarynameserver': '192.168.0.4', 'secondarynameserver': '4.2.2.4', 'leasetime': 360000,
def request_emit(self, ip_address, server_ident, ident=None, xid=None): """ Send a DHCP Request but dont listen for a response """ if ident is None: # TODO: add support for local mac address raise NotImplementedError( "Cannot determine local active interface") request = DHCP(server=self.server, port=self.port) # Set all the required fields for DHCP request packet request.set_field_chaddr(ident) request.set_field_xid(xid) request.set_generic_field('op', value=1) request.set_generic_field('hlen', value=6) request.set_generic_field('htype', value=1) request.options.append(MessageTypeOption(type='DHCPREQUEST')) request.options.append(RequestIPOption(ip_address)) request.options.append(ServerIdentifierOption(server_ident)) request.send(wait_response=False) return request
def discover_emit(self, ident=None, xid=None): """ Send a DHCP Discover but dont listen for a response :param ident: Layer 2 address, default local active interface :param xid: random transaction identifier :return: DHCP discover response from server """ if ident is None: # TODO: add support for local mac address raise NotImplementedError( "Cannot determine local active interface") discover = DHCP(server=self.server, port=self.port) # Set all the required fields for a DHCP discover packet discover.set_field_chaddr(ident) discover.set_field_xid(xid) discover.set_generic_field('op', value=1) discover.set_generic_field('hlen', value=6) discover.set_generic_field('htype', value=1) discover.options.append(MessageTypeOption(type='DHCPDISCOVER')) discover.send(wait_response=False) return discover
def request_emit(self, ip_address, server_ident, ident=None, xid=None): """ Send a DHCP Request but dont listen for a response """ if ident is None: # TODO: add support for local mac address raise NotImplementedError("Cannot determine local active interface") request = DHCP(server=self.server, port=self.port) # Set all the required fields for DHCP request packet request.set_field_chaddr(ident) request.set_field_xid(xid) request.set_generic_field('op', value=1) request.set_generic_field('hlen', value=6) request.set_generic_field('htype', value=1) request.options.append(MessageTypeOption(type='DHCPREQUEST')) request.options.append(RequestIPOption(ip_address)) request.options.append(ServerIdentifierOption(server_ident)) request.send(wait_response=False) return request
def discover_emit(self, ident=None, xid=None): """ Send a DHCP Discover but dont listen for a response :param ident: Layer 2 address, default local active interface :param xid: random transaction identifier :return: DHCP discover response from server """ if ident is None: # TODO: add support for local mac address raise NotImplementedError("Cannot determine local active interface") discover = DHCP(server=self.server, port=self.port) # Set all the required fields for a DHCP discover packet discover.set_field_chaddr(ident) discover.set_field_xid(xid) discover.set_generic_field('op', value=1) discover.set_generic_field('hlen', value=6) discover.set_generic_field('htype', value=1) discover.options.append(MessageTypeOption(type='DHCPDISCOVER')) discover.send(wait_response=False) return discover