Update README.md
This commit is contained in:
parent
8b0ab2bd3a
commit
971255a6fb
114
README.md
114
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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user