Source code for supervisor_pydantic.config.inet_http_server
from typing import Optional
from pydantic import Field, SecretStr, field_serializer
from .base import HostPort, UnixUserName, _BaseCfgModel
__all__ = ("InetHttpServerConfiguration",)
[docs]
class InetHttpServerConfiguration(_BaseCfgModel):
[docs]
def to_cfg(self) -> str:
ret = "[inet_http_server]"
if self.port:
ret += f"\nport={self.port}"
if self.username:
ret += f"\nusername={self.username}"
if self.password:
ret += f"\npassword={self.password.get_secret_value()}"
return ret.strip() + "\n"
port: Optional[HostPort] = Field(
default=None,
description="A TCP host:port value or (e.g. 127.0.0.1:9001) on which supervisor will listen for HTTP/XML-RPC requests. supervisorctl will use XML-RPC to communicate with supervisord over this port. To listen on all interfaces in the machine, use :9001 or *:9001. Please read the security warning above.",
)
username: Optional[UnixUserName] = Field(default=None, description="The username required for authentication to this HTTP server.")
password: Optional[SecretStr] = Field(
default=None,
description="he password required for authentication to this HTTP server. This can be a cleartext password, or can be specified as a SHA-1 hash if prefixed by the string {SHA}. For example, {SHA}82ab876d1387bfafe46cc1c8a2ef074eae50cb1d is the SHA-stored version of the password “thepassword”. Note that hashed password must be in hex format.",
)
@field_serializer("password", when_used="json")
def _dump_password(self, v):
return v.get_secret_value() if v else None