Skip to content
Release: Australia · Updated: 2026-03-12 · Official documentation · View source

OpenStack resource discovery

The ServiceNow Discovery application uses OpenStack resource discovery patterns to find OpenStack resources through REST API calls. Discovering some of these resources may require updating to the latest version of the Discovery and Service Mapping Patterns application from the ServiceNow Store.

Discovery uses OpenStack resource discovery patterns to run horizontal discovery.

Starting with the Discovery and Service Mapping Patterns August 2024 store release, OpenStack resource discovery patterns support both private and public cloud discovery.

Request apps on the Store

Visit the ServiceNow Store to view all the available apps, and for information about submitting requests to the store. For cumulative release notes information for all released apps, see the ServiceNow Store version history release notes.

Prerequisites

  • OpenStack requirements
    • In the OpenStack Identity service catalog, find the access URL that is used as the OpenStack identity service endpoint. For example: https://<openstack dns>:<port>.
    • Configure an OpenStack user with permissions to generate a project scope token. Setting Domain ID, User Name, Project Name, and Password values is required for generating a token.
  • MID Server requirements

    Deploy and connect a dedicated MID Server for cloud discovery.

    The dedicated MID Server must have access to OpenStack and an open port for each OpenStack service to be discovered.

  • Credentials

    On the ServiceNow AI Platform, create OpenStack credentials for the ServiceNow cloud service account. Enter the Domain ID, User Name, Project Name, and Password values you've configured in OpenStack requirements. For more information, see Create and test your credentials.

  • Service account

    On the ServiceNow AI Platform, configure a ServiceNow cloud service account using the created OpenStack credentials and the OpenStack datacenter details. In the Account Id field, provide the Project ID of the OpenStack Project to be discovered.

  • Create a discovery schedule

    For more information, see Create an OpenStack Discovery schedule in Discovery Admin Workspace.

  • Create an automatic discovery schedule for OpenStack service accounts—for private cloud only

    Create an automatic serverless discovery schedule for OpenStack service accounts using the OpenStack - Discover Service Accounts pattern. For more information, see the Auto Cloud discovery schedule for Open stack [KB1638685] article in the Now Support Knowledge Base.

  • (Optional) Populate Service Account and Logical Datacenter fields in cloud CIs

    Starting with Discovery and Service Mapping Patterns version 1.30.2, you can improve query performance by populating Service Account and Logical Datacenter fields directly in cloud CIs. For more information, see Improved query performance with direct field population in CI tables.

Data collected by Discovery during horizontal discovery

Discovery populates the data in the CMDB when running the OpenStack resource discovery patterns.

FieldDescription
Object ID \[object\_id\]Server UUID.
Name \[name\]Server name.
Status \[status\]Server status.
Description \[short\_description\]\(Optional\) Server description.
CPUs \[cpus\]Number of virtual CPUs \(vCPUs\) from the Flavor that the VM instance is provisioned with.
Disks \[disks\]Number of all managed volumes by Cinder that are returned from the VM instance.
Disks size \(GB\) \[disk\_size\]Total amount of all managed volumes by Cinder that are used by the VM instance measured in gigabytes \(GB\).
Memory \(MB\) \[memory\]The ram value from the Flavor that the VM instance is provisioned with, measured in megabytes (MB).
Network adapters \[nics\]Number of unique interfaces configured in the VM instance.
State \[state\]

Mapped status value returned for the VM instance. The OpenStack Server statuses and their related ServiceNow State values are:

  • ACTIVE: on
  • RESCUED: on
  • PAUSED: paused
  • SUSPENDED: off
  • STOPPED: off
  • SOFT_DELETED: terminated
  • HARD_DELETED: terminated
  • RESIZED: off
  • ERROR: error
  • INITIALIZED: starting

For any status value not listed, the default value is off.

