System Management

GET Method

System Information

To fetch the complete system information, execute a GET request in the following format:

curl --unix-socket /run/photon-mgmt/mgmt.sock --request GET http://localhost/api/v1/system/describe

Example:

curl --unix-socket /run/photon-mgmt/mgmt.sock --request GET http://localhost/api/v1/system/describe | jq	% Total % Received % Xferd Average Speed Time Time Time Current	Dload Upload Total Spent Left Speed	100 5588 0 5588 0 0 42133 0 --:--:-- --:--:-- --:--:-- 42015

CPU Information

To fetch information related to CPU, execute a GET request in the following format:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/cpuinfo

Example:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/cpuinfo

Disk Usage Details

To fetch the usage details of the disk, execute a GET request in the following format:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/diskusage

Example:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/diskusage

Response:

{
   "success":true,
   "message":{
      "path":"/",
      "fstype":"ext2/ext3",
      "total":269474643968,
      "free":241944858624,
      "used":13769904128,
      "usedPercent":5.3848686637440935,
      "inodesTotal":16777216,
      "inodesUsed":101362,
      "inodesFree":16675854,
      "inodesUsedPercent":0.6041646003723145
   },
   "errors":""
}

Platform & kernel version details

To fetch the details about the platform and kernel versions on which the system is installed:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/version

Example:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/version

Response:

{
   "success":true,
   "message":{
      "hostname":"photon-4",
      "uptime":10168492,
      "bootTime":1627041016,
      "procs":475,
      "os":"linux",
      "platform":"photon",
      "platformFamily":"",
      "platformVersion":"4.0",
      "kernelVersion":"5.10.46-2.ph4",
      "kernelArch":"x86_64",
      "virtualizationSystem":"",
      "virtualizationRole":"",
      "hostId":"25a54d56-2249-524d-1355-e97b24e3415a"
   },
   "errors":""
}

Miscellaneous Hardware Details

To fetch miscellaneous harware details, execute a GET request in the following format:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/misc

Example:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/misc

Response:

{
   "success":true,
   "message":{
      "175":"agpgart",
      "183":"hw_random",
      "228":"hpet",
      "229":"fuse",
      "231":"snapshot",
      "235":"autofs",
      "237":"loop-control",
      "60":"vsock",
      "61":"vmci",
      "62":"cpu_dma_latency",
      "63":"vga_arbiter"
   },
   "errors":""
}

User Details

To fetch the user details, execute a GET request in the following format:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/userstat

Example:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/userstat

Virtual Memory Details

To fetch the details of the virtual memory, execute a GET request in the following format:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/virtualmemory

Example:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/virtualmemory

Response:

{
   "success":true,
   "message":{
      "total":16810287104,
      "available":15859195904,
      "used":519139328,
      "usedPercent":3.0882240427438687,
      "free":9925554176,
      "active":4017090560,
      "inactive":2234974208,
      "wired":0,
      "laundry":0,
      "buffers":171372544,
      "cached":6194221056,
      "writeBack":0,
      "dirty":0,
      "writeBackTmp":0,
      "shared":9539584,
      "slab":440422400,
      "sreclaimable":370315264,
      "sunreclaim":70107136,
      "pageTables":6144000,
      "swapCached":0,
      "commitLimit":8405143552,
      "committedAS":1310273536,
      "highTotal":0,
      "highFree":0,
      "lowTotal":0,
      "lowFree":0,
      "swapTotal":0,
      "swapFree":0,
      "mapped":126369792,
      "vmallocTotal":35184372087808,
      "vmallocUsed":46546944,
      "vmallocChunk":0,
      "hugePagesTotal":0,
      "hugePagesFree":0,
      "hugePageSize":2097152
   },
   "errors":""
}

Kernel Module Details

To fetch the details about the kernel module, execute a GET request in the following format:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/modules

Example:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/modules

Network ARP Details

To fetch the network ARP details, execute a GET request in the following format:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/net/arp

Example:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/net/arp

Response:

{
   "success":true,
   "message":[
      {
         "IPAddress":"",
         "HWType":"",
         "Flags":"",
         "HWAddress":"",
         "Mask":"",
         "Device":""
      },
      {
         "IPAddress":"10.197.103.253",
         "HWType":"0x1",
         "Flags":"0x2",
         "HWAddress":"00:00:0c:9f:f4:28",
         "Mask":"*",
         "Device":"eth0"
      },
      {
         "IPAddress":"10.197.103.162",
         "HWType":"0x1",
         "Flags":"0x2",
         "HWAddress":"00:0c:29:b1:e6:16",
         "Mask":"*",
         "Device":"eth0"
      },
      {
         "IPAddress":"10.197.103.251",
         "HWType":"0x1",
         "Flags":"0x2",
         "HWAddress":"00:35:1a:9d:b8:e3",
         "Mask":"*",
         "Device":"eth0"
      },
      {
         "IPAddress":"10.197.103.174",
         "HWType":"0x1",
         "Flags":"0x2",
         "HWAddress":"00:0c:29:d3:c7:00",
         "Mask":"*",
         "Device":"eth0"
      },
      {
         "IPAddress":"10.197.103.252",
         "HWType":"0x1",
         "Flags":"0x2",
         "HWAddress":"00:f2:8b:e1:b0:13",
         "Mask":"*",
         "Device":"eth0"
      },
      {
         "IPAddress":"10.197.103.91",
         "HWType":"0x1",
         "Flags":"0x2",
         "HWAddress":"00:0c:29:41:07:8b",
         "Mask":"*",
         "Device":"eth0"
      }
   ],
   "errors":""
}

