Unsupported content This version of the documentation is no longer supported. However, the documentation is available for your convenience. You will not be able to leave comments.

Upgrading callouts


Callouts attached to APIs are never automatically upgraded, although BMC attempts to preserve API backwards compatibility to ensure that an upgrade does not render callouts invalid.

The following information is provided:

CLM API backward-compatibility analysis

The attached Microsoft Excel spreadsheet lists the callout XMLs (csmRequest) generated for the CLM APIs and the backward-compatibility analysis. The following screenshot illustrates the type of helpful information that is contained in the  spreadsheet.

API_BWC_Comparisons2.jpg 

The backward compatibility is evaluated on the basis of an utility created for XML files comparison. This utility compare two XML files based on certain criteria.

Using the backward-compatibility analysis

This section explain how to use the backward-compatibility analysis tables and how to find out the issues from log files.

  1. Open the sample XML files.
  2. Compare the contents under the <operationParameters> tag.
    For example:

      <operationParameters>
       <entry>
         <string>Callback-URL</string>
         <string>http://10.128.107.155:8080/csm/task/result</string>
       </entry>
       <entry>
         <string>Meta.Invoked-By</string>
         <string>com.bmc.cloud.model.beans.ServiceOfferingInstance.applyOptionChoice</string>
       </entry>
    ...
  3. Review the attached comparison log for <MATCH NOT FOUND>.....******<ERROR>.

    For example:
    12:22:09 PM Logging Started .......
    12:22:09 PM Callback-URL ROOT NODE <MATCHING> .....Check for CHILD NODES above ....
    12:22:09 PM -----------------------------------------------
    12:22:09 PM Meta.Invoked-By ROOT NODE <MATCHING> .....Check for CHILD NODES above ....
    12:22:09 PM -----------------------------------------------
    12:22:09 PM Attribute : guid Type : string ....<Match found>.....
    12:22:09 PM Attribute : callouts Type : list ....<Match found>.....
    12:22:09 PM Attribute : description Type : string ....<Match found>.....
    12:22:09 PM Attribute : name Type : string ....<Match found>.....
    12:22:09 PM callouttype ROOT NODE <MATCHING> .....Check for CHILD NODES above ....
    12:22:09 PM -----------------------------------------------
    12:22:09 PM Callout-Type ROOT NODE <MATCHING> .....Check for CHILD NODES above ....
    12:22:09 PM -----------------------------------------------
    12:22:09 PM Operation ROOT NODE <MATCHING> .....Check for CHILD NODES above ....
    12:22:09 PM -----------------------------------------------
    12:22:09 PM Attribute : guid Type : string ....<Match found>.....
    12:22:09 PM Attribute : guid Type : string ....<Match found>.....
    12:22:09 PM Attribute : callouts Type : list ....<Match found>.....
    12:22:09 PM Attribute : description Type : string ....<Match found>.....
    12:22:09 PM Attribute : name Type : string ....<Match found>.....
    12:22:09 PM Attribute : calloutType Type : string ....<Match found>.....
    12:22:09 PM Attribute : accessValuesObject Type : list ....<Match found>.....
    12:22:09 PM Attribute : preOperation Type : list ....<Match found>.....
    12:22:09 PM Attribute : description Type : string ....<Match found>.....
    12:22:09 PM Attribute : accessValues Type : list ....<Match found>.....
    12:22:09 PM Attribute : name Type : string ....<Match found>.....
    12:22:09 PM Attribute : postOperation Type : list ....<Match found>.....
    12:22:09 PM callout ROOT NODE <MATCHING> .....Check for CHILD NODES above ....
    12:22:09 PM -----------------------------------------------
    12:22:09 PM AO_WORKFLOW ROOT NODE <MATCHING> .....Check for CHILD NODES above ....
    12:22:09 PM -----------------------------------------------
    12:22:09 PM Task-UUID ......<MATCH NOT FOUND>.....*****<ERROR>
    12:22:09 PM access_attributes ROOT NODE <MATCHING> .....Check for CHILD NODES above ....
    12:22:09 PM -----------------------------------------------
    12:22:09 PM Attribute : operatingSystem Type : string ....<Match found>.....
    12:22:09 PM Attribute : totalMemory Type : int ....<Match found>.....
    12:22:09 PM Attribute : systemType Type : SystemType ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://results//systemType
    12:22:09 PM Attribute : storageConnection Type : list ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://results//storageConnection
    12:22:09 PM Attribute : state Type : ProvisionedResourceState ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://results//state
    12:22:09 PM Attribute : hwArchitecture Type : HardwareArchitectureType ....<Match found>.....
    12:22:09 PM Attribute : serverObject Type : VirtualGuest ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://results//serverObject
    12:22:09 PM Attribute : guid Type : string ....<Match found>.....
    12:22:09 PM Attribute : tokenID Type : string ....<Match found>.....
    12:22:09 PM Attribute : software Type : list ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://results//software
    12:22:09 PM Attribute : cpus Type : int ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://results//cpus
    12:22:09 PM Attribute : resourceSet Type : string ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://results//resourceSet
    12:22:09 PM Attribute : tenant Type : string ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://results//tenant
    12:22:09 PM Attribute : description Type : string ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://results//description
    12:22:09 PM Attribute : name Type : string ....<Match found>.....
    12:22:09 PM Attribute : owner Type : string ....<Match found>.....
    12:22:09 PM Attribute : server Type : string ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://results//server
    12:22:09 PM Attribute : localDisks Type : list ....<Match found>.....
    12:22:09 PM Attribute : nics Type : list ....<Match found>.....
    12:22:09 PM Attribute : reconciliationID Type : string ....<Match found>.....
    12:22:09 PM results ROOT NODE <MATCHING> .....Check for CHILD NODES above ....
    12:22:09 PM -----------------------------------------------
    12:22:09 PM resourcesetguid ROOT NODE <MATCHING> .....Check for CHILD NODES above ....
    12:22:09 PM -----------------------------------------------
    12:22:09 PM Attribute : memorySensor Type : null ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://target//memorySensor
    12:22:09 PM Attribute : operatingSystem Type : string ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://target//operatingSystem
    12:22:09 PM Attribute : totalMemory Type : int ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://target//totalMemory
    12:22:09 PM Attribute : systemType Type : SystemType ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://target//systemType
    12:22:09 PM Attribute : state Type : ProvisionedResourceState ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://target//state
    12:22:09 PM Attribute : storageConnection Type : list ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://target//storageConnection
    12:22:09 PM Attribute : hwArchitecture Type : HardwareArchitectureType ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://target//hwArchitecture
    12:22:09 PM Attribute : tags Type : list ....<Match found>.....
    12:22:09 PM Attribute : operatingSystem Type : string ....<Match found>.....
    12:22:09 PM Attribute : totalCpus Type : int ....<Match found>.....
    12:22:09 PM Attribute : vmuuid Type : string ....<Match found>.....
    12:22:09 PM Attribute : totalMemory Type : int ....<Match found>.....
    12:22:09 PM Attribute : vendor Type : string ....<Match found>.....
    12:22:09 PM Attribute : hwArchitecture Type : HardwareArchitectureType ....<Match found>.....
    12:22:09 PM Attribute : state Type : VirtualGuestState ....<Match found>.....
    12:22:09 PM Attribute : isOnboarded Type : boolean ....<Match found>.....
    12:22:09 PM Attribute : serialNumber Type : string ....<Match found>.....
    12:22:09 PM Attribute : provider Type : string ....<Match found>.....
    12:22:09 PM Attribute : externalID Type : string ....<Match found>.....
    12:22:09 PM Attribute : virtualCluster Type : string ....<Match found>.....
    12:22:09 PM Attribute : guid Type : string ....<Match found>.....
    12:22:09 PM Attribute : tokenID Type : string ....<Match found>.....
    12:22:09 PM Attribute : hostedContainers Type : string ....<Match found>.....
    12:22:09 PM Attribute : providerCategorizationTier3 Type : list ....<Match found>.....
    12:22:09 PM Attribute : name Type : string ....<Match found>.....
    12:22:09 PM Attribute : domain Type : null ....<Match found>.....
    12:22:09 PM Attribute : owner Type : string ....<Match found>.....
    12:22:09 PM Attribute : hostName Type : string ....<Match found>.....
    12:22:09 PM Attribute : localDisks Type : list ....<Match found>.....
    12:22:09 PM Attribute : nics Type : list ....<Match found>.....
    12:22:09 PM Attribute : reconciliationID Type : string ....<Match found>.....
    12:22:09 PM Attribute : guid Type : string ....<Match found>.....
    12:22:09 PM Attribute : tokenID Type : string ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://target//tokenID
    12:22:09 PM Attribute : resourceSet Type : string ....<Match found>.....
    12:22:09 PM Attribute : software Type : list ....<Match found>.....
    12:22:09 PM Attribute : cpus Type : int ....<Match found>.....
    12:22:09 PM Attribute : tenant Type : string ....<Match found>.....
    12:22:09 PM Attribute : description Type : string ....<Match found>.....
    12:22:09 PM Attribute : name Type : string ....<Match found>.....
    12:22:09 PM Attribute : owner Type : string ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://target//owner
    12:22:09 PM Attribute : cpuSensor Type : null ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://target//cpuSensor
    12:22:09 PM Attribute : server Type : string ....<Match found>.....
    12:22:09 PM Attribute : localDisks Type : list ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://target//localDisks
    12:22:09 PM Attribute : nics Type : list ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://target//nics
    12:22:09 PM Attribute : reconciliationID Type : string ....<MATCH NOT FOUND>.....******<ERROR>
    12:22:09 PM    XPATH :://target//reconciliationID
    12:22:09 PM target ROOT NODE <MATCHING> .....Check for CHILD NODES above ....
    12:22:09 PM -----------------------------------------------
    12:22:09 PM CloudClass ROOT NODE <MATCHING> .....Check for CHILD NODES above ....
    12:22:09 PM -----------------------------------------------
    12:22:09 PM -----------------------------Completed -----------------------------

    The text in 
    red displays some of the errors encountered in the logs.

  4. Use the following tips to find the corresponding nodes from the XPATH printed:
    • The Task-UUID failure is not considered for BWC analysis. Task-UUID always mismatches in all files.
    • For the next failure, the XPATH says that the systemType attribute of SystemType does not match with the target file. This parameter can be found at:
      XPATH: //results//systemType
    • The actual XPATH can be found from this value as:
      /OperationParameters/entry(with <string>results</string>)/entry(with <string>systemType</string>
    • If you review the XML sample, you can observe that the systemType attribute is not present in the target file at the same XPATH.

 

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*