簡介

覺得就是 mockup 好的資料,存放在資料夾(./public-rackmount1/)中,然後把 RESTful Server 跑起來。這時後再透過 URL 去取得 Redfish 的資料。

官方有提供 PythonDocker 的方法,但 Python 還要另外裝,就決定用 Docker 來架設

開發

Clone Source Code

先把 Github 上的 Code Clone 下來

1
2
3
git clone https://github.com/DMTF/Redfish-Mockup-Server

cd Redfish-Mockup-Server

下載相對應的 Mockups

要先去 DMTF 提供的 sample mockups 在 DSP2043

解壓後就可以看到 DMTF 提供了相當多的 mockups

選擇想要 mockup 的內容貼入 ./Redfish-Mockup-Server/ 的資料夾中

Build Docker

確認 Dockerfile 的內容(./Dockerfile),並修改要 mockup 的資料夾新增路徑

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
FROM python:3-slim

# For healthcheck
RUN apt-get update && apt-get install curl -y

# Install python requirements
COPY requirements.txt /tmp/
RUN pip install --upgrade pip && \
pip install --no-cache-dir -r /tmp/requirements.txt

# Copy server files
COPY rfSsdpServer.py redfishMockupServer.py /usr/src/app/

# ------------↓ 要記得修改成要 mockup 的資料夾 ↓----------------
# ADD public-rackmount1 /usr/src/app/public-rackmount1
ADD public-pdu /usr/src/app/public-rackmount1
# ------------↑ 要記得修改成要 mockup 的資料夾 ↑----------------

# Env settings
EXPOSE 8000
HEALTHCHECK CMD curl --fail http://127.0.0.1:8000/redfish/v1 || exit 1
WORKDIR /usr/src/app
ENTRYPOINT ["python", "/usr/src/app/redfishMockupServer.py", "-H", "0.0.0.0"]

確認目前的路徑是在 ./Redfish-Mockup-Server/

1
docker build -t redfish-server .

Run Docker

把本機的 8000 Port 對應到 Docker Container 的 8000 Port

1
docker run -p 8000:8000 redfish-server

確認有看到 running Server…

透過 Mock Server 取得資料

確認可以透過 RESTful GET 去取得相關的資料

參考

Redfish-Mockup-Server
All Published Versions of DSP2043