Partition Details

To fetch the partition details, execute a GET request in the following format:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/partitions

Example:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/partitions

Platform Details

To fetch the details of the platform on which the system is installed, execute a GET request in the following format:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/platform

Example:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/platform

Respose:

{
   "success":true,
   "message":{
      "Platform":"photon",
      "Family":"",
      "Version":"4.0"
   },
   "errors":""
} 

Swap Memory Details

To fetch the swap memory details, execute a GET request in the following format:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/swapmemory

Example:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/swapmemory

Response:

{
   "success":true,
   "message":{
      "total":0,
      "used":0,
      "free":0,
      "usedPercent":0,
      "sin":0,
      "sout":0,
      "pgIn":0,
      "pgOut":0,
      "pgFault":0,
      "pgMajFault":0
   },
   "errors":""
}

Input/Output Details of all Disk Partitions

To fetch the input/output (read/write) details of all the disk partition, execute a GET request in the following format:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/iocounters

Example:

curl --unix-socket /run/photon-mgmt/mgmt.sock http://localhost/api/v1/proc/iocounters

Response:

{
   "success":true,
   "message":{
      "loop0":{
         "readCount":16407,
         "mergedReadCount":0,
         "writeCount":0,
         "mergedWriteCount":0,
         "readBytes":3999833088,
         "writeBytes":0,
         "readTime":6294,
         "writeTime":0,
         "iopsInProgress":0,
         "ioTime":9088,
         "weightedIO":6294,
         "name":"loop0",
         "serialNumber":"",
         "label":""
      },
      "sda":{
         "readCount":85357,
         "mergedReadCount":13672,
         "writeCount":212568,
         "mergedWriteCount":783168,
         "readBytes":5029398016,
         "writeBytes":44981511680,
         "readTime":54628,
         "writeTime":17939082,
         "iopsInProgress":0,
         "ioTime":301572,
         "weightedIO":17993710,
         "name":"sda",
         "serialNumber":"",
         "label":""
      },
      "sda1":{
         "readCount":351,
         "mergedReadCount":0,
         "writeCount":0,
         "mergedWriteCount":0,
         "readBytes":1437696,
         "writeBytes":0,
         "readTime":33,
         "writeTime":0,
         "iopsInProgress":0,
         "ioTime":152,
         "weightedIO":33,
         "name":"sda1",
         "serialNumber":"",
         "label":""
      },
      "sda2":{
         "readCount":128,
         "mergedReadCount":23,
         "writeCount":1,
         "mergedWriteCount":0,
         "readBytes":916480,
         "writeBytes":512,
         "readTime":38,
         "writeTime":0,
         "iopsInProgress":0,
         "ioTime":56,
         "weightedIO":38,
         "name":"sda2",
         "serialNumber":"",
         "label":""
      },
      "sda3":{
         "readCount":84806,
         "mergedReadCount":13649,
         "writeCount":212567,
         "mergedWriteCount":783168,
         "readBytes":5025352192,
         "writeBytes":44981511168,
         "readTime":54540,
         "writeTime":17939082,
         "iopsInProgress":0,
         "ioTime":301444,
         "weightedIO":17993623,
         "name":"sda3",
         "serialNumber":"",
         "label":""
      },
      "sr0":{
         "readCount":7,
         "mergedReadCount":0,
         "writeCount":0,
         "mergedWriteCount":0,
         "readBytes":1024,
         "writeBytes":0,
         "readTime":0,
         "writeTime":0,
         "iopsInProgress":0,
         "ioTime":12,
         "weightedIO":0,
         "name":"sr0",
         "serialNumber":"",
         "label":""
      }
   },
   "errors":""
}

sysctl Configuration Details Using pmctl Tool

You can use the pmctl tool to fetch the sysctl configuration details. The following section lists the commands related to various use cases of sysctl configuration.

sysctl Configuration Details

To fetch all the sysctl configuration details in the system, use the following command in the pmctl tool:

pmctl status sysctl

Specific Variable Configuration in sysctl

To fetch a specific variable configuration in the sysctl configuration, use the following command in the pmctl tool:

pmctl status sysctl k <InputKey>

or

pmctl status sysctl key <InputKey>

Example:

>pmctl status sysctl k fs.file-max
fs.file-max: 9223372036854775807

