From 971255a6fbdfd2dbce8a65e4a6a7b8f7dbec41e8 Mon Sep 17 00:00:00 2001 From: akdiki Date: Mon, 25 Nov 2024 05:34:59 +0000 Subject: [PATCH] Update README.md --- README.md | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 113 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e2582e6..3ae9bdc 100644 --- a/README.md +++ b/README.md @@ -1 +1,113 @@ -# HES Selenium +# 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. + +### Instalasi + +#### 1. Instalasi Python Dependencies + +Buat dan aktifkan virtual environment (opsional) untuk mengisolasi dependensi Python: + +```bash +python3 -m venv venv +source venv/bin/activate # untuk Mac/Linux +venv\Scripts\activate # untuk Windows +``` + +Instal dependensi Python yang diperlukan: + +```bash +pip install -r requirements.txt +``` + +#### 2. Instalasi Node.js Dependencies + +Masuk ke folder `nodejs_app` dan instal dependensi Node.js: + +```bash +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: + +```bash +cd HES_Selenium +node app.js +``` + +2. 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.