Moved everything to one folder
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,2 +1,2 @@
|
|||||||
cont/code/__pycache__
|
cont/__pycache__
|
||||||
cont/code/venv
|
cont/venv
|
||||||
@@ -8,11 +8,15 @@ FROM alpine:latest
|
|||||||
|
|
||||||
RUN apk update && \
|
RUN apk update && \
|
||||||
apk add python3 py3-pip su-exec curl && \
|
apk add python3 py3-pip su-exec curl && \
|
||||||
mkdir -p /app/snmpython/
|
mkdir -p /app/snmpython/ && \
|
||||||
|
mkdir -p /app/snmpython/MIBs
|
||||||
|
|
||||||
WORKDIR /app/snmpython/
|
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
|
# COPY ./entrypoint.sh /entrypoint.sh
|
||||||
# RUN chmod +x /entrypoint.sh
|
# RUN chmod +x /entrypoint.sh
|
||||||
@@ -37,4 +41,4 @@ RUN python3 -m venv venv && \
|
|||||||
# HEALTHCHECK --interval=3s --timeout=3s --retries=3 \
|
# HEALTHCHECK --interval=3s --timeout=3s --retries=3 \
|
||||||
# CMD curl --fail http://127.0.0.1:8181/health || exit 1
|
# 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,51 +12,16 @@ SNMPUSER: Final[str] = os.getenv("SNMPUSER", None)
|
|||||||
SNMPPRIVKEY: Final[str] = os.getenv("SNMPPRIVKEY", None)
|
SNMPPRIVKEY: Final[str] = os.getenv("SNMPPRIVKEY", None)
|
||||||
SNMPAUTHKEY: Final[str] = os.getenv("SNMPAUTHKEY", None)
|
SNMPAUTHKEY: Final[str] = os.getenv("SNMPAUTHKEY", None)
|
||||||
|
|
||||||
SNMPAUTHPROTO: Final[str] = os.getenv("SNMPAUTHPROTO", "SHA")
|
# Right now I'll only use SHA
|
||||||
SNMPPRIVPROTO: Final[str] = os.getenv("SNMPPRIVPROTO", "SHA")
|
# SNMPAUTHPROTO: Final[str] = os.getenv("SNMPAUTHPROTO", "SHA")
|
||||||
|
# SNMPPRIVPROTO: Final[str] = os.getenv("SNMPPRIVPROTO", "SHA")
|
||||||
SNMPORT: Final[int] = os.getenv("SNMPORT", 161)
|
SNMPORT: Final[int] = os.getenv("SNMPORT", 161)
|
||||||
|
|
||||||
# Flightchecks-------------------------------------------
|
# Flightchecks-------------------------------------------
|
||||||
|
# Check if SNMP ENV are empty
|
||||||
if SNMPAUTHPROTO and SNMPPRIVPROTO == "SHA":
|
if not SNMPUSER or not SNMPPRIVKEY or not SNMPAUTHKEY:
|
||||||
USMDATA = UsmUserData(
|
raise Exception("No SNMP user or/and PrivAuth passed")
|
||||||
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 some neccesary ENVs are passed
|
# Check if some neccesary ENVs are passed
|
||||||
if not USEINFLUX and not USESQL:
|
if not USEINFLUX and not USESQL:
|
||||||
raise Exception("No database selected to store the data")
|
raise Exception("No database selected to store the data")
|
||||||
@@ -80,6 +45,9 @@ for host in HOST_LIST:
|
|||||||
import asyncio
|
import asyncio
|
||||||
from pysnmp.hlapi.v3arch.asyncio import *
|
from pysnmp.hlapi.v3arch.asyncio import *
|
||||||
|
|
||||||
|
# Helper functions
|
||||||
|
def wattageCalc(amperageInp: float, voltageInp: float) -> float:
|
||||||
|
return amperageInp * voltageInp
|
||||||
|
|
||||||
async def poolRemote(remoteIP: str):
|
async def poolRemote(remoteIP: str):
|
||||||
snmpEngine = SnmpEngine()
|
snmpEngine = SnmpEngine()
|
||||||
Reference in New Issue
Block a user