Variable Configuration in sysctl

To fetch all the variable configuration in the sysctl configuration based on the input pattern, use the following command in the pmctl tool:

pmctl status sysctl p <InputPatern>

or

pmctl status sysctl pattern <InputPatern>

Example:

pmctl status sysctl p net.ipv6.route.gc{
   "net.ipv6.route.gc_elasticity":"9",
   "net.ipv6.route.gc_interval":"30",
   "net.ipv6.route.gc_min_interval":"0",
   "net.ipv6.route.gc_min_interval_ms":"500",
   "net.ipv6.route.gc_thresh":"1024",
   "net.ipv6.route.gc_timeout":"60"
}

Add or Update Variable Configuration in sysctl

To add or Update a variable configuration in the sysctl configuration, use the following command in the pmctl tool.

pmctl sysctl u -k <InputKey> -v <InputValue> -f <InputFile>

or

pmctl sysctl update key <InputKey> value <InputValue> filename <InputFile>

Examples:

pmctl sysctl u -k fs.file-max -v 65566 -f 99-sysctl.conf

pmctl sysctl u -k fs.file-max -v 65566

Remove Variable Configuration in sysctl

To remove a variable configuration in the sysctl configuration, use the following command in the pmctl tool:

pmctl sysctl r -k <InputKey> -f <InputFile>

or

pmctl sysctl remove key <InputKey> filename <InputFile>

Examples:

pmctl sysctl r -k fs.file-max -f 99-sysctl.conf

pmctl sysctl r -k fs.file-max

Load sysctl Configuration Files

To Load sysctl configuration files, use the following command in the pmctl tool:

pmctl sysctl l -f <InputfileList>

or

pmctl sysctl load files <InputFileList>

Examples:

pmctl sysctl l -f 99-sysctl.conf,70-sysctl.conf

pmctl sysctl l -f

sysctl Configuration Details Using Curl Command

sysctl Configuration

To fetch the sysctl configuration, execute a GET request in the following JSON format:

curl --unix-socket /run/photon-mgmt/mgmt.sock --request GET http://localhost/api/v1/system/sysctl/statusall

Example:

>curl --unix-socket /run/photon-mgmt/mgmt.sock --request GET http://localhost/api/v1/system/sysctl/statusall

Specific Variable Configuration in sysctl

To fetch a specific variable configuration from sysctl configuration, execute a GET request in the following format:

curl --unix-socket /run/photon-mgmt/mgmt.sock --request GET --data '{"key":"<keyName>"}' http://localhost/api/v1/system/sysctl/status

Example:

>curl --unix-socket /run/photon-mgmt/mgmt.sock --request GET --data '{"key":"fs.file-max"}' http://localhost/api/v1/system/sysctl/status

Variable Configuration in sysctl

To fetch all the variable configuration in sysctl, execute a GET request in the following format:

curl --unix-socket /run/photon-mgmt/mgmt.sock --request GET --data '{"pattern":"<Pattern>"}' http://localhost/api/v1/system/sysctl/statuspattern


>curl --unix-socket /run/photon-mgmt/mgmt.sock --request GET --data '{"pattern":"fs.file"}' http://localhost/api/v1/system/sysctl/statuspattern

Add or Update Variable Configuration in sysctl Confiiguration

To add or update a variable configuration in the sysctl configuration, execute a POST request in the following format:

curl --unix-socket /run/photon-mgmt/mgmt.sock --request POST --data '{"apply":true,"key":"<keyName>","value":"<Value>","filename":"<fileName>"}' http://localhost/api/v1/system/sysctl/update

Example:

>curl --unix-socket /run/photon-mgmt/mgmt.sock --request POST --data '{"apply":true,"key":"fs.file-max","value":"65409","filename":"99-sysctl.conf"}' http://localhost/api/v1/system/sysctl/update

Remove a Variable Configuration in sysctl Configuration

To remove a variable configuration from the sysctl configuration, execute a DELETE request in the following format:

curl --unix-socket /run/photon-mgmt/mgmt.sock --request DELETE --data '{"apply":true,"key":"<keyName>","filename":"<fileName>"}' http://localhost/api/v1/system/sysctl/remove

Example:

>curl --unix-socket /run/photon-mgmt/mgmt.sock --request DELETE --data '{"apply":true,"key":"fs.file-max","filename":"99-sysctl.conf"}' http://localhost/api/v1/system/sysctl/remove

Load sysctl Configuration Files

To load sysctl configuration files, execute a POST request in the following format:

curl --unix-socket /run/photon-mgmt/mgmt.sock --request POST --data '{"apply":true,"files":["<fileName>","<fileName>"]}' http://localhost/api/v1/system/sysctl/load

Example:

>curl --unix-socket /run/photon-mgmt/mgmt.sock --request POST --data '{"apply":true,"files":["99-sysctl.conf","75-sysctl.conf"]}' http://localhost/api/v1/system/sysctl/load