+ All Categories
Home > Documents > PDF - CWKS2CMDB Integration Guide v1.4

PDF - CWKS2CMDB Integration Guide v1.4

Date post: 04-Apr-2018
Category:
Upload: srvikal
View: 217 times
Download: 0 times
Share this document with a friend

of 26

Transcript
  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    1/26

    CWKS2CMDB

    Integration Guide

    Version 1.4.0

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    2/26

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    3/26

    CWKS2CMDB Integration Guide Page 3

    1. Introduction

    1.1 Purpose

    CiscoWorks

    Resource Manager Essentials (RME) is a network management solution for Cisco switches, accessservers, and routers. The BMC Atrium CMDB (Atrium CMDB) version 2.x provides all the necessary features

    to implement the configuration management database (CMDB) in a customers environment. CWKS2CMDB can

    exchange data between RME and the BMC Remedy Action Request System(AR System) forms or Atrium

    CMDB classes.

    This functional specification will list all the components to be developed in CWKS2CMDB, their network

    locations, their features, their high-level implementation approaches, and their relationships with other

    components.

    1.2 Assumptions

    This installation guide assumes the following to be true prior to beginning the installation.

    AR System version 7.0 or greater is installed and accessible. Atrium CMDB version 2.x or greater is installed and accessible. BMCEnterprise Integration Engine (EIE) 7.0 or greater is installed and accessible. CiscoWorks RME 4.0 or greater is installed, configured and accessible. BMC Remedy Asset Management (Asset Management) version 7.0 or greater is installed and accessible

    (optional).

    It should be noted that prior customizations made to the Atrium CMDB or Remedy Asset Management system

    might affect the installation and operation of this integration system.

    1.3 ComponentsThe following is a list of components needed for the installation of this integration system. It should be noted

    that all software listed must be properly licensed.

    RME Adapter executables. AtriumCMDB extensions. RME Adapter data package

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    4/26

    CCWWKKSS22CCMMDDBB IInntteeggrraattiioonn GGuuiiddee Page 4

    2. Overview

    Figure 1 shows how the Data Exchange application, the EIE service, and the RME CLI Framework interact with

    CWKS2CMDB.

    2.1 CWKS2CMDB

    CWKS2CMDB has three primary components: the Service, the RME Adapter and the Data Exchange Application

    (DEA) . The EIE service controls the activity between the AR System server and CiscoWorks RME. The servicereads the instructions from the DEA and executes them through the RME Adapter. This is how AR Servers

    installed on other databases can communicate with the RME database that stores the RMEs management data.

    The RME Adapter is used to communicate to the RME database on behalf of the service. The Service will make

    requests of the adapter; the adapter carries out these requests and passes the results back to the service. The

    Service then updates the Atrium CMDB forms appropriately.

    The Data Exchange Application can be installed on any supported AR System. It is the EIE Application with

    forms and workflow that are used to configure the integration between CiscoWorks RME and AR System server.

    The Field Mappings, Relationship Mappings, schedule and description of qualifying data is included in this

    configuration.

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    5/26

    CCWWKKSS22CCMMDDBB IInntteeggrraattiioonn GGuuiiddee Page 5

    2.2 EIE Transfer Data from RME Database to Atrium CMDB

    CWKS2CMDB is used by the Enterprise Integration Engine to query the RME database and copy all new or

    modified data in to the Atrium CMDB as part of the CISCO.IMPORT.RME dataset.

    On each run of the data exchange, records are created in the Atrium CMDB for all records found in the RME

    inventory which are included in this integration. If the record exists in the CISCO.IMPORT.RME dataset, thedata set record is updated.

    If the record exists in the CISCO.IMPORT.RME dataset and no longer exists in the RME database, the data set

    records status is updated to End of Life and the MarkForDelete attribute is set to Yes. This sets the stage for

    an optional purge operation later.

    Once all the data has been transferred, exchanges are defined to map all the relationships between the data that

    was just imported. A complete list of all relationships mapped is located in Appendix B.

    2.3 Reconciliation

    The next step is to reconcile the CISCO.IMPORT.RME data set with any other data set. This step cannot be done

    until the data exchanges have completed.

    Out of the box the reconciliation is with the BMC.ASSET data set. If you have configured your system to have a

    different Master data set or wish to do reconciliation with another data set, you will need to modify these rules.

    2.4 Purge

    Once reconciliation is complete or periodically there after, a purge job can be run to clear out entries in the RME

    dataset which are no longer active. You want to be sure that reconciliation has been done before the purge

    operation is done or your master data set will not be updated to reflect that systems or components are no longer

    in the RME database. An example of this purge operation is included with the integration but disabled.

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    6/26

    CWKS2CMDB Integration Guide 6

    3. Installing CWKS2CMDB

    3.1 Installation Prerequisites

    Before installing CWKS2CMDB, EIE has to be installed. EIE has the following components:

    Data Exchange application EIE Service

    The other end of the RME adapter relies on RME CLI Framework (a Command-Line Interface). Given

    the fact that users may not install EIE and RME in the same system, the RME Adapter will remotely

    invoke RME CLI commands.

    The RME Adapter installer will populate the following forms during installation. Even though you may

    enter the data manually, automating the process reduces the potential for errors and makes the task of

    installing the adapter easier.

    EIE:VendorConfiguration EIE:VendorFieldNames

    A sample data exchange and mappings are imported into the following forms:

    EIE:DataExchange EIE:DataExgLookup EIE:Data EIE:CMDBDataMapping EIE:CMDBRelMapping EIE:CMDBRelationshipData EIE:RelContainerHolder EIE:Trigger_DE

    The documentation of the RME Adapter will serve as an extension to the BMC Remedy Enterprise

    Integration Engine 7.0 Administrators Guide.

    3.1.1 EIE User

    Establish a user for EIE* on the Remedy server where Atrium CMDB is installed. The EIE user must be

    given the following permissions:

    1 Fixed AR User write License 1 Fixed Asset Management user license Asset Admin group privileges (this gives computed CMDB privileges)

    3.1.2 RME User

    EIE must have read access to the RME inventory database where RME is installed. To that end an RME

    user ID must be established for use by EIE. Any user ID with access to the RME database may be used.

    To set a different user, see your RME Administrator.

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    7/26

    CWKS2CMDB Integration Guide 7

    3.2 Installation Configuration Worksheet

    Please create the following IDs, gather the additional information, fill out the worksheet, and keep it

    handy, as it will be referenced in many of the following installation steps. All AR Server variables refer

    to the AR System server on which you wish to install the EIE Data Exchange Application. (Examples are

    in parenthesis)

    ARS Server (server name)

    __________________________________________

    ARS Server Admin (Demo)

    __________________________________________

    ARS Server Admin Password (blank)

    __________________________________________

    AR System Server Port Number (0)

    __________________________________________

    EIE Instance name (server name)

    __________________________________________

    3.3 Installation Instructions

    To install CWKS2CMDB

    1. Download the RME Adapter product.2. Open the folder where you downloaded the RME Adapter product.3. From the product directory, change to the directory called install_scripts\win32.4. Start the installation script by typing: install. A message similar to this one appears:

    D:\STI\Cisco\Beta\install_scripts\win32>install.bat

    The following AR servers with EIE were found:---------------------------------------------------wang-wstest1

    Please specify the name of your AR server from the list:

    5.

    Enter the name of your AR system server.

    6. Press Enter.This message appears:

    Please enter AR Server Port:

    7. Enter the TCP/IP port for the AR System server, or leave it blank.8. Press Enter.

    This message appears:

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    8/26

    CWKS2CMDB Integration Guide 8

    Please enter AR Login:

    9. Type the AR System Administrator ID.10. Press Enter:

    This message appears:

    Please enter AR Password:

    11. Type the AR System Administrator password, or leave it blank.12. Press Enter:

    This message appears:

    Please enter AR Authentication:

    13. Type the AR System authentication string, or leave it blank.14. Press Enter:

    This message appears:

    You may specify the EIE instance name that you would likethe sample exchange to run on. You may also change it later.

    Please enter EIE instance name:

    15. Type the EIE Instance name, or leave it blank.16. Press Enter:

    This message appears:

    Please enter the source dataset ID:

    17.Type the source dataset ID, i.e., CISCO.IMPORT.RME.

    18. Press Enter:This message appears:Please enter the source dataset name:

    19.Type the source dataset name, i.e., Cisco RME.

    20. Press Enter:This message appears:

    Please enter the target dataset name [BMC Asset]:

    21. Type the target dataset name, or accept the default [BMC Asset].22. Press Enter:

    This message appears:

    Installation Summary:

    AR Server = wang-wsAR Port =AR Login = Demo

    EIE Instance =

    Source Dataset ID = CISCO.IMPORT.RME

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    9/26

    CWKS2CMDB Integration Guide 9

    Source Dataset Name = Cisco RMETarget Dataset Name = BMC Asset

    Press any key to continue . . .

    23. Press Enter, to start the installation process.This message appears:

    Copying 6 files...

    Creating Windows registry...

    Extending CMDB classes...

    Importing EIE adapter data...

    Importing Sample reconciliation job...

    The installation is completed!

    24. Note: You may ignore the following error if you have BMC Asset Management installed onyour AR System.

    CMDBCreateMultipleAttribute resultsReturnCode: ERRORStatus List : 1 itemsStatus Struct :

    Message type : ERRORMessage number : 120014Message: The attribute name is not unique. The attribute

    name is already in use.Appended: ClassID: BMC_CARD, Attribute Name: PartNumber

    Attribute: 1

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    10/26

    CWKS2CMDB Integration Guide 10

    3.4 Uninstalling CWKS2CMDB

    To remove CWKS2CMDB

    1. Open the folder where you downloaded the RME Adapter product.2. From the product directory, change to the directory called install_scripts\win32.3. Start the un-installation script by typing: install /u4. Fill in the following information. You may skip the rest of the prompt.

    Please specify the name of your AR server from the list:Please enter AR Server Port:Please enter AR Login:Please enter AR password:Please enter AR Authentication:

    5. At the end, you will be prompted with the following message:You may need to manually delete data from these forms in the AR User tool. The searchcriteria are

    "Vendor Application"="CiscoWorksAdapter".SCHEMA "EIE:Data"SCHEMA "EIE:DataExchange"SCHEMA "EIE:DataExgLookup"SCHEMA "EIE:VendorParamLookup"SCHEMA "EIE:VendorConfiguration"SCHEMA "EIE:VendorFieldNames"SCHEMA "EIE:CMDBDataMapping"SCHEMA "EIE:CMDBRelMapping"SCHEMA "EIE:CMDBRelationshipData"SCHEMA "EIE:RelContainerHolder"SCHEMA "EIE:Trigger_DE"

    The installation is completed!

    Use AR User tool to clean up the above forms.

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    11/26

    CWKS2CMDB Integration Guide 11

    4. Defining data transfers

    4.1 Data transfer overview

    This section briefly describes the steps for defining data transfers between an RME database and Atrium

    CMDB classes. With the exception of specifying RME configuration parameters, these steps are

    described in theBMC Remedy Enterprise Integration Engine 7.0 Administrators Guide.

    A data transfer consists of a data exchange and a corresponding data mapping that defines the parameters

    under which the data are transferred. A many-to-many relationship exists between data exchanges and

    data mappings. That is, you can associate one data exchange with multiple data mappings, and one data

    mapping with multiple data exchanges.

    You can create data exchanges and data mappings in any order. For example, you can create a data

    exchange and then create one or more associated data mappings or vice versa. However, using the

    following suggested order might be helpful when you are first learning about the data transfer process.

    Again, see theBMC Remedy Enterprise Integration Engine 7.0 Administrators Guide for more

    information.

    To create a data transfer

    1. Create a data exchange2. Create a data mapping3. Associate a data mapping with a data exchange4. Activate a data exchange

    4.2 Specifying CWCLI configuration parameters

    To specify RME Adapter configuration parameters

    1. Log in to BMC Remedy User.2. Choose File > Open > Object List.

    The Object List window appears.

    3. Select the EIE:Startup form.

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    12/26

    CWKS2CMDB Integration Guide 12

    4. Click New.The EIE:StartUp window appears.

    5. Click the Vendor Configuration tab.6. Select the RME data exchange you want to use in the Data Exchanges table.7. From the Parameter Name drop-down list, select ClassMask.

    When the selection is made, the Parameter Value field is set to the value that you set for the RME

    login name during installation.

    8. Accept the default value in the Parameter Value field, or type a new value.9. Click Add/Update.

    The parameter name and value appear in the Enter Vendor-Specific Configurations table.

    10. Repeat step 7 through step 9 for each of the remaining parameters. If you have many maps, only thefirst data exchange need for the following parameter:

    Login user name for RME login.

    Password password for RME login.

    Export_URL in the format ofhttp://myserver:port/rme/cwcli

    Device_Filter if you want to limit the data transfer.

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    13/26

    CWKS2CMDB Integration Guide 13

    5. Troubleshooting CWKS2CMDB

    5.1 Understanding performance considerations

    TBD

    5.2 Troubleshooting server connectivity

    TBD

    5.3 Using log messages and debug files

    TBD

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    14/26

    CWKS2CMDB Integration Guide 14

    6. Appendices

    6.1 Appendix A: Cisco RME Atrium CMDB Mapping

    Cisco RME Class BMC CMDB Class

    Note

    InstanceID and ParentInstanceID are the key

    attributes, and have the format of

    Cisco.InstanceID.

    The other attributes has the format of

    [Class].[Attribute], i.e.,

    Cisco_Chassis.Model.

    Note

    TokenId and Parent.TokenId are reserved for

    relationship mapping.

    Attributes in bold blue font are extended from BMC

    generic class, i.e., Cisco_Backplane extends

    BMC_BaseElement, defines Backplane Type.

    Source Class Attributes Attributes Target Class

    InstanceID TokenId

    ParentInstanceID Parent.TokenId

    Model Model

    HardwareVersion VersionNumber

    SerialNumber SerialNumber

    ChassisSystemType ChassisSystemType

    NumberOfSlots NumberOfSlots

    Cisco_Chassis

    NoOfCommunication

    Connectors

    NoOfCommunicationConnector

    s

    BMC_Chassis

    InstanceID TokenId

    ParentInstanceID Parent.TokenId

    BackplaneType Backplane Type

    Model Model

    Cisco_Backplane

    SerialNumber SerialNumber

    Cisco_Backplane

    extends

    BMC_BaseElement

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    15/26

    CWKS2CMDB Integration Guide 15

    InstanceID TokenId

    ParentInstanceID Parent.TokenId

    RequiresDaughterBoar

    d

    RequiresDaughterBoard

    Model Model

    SerialNumber SerialNumber

    LocationWithinContai

    ner

    LocationWithinContainer

    PartNumber PartNumber

    CardType CardType

    HardwareVersion VersionNumber

    Description Description

    OperationalStatus OperationalStatus

    FWManufacturer FWManufacturer

    Manufacturer ManufacturerName

    NumberOfSlots NumberOfSlots

    Cisco_Card

    NoOfCommunication

    Connectors

    NoOfCommunicationConnec

    tors

    BMC_Card

    InstanceID TokenId

    ParentInstanceID Parent.TokenId

    ConnectorType ConnectorType

    Cisco_CommunicationCo

    nnector

    Description Description

    Cisco_CommunicationCo

    nnector extends

    BMC_BaseElement

    InstanceID TokenId

    ParentInstanceID Parent.TokenId

    InstanceName Name

    FlashDeviceType FlashDeviceType

    Size Size

    NumberOfPartitions NumberOfPartitions

    ChipCount ChipCount

    Description Description

    Cisco_FlashDevice

    Removable Removable

    Cisco_FlashDevice

    extends

    BMC_HardwareSystemC

    omponent

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    16/26

    CWKS2CMDB Integration Guide 16

    InstanceID TokenId

    ParentInstanceID Parent.TokenId

    InstanceName Name

    Upgrade Upgrade

    NeedsErasure NeedsErasure

    PartitionStatus PartitionStatus

    FileSystemSize FileSystemSize

    AvailableSpace AvailableSpace

    Cisco_FlashPartition

    FileCount FileCount

    Cisco_FlashPartition

    extends

    BMC_LogicalSystemCom

    ponent

    InstanceID TokenId

    ParentInstanceID Parent.TokenId

    FileSize FileSize

    FileStatus FileStatus

    Checksum Checksum

    Cisco_FlashFile

    InstanceName Name

    Cisco_FlashFile extends

    BMC_FileSystem

    InstanceID TokenId

    ParentInstanceID Parent.TokenId

    MemoryType MemoryType

    InstanceID Name

    Cisco_PhysicalMemory

    Capacity Capacity

    BMC_Memory

    InstanceID TokenId

    ParentInstanceID Parent.TokenId

    Description Description

    PrimaryOwnerName OwnerName

    InstanceName Name

    PhysicalPosition PhysicalPosition

    SysObjectId SysObjectId

    SysUpTime SysUpTime

    OfficialHostName OfficialHostName

    Cisco_NetworkElement

    NumberOfPorts NumberOfPorts

    Cisco_NetworkElement

    extends BMC_System

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    17/26

    CWKS2CMDB Integration Guide 17

    InstanceID TokenId

    ParentInstanceID Parent.TokenId

    ModuleNumber ModuleNumber

    ModuleType ModuleType

    InstanceName Name

    EnabledStatus EnabledStatus

    Cisco_LogicalModule

    NumberOfPorts NumberOfPorts

    Cisco_LogicalModule

    extends

    BMC_LogicalSystemCom

    ponent

    InstanceID TokenId

    ParentInstanceID Parent.TokenId

    PortNumber PortNumber

    PortType PortType

    InstanceName Name

    Cisco_Port

    IfInstanceID IfInstanceID

    BMC_NetworkPort

    InstanceID TokenId

    ParentInstanceID Parent.TokenId

    InstanceName Name

    PoolType PoolType

    DynamicPoolType DynamicPoolType

    AlternatePoolType AlternatePoolType

    IsValid IsValid

    Allocated Allocated

    Free Free

    Cisco_MemoryPool

    LargestFree LargestFree

    Cisco_MemoryPool

    extends

    BMC_LogicalSystemCom

    ponent

    InstanceID TokenId

    ParentInstanceID Parent.TokenId

    InstanceName Name

    OSFamily OSProductSuite

    Version VersionNumber

    Cisco_OSElement

    Description Description

    BMC_OperatingSystem

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    18/26

    CWKS2CMDB Integration Guide 18

    InstanceID TokenId

    ParentInstanceID Parent.TokenId

    InstanceName Name

    ProtocolType ProtocolType

    Speed Speed

    RequestedStatus RequestedStatus

    OperationalStatus OperationalStatus

    Description Description

    PhysicalAddress PhysicalAddress

    Cisco_IfEntry

    NetworkAddress NetworkAddress

    Cisco_IfEntry extends

    BMC_AccessPoint

    InstanceID TokenId

    ParentInstanceID Parent.TokenId

    Address Address

    SubnetMask SubnetMask

    Cisco_IPProtocolEndpoint

    DefaultGateway DefaultGateway

    BMC_IPEndpoint

    InstanceID TokenId

    ParentInstanceID ParentInstanceID

    Cisco_IPProtocolEnd

    point

    IPProtocolEndpoint

    Cisco_PEHasIfEntry

    Cisco_IfEntry IfEntry

    Cisco_PEHasIfEntry

    extends BMC_Collection

    InstanceID TokenId

    ParentInstanceID Parent.TokenId

    Antecedent Antecedent

    Cisco_ComputerSystemPa

    ckage

    Dependent Dependent

    BMC_Package

    InstanceID TokenId

    ParentInstanceID ParentInstanceID

    Classification Classification

    SoftwareIdentity

    VersionString VersionString

    Cisco_SoftwareIdentity

    extends BMC_Collection

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    19/26

    CWKS2CMDB Integration Guide 19

    InstanceID TokenId

    ParentInstanceID Parent.TokenId

    RMEPlatform

    [Constant] Name

    Cisco_RMEPlatform

    extends

    BMC_VirtualSystem

    6.2 Appendix B: Cisco RME Inventory Schema

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    20/26

    CWKS2CMDB Integration Guide 20

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    21/26

    CWKS2CMDB Integration Guide 21

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    22/26

    CWKS2CMDB Integration Guide 22

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    23/26

    CWKS2CMDB Integration Guide 23

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    24/26

    CWKS2CMDB Integration Guide 24

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    25/26

    CWKS2CMDB Integration Guide 25

  • 7/29/2019 PDF - CWKS2CMDB Integration Guide v1.4

    26/26

    7. Endnotes

    BMC and BMC Software are the exclusive properties of BMC Software, Inc., areregistered with the U.S. Patent and Trademark Office, and may be registered orpending registration in other countries. All other BMC trademarks, servicemarks, and logos may be registered or pending registration in the U.S. or in other

    countries.

    BMC Remedy Asset Management Application, BMC Atrium CMBD, BMC RemedyAction Request System, BMC Remedy Link for SQL Server and BMC RemedyEnterprise Integration Engine are registered trademarks or trademarks of BMC Software,Inc.

    Cisco and CiscoWorks Resource Manager Essentials are registered trademarks ortrademarks of Cisco Corporation.

    All other trademarks are the property of their respective owners.

    Copyright (c) 2007 BMC Software, Inc.

    All rights reserved.

    Redistribution and use in source and binary forms, with or without modification, are permitted

    provided that the following conditions are met:

    Redistributions of source code must retain the above copyright notice, this list ofconditions and the following disclaimer.

    Redistributions in binary form must reproduce the above copyright notice, this list ofconditions and the following disclaimer in the documentation and/or other materials

    provided with the distribution.

    Neither the name of the BMC Software, Inc. nor the names of its contributors may beused to endorse or promote products derived from this software without specific prior

    written permission.

    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS

    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT

    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR

    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE BMC SOFTWARE, INC.

    OR

    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

    EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR

    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF

    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING

    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Recommended