API (v2) クラス/名前空間

Command Supported Notes
CLASSES すべてのクラス名を返します
NAMES Class または OID をサポート

BlueOnyx GUI の CODB データベースはオブジェクトストレージです。そこには「System」「Vsite」「User」「DnsRecord」など、特定のクラスに属するオブジェクトが格納されています。各オブジェクトは NameSpace を持つことができ、その中には特定機能向けの key/value 形式の設定データが保存されます。たとえば Vsite や User には「Email」「Disk」などの NameSpace があり、設定情報や状態情報が格納されます。

どのクラスが存在し、あるクラスがどの NameSpace を持つかは必ずしも直感的ではありません。そのため、CLASSES コマンドはすべてのクラス名を列挙し、NAMES コマンドは OID を指定すると、そのオブジェクトが持つ NameSpace 名を返します。

CLASSES:

既知のクラス名をすべて返します。

ローカル要求:

curl -k -s \
  -X POST https://127.0.0.1:9092/v2/cce \
  -d '
        {
            "cmd": "CLASSES",
            "user": "admin",
            "sessionid": "SESSION-ID"
        }
      ' \
  | jq

リモート要求:

curl -k -s \
  -X POST https://API-IP:9092/v2/cce \
  -H "Content-Type: application/json" \
  -H "X-Client-Secret: CLIENT-SECRET" \
  -d '
        {
            "cmd": "CLASSES",
            "token": "TOKEN"
        }
      ' \
  | jq

応答:

{
    "status": 201,
    "message": "GOODBYE",
    "data": {
        "DATA": [],
        "classes": [
            "pam_abl_settings",
            "FtpSite",
            "Vsite",
            "VsiteServices",
            "WebApplications",
            "EmailAlias",
            "CapabilityGroup",
            "VirtualHost",
            "SOL_Console",
            "SWUpdateServer",
            "ProtectedEmailAlias",
            "DnsSOA",
            "Network",
            "PHP",
            "Package",
            "UserServices",
            "MySQL",
            "Capabilities",
            "User",
            "Disk",
            "dnsbl",
            "DnsSlaveZone",
            "Schedule",
            "Subdomains",
            "ServiceQuota",
            "IPPoolingRange",
            "ActiveMonitor",
            "Shop",
            "WebApplicationsList",
            "DnsRecord",
            "Workgroup",
            "UserExtraServices",
            "System",
            "mx2",
            "Route"
        ]
    }
}

NAMES:

NAMES コマンドは、既存オブジェクトの Object ID(OID)を引数として必要とします。指定されたオブジェクトを調べ、そのオブジェクトが持つ NameSpace 名を返します。

ローカル要求:

curl -k -s \
  -X POST https://127.0.0.1:9092/v2/cce \
  -d '
        {
            "cmd": "NAMES 1",
            "user": "admin",
            "sessionid": "SESSION-ID"
        }
      ' \
  | jq

リモート要求:

curl -k -s \
  -X POST https://API-IP:9092/v2/cce \
  -H "Content-Type: application/json" \
  -H "X-Client-Secret: CLIENT-SECRET" \
  -d '
        {
            "cmd": "NAMES 1",
            "token": "TOKEN"
        }
      ' |jq

応答:

{
    "status": 201,
    "message": "GOODBYE",
    "data": {
        "DATA": [],
        "namespaces": [
            "Jailkit",
            "Remote",
            "mysql",
            "Vsite",
            "DesktopControl",
            "API",
            "SSH",
            "Compass_webapps",
            "PHP_mgmt",
            "Sitestats",
            "MYSQLUSERS_DEFAULTS",
            "Network",
            "Ftp",
            "TempTime",
            "SSL",
            "Nginx",
            "Telnet",
            "Support",
            "VsiteDefaults",
            "REDIRECT_DEFAULTS",
            "RAID",
            "Power",
            "Radicale",
            "yum",
            "Memory",
            "DNS",
            "UserDefaults",
            "DDNS",
            "SWUpdate",
            "Email",
            "Time",
            "Snmp",
            "Web",
            "subdomains"
        ]
    }
}