2024-11-18 12:07:23 +07:00
2024-11-18 12:07:23 +07:00
2024-11-25 05:36:42 +00:00
2024-11-18 12:07:23 +07:00

DCU IP Update Tool

Aplikasi ini digunakan untuk memperbarui IP pada perangkat Data Concentrator Unit (DCU) melalui antarmuka web dengan menggunakan Selenium, dan mengelola koneksi SSH untuk menghubungkan ke perangkat DCU.

Fitur Utama

  • Perbarui IP DCU: Mengubah IP pada perangkat DCU melalui browser web menggunakan Selenium.
  • SSH Tunnel: Menggunakan koneksi SSH untuk mengakses perangkat DCU secara remote.
  • Antarmuka Web: Dibangun dengan Node.js untuk mengelola proses update dan menampilkan data hasil update.
  • Kontrol Proses: Menyediakan kontrol mulai dan berhenti untuk proses update, serta pemantauan status proses secara real-time.

Struktur Direktori

/project-root
  ├── /bin/                # Virtual environment
  ├── /update_dcu_by_nodejs.py  # Skrip Python untuk update DCU IP
  ├── /nodejs_app/         # Aplikasi Node.js untuk menjalankan dan mengelola proses
      ├── /public/         # HTML, CSS, dan file statis
      ├── /routes/          # Routing untuk API Node.js
      ├── app.js            # Server utama aplikasi Node.js
      └── package.json      # Dependencies untuk Node.js

Prasyarat

  1. Python 3.x: Pastikan Python 3.x sudah terinstal di sistem Anda.
  2. Node.js & npm: Pastikan Node.js dan npm sudah terinstal untuk menjalankan aplikasi web.
  3. Google Chrome: Diperlukan untuk Selenium WebDriver, pastikan Chrome sudah terinstal.
  4. ChromeDriver: Unduh dan sesuaikan path ke ChromeDriver untuk versi Chrome Anda.
  5. Virtual Environment (Opsional): Anda dapat membuat dan mengaktifkan virtual environment untuk Python.
  6. **Update informasi username dan Password SSH dan Web HES **: Anda dapat membuat dan mengaktifkan virtual environment untuk Python.

Instalasi

1. Instalasi Python Dependencies

Buat dan aktifkan virtual environment (opsional) untuk mengisolasi dependensi Python:

python3 -m venv venv
source venv/bin/activate  # untuk Mac/Linux
venv\Scripts\activate     # untuk Windows

Instal dependensi Python yang diperlukan:

pip install -r requirements.txt

2. Instalasi Node.js Dependencies

Masuk ke folder nodejs_app dan instal dependensi Node.js:

cd HES_Selenium
npm install

Penggunaan

Menjalankan Aplikasi Web

Aplikasi web dijalankan menggunakan Node.js dan bertanggung jawab untuk menerima permintaan dari frontend, menjalankan proses Python, dan mengontrol proses update IP DCU.

  1. Jalankan server Node.js dengan perintah berikut:
cd HES_Selenium
node app.js
  1. Aplikasi web akan tersedia di http://localhost:3000.

Menjalankan Proses Update DCU IP

  • Ketika Anda mengklik tombol Start, aplikasi akan memulai proses update IP pada perangkat DCU menggunakan Python, Selenium, dan SSH.
  • Inputkan daftar IP yang ingin diperbarui di kolom yang disediakan.
  • Proses update akan berjalan dengan SSH Tunnel menghubungkan ke perangkat DCU dan menggunakan Selenium untuk berinteraksi dengan antarmuka web perangkat tersebut.
  • Setelah proses selesai, hasilnya akan ditampilkan dalam bentuk tabel yang memperlihatkan status update untuk setiap IP.

Menghentikan Proses

  • Ketika Anda mengklik tombol Stop, aplikasi akan menampilkan konfirmasi untuk menghentikan proses yang sedang berjalan.
  • Jika proses berjalan, aplikasi akan mengirimkan perintah untuk menghentikan koneksi SSH dan menghentikan WebDriver (Selenium).

Struktur dan Penjelasan Fungsi

update_dcu_by_nodejs.py

Skrip Python yang berfungsi untuk memperbarui IP pada perangkat DCU menggunakan Selenium dan SSH Tunnel.

  • update_dcu_ip(updated_log, ip_list, processing_log): Fungsi utama untuk melakukan update IP pada perangkat DCU.
  • create_ssh_tunnel(dcu_ip, ssh_user, ssh_host, ssh_port, ssh_password, log_file): Membuat koneksi SSH untuk mengakses perangkat DCU.
  • log_processing(message, log_file): Fungsi untuk mencatat log proses.

app.js (Node.js)

Aplikasi Node.js yang mengelola endpoint HTTP untuk memulai dan menghentikan proses.

  • POST /run-script: Menjalankan skrip Python untuk memperbarui IP pada perangkat DCU.
  • POST /stop-script: Menghentikan proses yang berjalan, baik Selenium maupun SSH tunnel. (MASIH PERLU PENGEMBANGAN!!!)

Menyimpan Hasil Proses

Setelah proses update selesai, hasilnya akan disimpan dalam dua file log:

  • update_log.csv: Berisi hasil dari update IP yang sukses.
  • processing_log.txt: Berisi log rinci dari proses yang berjalan, termasuk kesalahan dan waktu pemrosesan.

Debugging dan Masalah Umum

  • Proses SSH tidak berhenti: Jika SSH tunnel tidak berhasil dihentikan, pastikan Anda menggunakan metode terminate() atau kill yang tepat pada objek pexpect.spawn. Anda bisa menggunakan psutil untuk menghentikan proses dengan lebih handal.
  • Selenium tidak bisa memuat halaman: Pastikan ChromeDriver yang sesuai dengan versi Chrome Anda sudah terinstal dan path-nya sudah benar.
Description
No description provided
Readme 54 MiB
Languages
Python 98%
C 0.9%
C++ 0.7%
Cython 0.2%