Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
 def _getFactoryEnabledClasses(self):
     return (("", "UCI", UCI()), ("", "DNS", DNS()), ("", "DHCP", DHCP()), ("", "PureFTP", PureFTP()),
             ("", "Network", Network()), ("", "Firewall", Firewall()), ("", "OpenWRTManager", OpenWRTManager()))
Ejemplo n.º 5
0
    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,
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
0
    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
Ejemplo n.º 8
0
    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
Ejemplo n.º 9
0
    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