Moved everything to one folder
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,2 +1,2 @@
|
||||
cont/code/__pycache__
|
||||
cont/code/venv
|
||||
cont/__pycache__
|
||||
cont/venv
|
||||
@@ -8,11 +8,15 @@ FROM alpine:latest
|
||||
|
||||
RUN apk update && \
|
||||
apk add python3 py3-pip su-exec curl && \
|
||||
mkdir -p /app/snmpython/
|
||||
mkdir -p /app/snmpython/ && \
|
||||
mkdir -p /app/snmpython/MIBs
|
||||
|
||||
WORKDIR /app/snmpython/
|
||||
|
||||
COPY ../code/someMain.py /app/snmpython/
|
||||
COPY ../code/main.py /app/snmpython/
|
||||
COPY ../code/funct.py /app/snmpython/
|
||||
COPY ../code/classes.py /app/snmpython/
|
||||
# COPY ../code/MIBs/ /app/snmpython/MIBs
|
||||
|
||||
# COPY ./entrypoint.sh /entrypoint.sh
|
||||
# RUN chmod +x /entrypoint.sh
|
||||
@@ -37,4 +41,4 @@ RUN python3 -m venv venv && \
|
||||
# HEALTHCHECK --interval=3s --timeout=3s --retries=3 \
|
||||
# CMD curl --fail http://127.0.0.1:8181/health || exit 1
|
||||
|
||||
CMD ["/app/snmpython/someMain.py"]
|
||||
CMD ["/app/snmpython/main.py"]
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
|
||||
services:
|
||||
mdfanchanger:
|
||||
container_name: snmpython-dev
|
||||
user: 1600:1600
|
||||
image: shupotea/yuruc3/snmpython:dev
|
||||
build:
|
||||
dockerfile: ./Dockerfile
|
||||
environment:
|
||||
- INFLUXTOKEN: "12345678"
|
||||
- INFLUXHOST: ""
|
||||
|
||||
|
||||
- HOST_LIST: ["192.168.0.1", "192.168.0.1", "192.168.0.1", "192.168.0.1"]
|
||||
restart: unless-stopped
|
||||
17
cont/docker-compose.dev.yaml
Normal file
17
cont/docker-compose.dev.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
|
||||
services:
|
||||
mdfanchanger:
|
||||
container_name: snmpython-dev
|
||||
user: 1600:1600
|
||||
image: shupotea/yuruc3/snmpython:dev
|
||||
build:
|
||||
dockerfile: ./Dockerfile
|
||||
environment:
|
||||
- INFLUXTOKEN=12345678
|
||||
- INFLUXHOST=123
|
||||
|
||||
- HOST_LIST="["192.168.0.1", "192.168.0.1", "192.168.0.1", "192.168.0.1"]"
|
||||
# restart: unless-stopped
|
||||
restart: never
|
||||
|
||||
@@ -12,50 +12,15 @@ SNMPUSER: Final[str] = os.getenv("SNMPUSER", None)
|
||||
SNMPPRIVKEY: Final[str] = os.getenv("SNMPPRIVKEY", None)
|
||||
SNMPAUTHKEY: Final[str] = os.getenv("SNMPAUTHKEY", None)
|
||||
|
||||
SNMPAUTHPROTO: Final[str] = os.getenv("SNMPAUTHPROTO", "SHA")
|
||||
SNMPPRIVPROTO: Final[str] = os.getenv("SNMPPRIVPROTO", "SHA")
|
||||
# Right now I'll only use SHA
|
||||
# SNMPAUTHPROTO: Final[str] = os.getenv("SNMPAUTHPROTO", "SHA")
|
||||
# SNMPPRIVPROTO: Final[str] = os.getenv("SNMPPRIVPROTO", "SHA")
|
||||
SNMPORT: Final[int] = os.getenv("SNMPORT", 161)
|
||||
|
||||
# Flightchecks-------------------------------------------
|
||||
|
||||
if SNMPAUTHPROTO and SNMPPRIVPROTO == "SHA":
|
||||
USMDATA = UsmUserData(
|
||||
userName=SNMPUSER,
|
||||
authKey=SNMPPRIVKEY,
|
||||
privKey=SNMPAUTHKEY,
|
||||
authProtocol=usmHMACSHAAuthProtocol,
|
||||
privProtocol=usmHMACSHAAuthProtocol,
|
||||
)
|
||||
elif SNMPAUTHPROTO and SNMPPRIVPROTO == "AES128":
|
||||
USMDATA = UsmUserData(
|
||||
userName=SNMPUSER,
|
||||
authKey=SNMPPRIVKEY,
|
||||
privKey=SNMPAUTHKEY,
|
||||
authProtocol=usmAesCfb128Protocol,
|
||||
privProtocol=usmAesCfb128Protocol,
|
||||
)
|
||||
elif SNMPAUTHPROTO == "SHA" and SNMPPRIVPROTO == "AES128":
|
||||
USMDATA = UsmUserData(
|
||||
userName=SNMPUSER,
|
||||
authKey=SNMPPRIVKEY,
|
||||
privKey=SNMPAUTHKEY,
|
||||
authProtocol=usmHMACSHAAuthProtocol,
|
||||
privProtocol=usmAesCfb128Protocol,
|
||||
)
|
||||
elif SNMPAUTHPROTO == "AES128" and SNMPPRIVPROTO == "SHA":
|
||||
USMDATA = UsmUserData(
|
||||
userName=SNMPUSER,
|
||||
authKey=SNMPPRIVKEY,
|
||||
privKey=SNMPAUTHKEY,
|
||||
authProtocol=usmAesCfb128Protocol,
|
||||
privProtocol=usmHMACSHAAuthProtocol,
|
||||
)
|
||||
else:
|
||||
raise Exception(f"No PrivAuth option like {SNMPPRIVPROTO}")
|
||||
|
||||
# Helper functions
|
||||
def wattageCalc(amperageInp: float, voltageInp: float) -> float:
|
||||
return amperageInp * voltageInp
|
||||
# Check if SNMP ENV are empty
|
||||
if not SNMPUSER or not SNMPPRIVKEY or not SNMPAUTHKEY:
|
||||
raise Exception("No SNMP user or/and PrivAuth passed")
|
||||
|
||||
# Check if some neccesary ENVs are passed
|
||||
if not USEINFLUX and not USESQL:
|
||||
@@ -80,6 +45,9 @@ for host in HOST_LIST:
|
||||
import asyncio
|
||||
from pysnmp.hlapi.v3arch.asyncio import *
|
||||
|
||||
# Helper functions
|
||||
def wattageCalc(amperageInp: float, voltageInp: float) -> float:
|
||||
return amperageInp * voltageInp
|
||||
|
||||
async def poolRemote(remoteIP: str):
|
||||
snmpEngine = SnmpEngine()
|
||||
Reference in New Issue
Block a user