Some Examples
Subscriptions Socket Summary
$ ./crhc swatch socket_summary
Public Cloud ........: 14
Virtualized RHEL ....: 2968
Physical RHEL .......: 1306
Hypervisors .........: 154
----------------------
Total # of Sockets ..: 4444
API Queries
Querying the API, we can first check the available API endpoints using the command below
$ ./crhc endpoint list
{
"services": [
"/api/aiops-clustering",
"/api/aiops-idle-cost-savings",
...
"/api/inventory",
...
"/api/rhsm",
"/api/rhsm-subscriptions",
"/api/ros",
"/api/sources",
"/api/subscriptions",
"/api/system-baseline",
"/api/topological-inventory",
"/api/tower-analytics",
"/api/upload",
...
]
}
In a sequence, we can check the API endpoint using the get option
$ ./crhc.py get /api/inventory
/api/inventory/v1/hosts
/api/inventory/v1/hosts/checkin
/api/inventory/v1/hosts/{host_id_list}
/api/inventory/v1/hosts/{host_id_list}/facts/{namespace}
/api/inventory/v1/hosts/{host_id_list}/system_profile
/api/inventory/v1/hosts/{host_id_list}/tags
/api/inventory/v1/hosts/{host_id_list}/tags/count
/api/inventory/v1/system_profile/sap_sids
/api/inventory/v1/system_profile/sap_system
/api/inventory/v1/system_profile/validate_schema
/api/inventory/v1/tags
And after that, we can see all the available methods. From now, we can call them directly, for example
$ ./crhc.py get /api/inventory/v1/hosts
{
"total": 6221,
"count": 50,
"page": 1,
"per_page": 50,
"results": [
{
"insights_id": "1f959a58-9e13-4d60-8cef-33a452d2303b",
"bios_uuid": null,
...
Using the token with the curl command
$ curl -s -H "Authorization: Bearer $(./crhc token)" https://api.openshift.com/api/accounts_mgmt/v1/current_account | json_reformat
Exporting Inventory data to CSV
$ ./crhc inventory list_all --csv
This should be enough to export the data and create the file /tmp/inventory_report.csv with some Inventory information. In a sequence you can see the fields
id
created
updated
stale_timestamp
stale_warning_timestamp
culled_timestamp
fqdn
display_name
ansible_host
cpu_model
number_of_cpus
number_of_sockets
core_socket
system_memory_bytes
bios_vendor
bios_version
bios_release_date
os_release
os_kernel_version
arch
last_boot_time
infrastructure_type
infrastructure_vendor
insights_client_version
created
insights_id
reporter
bios_uuid
tuned_profile
sap_system
sap_version
system_purpose_sla
system_purpose_role
system_purpose_usage
is_simple_content_access
installed_product
has_satellite_package
has_openshift_package
hypervisor_fqdn
hypervisor_uuid
number_of_guests
Exporting Subscription Watch data to CSV
$ ./crhc swatch list_all --csv
This should be enough to export the data and create the file /tmp/swatch_report.csv with the whole Subscription Watch information. In a sequence you can see the fields
display_name
hardware_type
inventory_id
insights_id
is_hypervisor
number_of_guests
is_unmapped_guest
last_seen
measurement_type
sockets
cores
subscription_manager_id
cloud_provider
Analysing the Customer Data
Please, copy the files sent by the customer according to below. Let’s assume the customer sent two files inventory.json and swatch.json, once you received them, let’s execute the commands below
$ cp full_inventory.json /tmp/inventory.json
$ cp full_swatch.json /tmp/swatch.json
After that, you can execute the command crhc ts match and the output will be as below
$ ./crhc ts match
File /tmp/inventory.json already in place, using it.
File /tmp/swatch.json already in place, using it.
File /tmp/match_inv_sw.csv created
Note. Once the files /tmp/inventory.json and /tmp/swatch.json are in place, they will be used for this analysis and as result, the file /tmp/match_inv_sw.csv will be created. This is the file that will be used for troubleshooting process.
ATTENTION
This is an awesome report because will combine both information from Inventory and Subscriptions in a single dataset. The final result will be the file /tmp/match_inv_sw.csv with the respective fields.
id
created
updated
stale_timestamp
stale_warning_timestamp
culled_timestamp
fqdn
display_name
ansible_host
cpu_model
number_of_cpus
number_of_sockets
core_socket
system_memory_bytes
bios_vendor
bios_version
bios_release_date
os_release
os_kernel_version
arch
last_boot_time
infrastructure_type
infrastructure_vendor
insights_client_version
created
insights_id
reporter
bios_uuid
tuned_profile
sap_system
sap_version
system_purpose_sla
system_purpose_role
system_purpose_usage
is_simple_content_access
installed_product
has_satellite_package
has_openshift_package
hypervisor_fqdn
hypervisor_uuid
number_of_guests
display_name
hardware_type
inventory_id
insights_id
is_hypervisor
number_of_guests
is_unmapped_guest
last_seen
measurement_type
sockets
cores
subscription_manager_id
cloud_provider