FieldDescription
Object ID [object_id]Keypair UUID.
Name [name]Keypair name that is used to reference it.
Finger print [finger_print]Keypair fingerprint.
FieldDescription
Object ID [object_id]Load balancer ID.
Name [name]Human-readable resource name.
Description [short_description](Optional) Human-readable resource description.
Install Status [install_status]Resource provisioning status.
Operational Status [operational_status]Resource operational status.
FieldDescription
Object ID [object_id]Listener ID.
Name [name]Human-readable name of the resource.
Install Status [install_status]Provisioning status of the resource.
Listener Protocol [listener_protocol]Protocol for the resource. One of HTTP, HTTPS, TCP, TERMINATED_HTTPS, or UDP.
Listener Port [listener_port]Protocol port number for the resource.
Operational status [operational_status]Resource operational status.
Description [short_description](Optional) Human-readable resource description.
FieldDescription
Object ID [object_id]Pool ID.
Name [name]Human-readable resource name.
Install Status [install_status]Resource provisioning status.
Operational Status [operational_status]Resource operational status.
Description [short_description](Optional) Human-readable resource description.
Load Balancing Method [load_balancing_method]Load balancing algorithm for the pool. One of these values: LEAST_CONNECTIONS, ROUND_ROBIN, SOURCE_IP, or SOURCE_IP_PORT.
FieldDescription
Object ID [object_id]Pool member ID.
Name [name]Human-readable resource name.
Install Status [install_status]Resource provisioning status.
IP address [ip_address]Back-end member server IP address.
FieldDescription
Object ID [object_id]Volume UUID.
Name [name]Volume name.
Status [status]Volume status.
Description [short_description](Optional) Human-readable description.
Storage type [storage_type]Associated volume type.
FieldDescription
Object ID [object_id]Volume UUID.
Name [name]Volume name.
Status [status]Volume status.
Description [short_description](Optional) Human-readable description.
FieldDescription
Object ID [object_id]User-defined image UUID.
Name [name]Image name. The value can be null (the JSON Null data type).
Status [status]Image status.
FieldDescription
Object ID [object_id]Network ID.
Name [name]Human-readable network name.
Operational Status [operational_status]Network status. Possible values: ACTIVE, DOWN, BUILD, or ERROR.
Description [short_description](Optional) Human-readable description.
FieldDescription
Object ID [object_id]Subnet ID.
Name [name]Human-readable resource name.
DHCP enabled [is_dhcp_enabled]Whether DHCP is enabled or disabled for the subnet.
Description [short_description](Optional) Human-readable description.
FieldDescription
Object ID [object_id]Security group ID.
Name [name]Human-readable resource name.
Description [short_description](Optional) Human-readable description.
FieldDescription
Name \[name\]This field has the same value as the object\_id field.
Object ID \[object\_id\]Security group rule ID.
Description \[short\_description\]\(Optional\) Human-readable description.
Ethertype \[ethertype\]Ethertype. Must be IPv4 or IPv6. Addresses represented in CIDR must match the ingress or egress rules.
Port range max \[port\_range\_max\]The last port of the range to which the rule applies. This value is the maximum port number in the range that is matched by the security group rule. - If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite, this value must be greater than or equal to the port\_range\_min attribute value. - If the protocol is ICMP, this value must be an ICMP code.
Port range min \[port\_range\_min\]The first port of the range to which the rule applies. This value is the minimum port number in the range that is matched by the security group rule.- If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite, this value must be less than or equal to the port\_range\_max attribute value. - If the protocol is ICMP, this value must be an ICMP type.
FieldDescription
Object ID \[object\_id\]Domain ID.
Name \[name\]Domain name.
Description \[short\_description\]\(Optional\) Human-readable description.
Enabled \[enabled\]Defines whether the domain is enabled or disabled.- True - The domain is enabled. - False - The domain is disabled.
FieldDescription
Object ID \[object\_id\]Service ID.
Name \[name\]Service name.
Description \[short\_description\]\(Optional\) Human-readable description.
Type \[type\]Service type. Describes the API implemented by the service. Possible values: Compute, ec2, identity, image, network, or volume.
Catalog enabled \[enabled\]Defines whether the service and its endpoints appear in the service catalog.- True - The service and its endpoints appear in the service catalog. - False - The service and its endpoints do not appear in the service catalog.
FieldDescription
Object ID \[object\_id\]Endpoint ID.
Name \[name\]Service name.
Interface \[interface\]Interface type that describes the visibility of the endpoint. Possible values:- Public - Visible by end users on a publicly available network interface. - Internal - Visible by end users on an unmetered internal network interface. - Admin - Visible by administrative users on a secure network interface.
Catalog enabled \[enabled\]Defines whether the service and its endpoints appear in the service catalog.- True - The service and its endpoints appear in the service catalog. - False - The service and its endpoints do not appear in the service catalog.
FieldDescription
Name [name]The name field of OpenStack Flavor.
Object ID [object_id]The id field of OpenStack Flavor.
vCPUs [vcpus]The vcpus field of OpenStack Flavor.
Memory MB [memory_mb]The ram field of OpenStack Flavor.
Local Storage GB [local_storage_gb]The disk field of OpenStack Flavor.

