Browse Source

Fix registrating ZTE ONU

devel
bashmak 8 years ago
parent
commit
e31470aab0
  1. 9
      devapp/dev_types.py
  2. 3
      devapp/models.py
  3. 2
      devapp/templates/devapp/custom_dev_page/olt_ztec320_units_uncfg.html
  4. 2
      devapp/urls.py
  5. 2
      devapp/views.py
  6. 4
      djing/lib/tln/tln.py

9
devapp/dev_types.py

@ -422,8 +422,7 @@ class Olt_ZTE_C320(OLTDevice):
'firmware_ver': frm_ver,
'loid_passw': loid_passw,
'loid': loid,
'sn': sn,
'extra_snmp': '%d.%d' % (fiber_num, int(num))
'sn': sn
} for frm_ver, loid_passw, loid, (sn, num) in zip(
firmware_ver, loid_passws, loids, sn_num_list
))
@ -526,7 +525,11 @@ class ZteOnuDevice(OnuDevice):
if login is None or password is None:
raise DeviceConfigurationError('For ZTE configuration needed login and'
' password for telnet access in extra_data')
register_onu_ZTE_F660(
stack_num, rack_num, fiber_num, new_onu_port_num = register_onu_ZTE_F660(
olt_ip=ip, onu_sn=sn, login_passwd=(login.encode(), password.encode()),
onu_mac=mac
)
bin_snmp_fiber_number = "10000{0:08b}{1:08b}00000000".format(rack_num, fiber_num)
snmp_fiber_num = int(bin_snmp_fiber_number, base=2)
device.snmp_extra = "%d.%d" % (snmp_fiber_num, new_onu_port_num)
device.save(update_fields=('snmp_extra',))

3
devapp/models.py

@ -96,7 +96,8 @@ class Device(models.Model):
return "%s: (%s) %s %s" % (self.comment, self.get_devtype_display(), self.ip_address or '', self.mac_addr or '')
def update_dhcp(self, remove=False):
if self.devtype not in ('On', 'Dl'):
# FIXME: Remove static list of registrable device types
if self.devtype not in ('On', 'Dl', 'Zo'):
return
if self.group is None:
raise DeviceDBException(_('Device does not have a group, please fix that'))

2
devapp/templates/devapp/custom_dev_page/olt_ztec320_units_uncfg.html

@ -45,7 +45,7 @@
<td>{{ onu.loid_passw }}</td>
<td>{{ onu.loid }}</td>
<td>
<a href="{% url 'devapp:add' grp %}?t=Zo&pdev={{ dev.pk }}&c={{ onu.loid }}&n={{ onu.extra_snmp }}&mac={{ onu.mac }}" title="{% trans 'Create device' %}">
<a href="{% url 'devapp:add' grp %}?t=Zo&pdev={{ dev.pk }}&c={{ onu.loid }}&mac={{ onu.mac }}" title="{% trans 'Create device' %}">
<span class="glyphicon glyphicon-plus"></span>
</a>
</td>

2
devapp/urls.py

@ -20,7 +20,7 @@ urlpatterns = [
url(r'^(?P<group_id>\d+)/(?P<device_id>\d+)/ports/(?P<port_id>\d+)/show_subscriber_on_port$',
views.ShowSubscriberOnPort.as_view(), name='show_subscriber_on_port'),
url(r'^(\d+)/(?P<device_id>\d+)/ports_add/$', views.add_ports, name='add_ports'),
url(r'^(\d+)/(?P<device_id>\d+)/regster_device/$', views.regster_device, name='dev_register'),
url(r'^(\d+)/(?P<device_id>\d+)/register_device/$', views.register_device, name='dev_register'),
url(r'^(\d+)/(?P<device_id>\d+)/(?P<portid>\d+)_(?P<status>[0-1]{1})$', views.toggle_port, name='port_toggle'),
url(r'^(?P<group_id>\d+)/(?P<device_id>\d+)/(?P<portid>\d+)/del$', views.delete_single_port, name='del_port'),
url(r'^(?P<group_id>\d+)/(?P<device_id>\d+)/(?P<port_id>\d+)/edit$', views.edit_single_port, name='edit_port'),

2
devapp/views.py

@ -725,7 +725,7 @@ class DevicesGetListView(global_base_views.SecureApiView):
@login_required
@json_view
def regster_device(request, device_id: str):
def register_device(request, device_id: str):
def format_msg(msg: str, icon: str):
return ' '.join((
'<span class="glyphicon glyphicon-%s"></span>' % icon,

4
djing/lib/tln/tln.py

@ -202,7 +202,7 @@ class OltZTERegister(TelnetApi):
@process_lock
def register_onu_ZTE_F660(olt_ip: str, onu_sn: bytes, login_passwd: Tuple[bytes, bytes], onu_mac: bytes):
def register_onu_ZTE_F660(olt_ip: str, onu_sn: bytes, login_passwd: Tuple[bytes, bytes], onu_mac: bytes) -> Tuple:
onu_type = b'ZTE-F660'
line_profile = b'ZTE-F660-LINE'
remote_profile = b'ZTE-F660-ROUTER'
@ -254,7 +254,7 @@ def register_onu_ZTE_F660(olt_ip: str, onu_sn: bytes, login_passwd: Tuple[bytes,
tn.apply_conf_to_onu(onu_mac, 145)
sleep(1)
return
return stack_num, rack_num, fiber_num, new_onu_port_num
if __name__ == '__main__':

Loading…
Cancel
Save