The discovered data includes the OpenStack Hypervisor View [cmdb_ci_openstack_hypervisor_view] table and its fields for private cloud only.

FieldDescription
Name [name]Concatenated value of hypervisor_type and hypervisor_hostname fields. For example: QEMU@host.acmecorp.com.
IP Address [ip_address]The value of host_ip field.
Hypervisor technology [hypervisor_technology]The value of hypervisor_type field.
Object ID [object_id]The value of id field.
State [state]The value of state field.
Version [version]The value of hypervisor_version field.

The Dependency Views map shows all discovered OpenStack resources in your organization that are available through REST API calls and the relationships between them.

Image omitted: openstack-network-dependency.PNG
CIs and connections on a Dependency Views map
Image omitted: openstack-VM-dependency.PNG
CIs and connections on a Dependency Views map

CI relationships

The relationships listed in the following table are created to support OpenStack resource discovery.

CIRelationshipCI
cmdb_ci_openstack_datacenterHosted on::Hostscmdb_ci_cloud_service_account
cmdb_ci_cloud_openstack_serviceHosted on::Hostscmdb_ci_cloud_service_account
cmdb_ci_cloud_openstack_endpointUse endpoint to::Use endpoint fromcmdb_ci_cloud_openstack_service
cmdb_ci_cloud_openstack_endpointHosted on::Hostscmdb_ci_openstack_datacenter
cmdb_ci_cloud_openstack_domainOwns::Owned bycmdb_ci_cloud_service_account
cmdb_ci_networkHosted on::Hostscmdb_ci_openstack_datacenter
cmdb_ci_networkContains::Contained bycmdb_ci_cloud_subnet
cmdb_ci_compute_security_groupHosted on::Hostscmdb_ci_openstack_datacenter
cmdb_ci_compute_security_groupContains::Contained bycmdb_ci_compute_security_group_rule
cmdb_ci_cloud_load_balancerHosted on::Hostscmdb_ci_openstack_datacenter
cmdb_ci_cloud_load_balancerContains::Contained bycmdb_ci_lb_listener
cmdb_ci_lb_poolHosted on::Hostscmdb_ci_cloud_load_balancer
cmdb_ci_lb_poolOwns::Owned bycmdb_ci_lb_pool_member
cmdb_ci_storage_volumeHosted on::Hostscmdb_ci_openstack_datacenter
cmdb_ci_vm_instanceUses::Used bycmdb_ci_storage_volume
cmdb_ci_storage_vol_snapshotHosted on::Hostscmdb_ci_openstack_datacenter
cmdb_ci_storage_vol_snapshotProvisioned from::Provisionedcmdb_ci_storage_volume
cmdb_ci_vm_instanceHosted on::Hostscmdb_ci_openstack_datacenter
cmdb_ci_cloud_key_pairHosted on::Hostscmdb_ci_openstack_datacenter
cmdb_ci_os_templateHosted on::Hostscmdb_ci_openstack_datacenter
cmdb_ci_vm_instanceProvisioned from::Provisionedcmdb_ci_os_template
cmdb_ci_vm_instanceVirtualized by::Virtualizescmdb_ci_server

The relationships listed in the following table are created to support OpenStack resource discovery in private cloud only.

CIRelationshipCI
cmdb_ci_vm_instanceRegistered on::Has registeredcmdb_ci_openstack_hypervisor_view
cmdb_ci_openstack_hypervisor_viewHosted on::Hostscmdb_ci_openstack_datacenter
cmdb_ci_openstack_hypervisor_viewUses::Hosts Used bycmdb_ci_server

Parent Topic:Available cloud discovery patterns