5

GitHub - vmware/powershell-module-for-vmware-cloud-foundation-reporting: A Power...

 1 year ago
source link: https://github.com/vmware/powershell-module-for-vmware-cloud-foundation-reporting
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

A PowerShell Module for Cloud Foundation Reporting

PowerShell Module for VMware Cloud Foundation Reporting

Overview

VMware.CloudFoundation.Reporting is a PowerShell module that has been written to support the ability to provide insight to the operational state of VMware Cloud Foundation through the use of PowerShell cmdlets. These cmdlets provide quick access to information from the PowerShell console as well as the ability to publish pre-defined HTML reports.

Requirements

Platforms

Operating Systems

  • Microsoft Windows Server 2019 and 2022
  • Microsoft Windows 10 and 11
  • VMware Photon OS 3.0 and 4.0

PowerShell Editions and Versions

PowerShell Modules

Browsers

For the best experience, use one of the following browsers to view generated HTML reports.

  • Microsoft Edge
  • Google Chrome
  • Mozilla Firefox

Installing the Module

Verify that your system has a supported edition and version of PowerShell installed.

Install the supporting PowerShell modules from the PowerShell Gallery by running the following commands:

Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
Install-Module -Name VMware.PowerCLI -MinimumVersion 12.4.1
Install-Module -Name VMware.vSphere.SsoAdmin -MinimumVersion 1.3.7
Install-Module -Name PowerVCF -MinimumVersion 2.2.0
Install-Module -Name PowerValidatedSolutions -MinimumVersion 1.7.0
Install-Module -Name VMware.CloudFoundation.Reporting

To verify the modules are installed, run the following command in the PowerShell console.

Test-VcfReportingPrereq

Once installed, any cmdlets associated with VMware.CloudFoundation.Reporting and the supporting PowerShell modules will be available for use.

To view the cmdlets for available in the module, run the following command in the PowerShell console.

Get-Command -Module VMware.CloudFoundation.Reporting

To view the help for any cmdlet, run the Get-Help command in the PowerShell console.

For example:

Get-Help -Name Invoke-VcfHealthReport
Get-Help -Name Invoke-VcfHealthReport -Examples

User Access

Each cmdlet may provide one or more usage examples. Many of the cmdlets require that credentials are provided to output to the PowerShell console or a report.

The cmdlets in this module, and its dependencies, return data from multple platform components. The credentials for most of the platform components are returned to the cmdlets by retrieving credentials from the SDDC Manager inventory and using these credentials, as needed, within cmdlet operations.

For the best expereince, for cmdlets that connect to SDDC Manager, use the VMware Cloud Foundation API user admin@local or an account with the Cloud Administrator role in SDDC Manager (e.g., [email protected]).

Getting Started with Reports

The PowerShell module provides the ability to generate the following reports:

Reports default to a light-mode theme. If you prefer a dark-mode theme, you can use the -darkMode parameter with each Invoke-Vcf*Report cmdlets. Each report is self-contained and will retain formatting if the resulting HTML output is shared.

Example:

Screenshot

Generating System Overview Report Tasks

The Invoke-VcfOverviewReport cmdlet generates a system overview report. This report contains high-level information about the VMware Cloud Foundation system. This report may be used to provide a quick system overview of the system to your VMware representative.

Generate a System Overview Report for a VMware Cloud Foundation Instance

  1. Start PowerShell (Run as Administrator).

  2. Replace the values in the sample code with values for the instance of VMware Cloud Foundation to generate a system overview report for SDDC Manager instance and run the commands in the PowerShell console.

    Example: Windows

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $reportPath = "F:\Reporting"

    Example: Linux

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $reportPath = "/home/vmware/reporting"
  3. Generate the report by running the command in the PowerShell console.

    Invoke-VcfOverviewReport -sddcManagerFqdn $sddcManagerFqdn -sddcManagerUser $sddcManagerUser -sddcManagerPass $sddcManagerPass -reportPath $reportPath

    If you prefer to anonymize the data, you can use the -anonymized parameter.

    Invoke-VcfOverviewReport -sddcManagerFqdn $sddcManagerFqdn -sddcManagerUser $sddcManagerUser -sddcManagerPass $sddcManagerPass -reportPath $reportPath -anonymized
  4. Review the generated HTML report.

Generating Health Report Tasks

The Invoke-VcfHealthReport cmdlet generates a health report. This report combines the SoS Utility health checks with additional health checks not presently available in the SoS Utility for previous VMware Cloud Foundation releases. The report contains detailed information about the health of the VMware Cloud Foundation system and its components.

Generate a Health Report for a VMware Cloud Foundation Instance (Display Only Issues)

  1. Start PowerShell (Run as Administrator).

  2. Replace the values in the sample code with values for the instance of VMware Cloud Foundation to generate a health report for SDDC Manager instance and run the commands in the PowerShell console.

    Example: Windows

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $sddcManagerRootPass = "VMw@re1!"
    $reportPath = "F:\Reporting"

    Example: Linux

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $sddcManagerRootPass = "VMw@re1!"
    $reportPath = "/home/vmware/reporting"
  3. Generate the report which only displays issues by running the command in the PowerShell console.

    Invoke-VcfHealthReport -sddcManagerFqdn $sddcManagerFqdn -sddcManagerUser $sddcManagerUser -sddcManagerPass $sddcManagerPass -sddcManagerRootPass $sddcManagerRootPass -reportPath $reportPath -allDomains -failureOnly
  4. Review the generated HTML report and perform remediation of any identified issues.

Generate a Health Report for a Workload Domain (Display Only Issues)

  1. Start PowerShell (Run as Administrator).

  2. Replace the values in the sample code with values for the instance of VMware Cloud Foundation to generate a health report for SDDC Manager instance and run the commands in the PowerShell console.

    Example: Windows

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $sddcManagerRootPass = "VMw@re1!"
    $workloadDomain = "sfo-w01"
    $reportPath = "F:\Reporting"

    Example: Linux

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $sddcManagerRootPass = "VMw@re1!"
    $workloadDomain = "sfo-w01"
    $reportPath = "/home/vmware/reporting"
  3. Generate the report which only displays issues by running the command in the PowerShell console.

    Invoke-VcfHealthReport -sddcManagerFqdn $sddcManagerFqdn -sddcManagerUser $sddcManagerUser -sddcManagerPass $sddcManagerPass -sddcManagerRootPass $sddcManagerRootPass -reportPath $reportPath -workloadDomain $workloadDomain -failureOnly
  4. Review the generated HTML report and perform remediation of any identified issues.

Generate a Health Report for a VMware Cloud Foundation Instance

  1. Start PowerShell (Run as Administrator).

  2. Replace the values in the sample code with values for the instance of VMware Cloud Foundation to generate a health report for SDDC Manager instance and run the commands in the PowerShell console.

    Example: Windows

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $sddcManagerRootPass = "VMw@re1!"
    $reportPath = "F:\Reporting"

    Example: Linux

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $sddcManagerRootPass = "VMw@re1!"
    $reportPath = "/home/vmware/reporting"
  3. Generate the report by running the command in the PowerShell console.

    Invoke-VcfHealthReport -sddcManagerFqdn $sddcManagerFqdn -sddcManagerUser $sddcManagerUser -sddcManagerPass $sddcManagerPass -sddcManagerRootPass $sddcManagerRootPass -reportPath $reportPath -allDomains
  4. Review the generated HTML report and perform remediation of any identified issues.

Generate a Health Report for a Workload Domain

  1. Start PowerShell (Run as Administrator).

  2. Replace the values in the sample code with values for the instance of VMware Cloud Foundation to generate a health report for SDDC Manager instance and run the commands in the PowerShell console.

    Example: Windows

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $sddcManagerRootPass = "VMw@re1!"
    $workloadDomain = "sfo-w01"
    $reportPath = "F:\Reporting"

    Example: Linux

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $sddcManagerRootPass = "VMw@re1!"
    $workloadDomain = "sfo-w01"
    $reportPath = "/home/vmware/reporting"
  3. Generate the report by running the command in the PowerShell console.

    Invoke-VcfHealthReport -sddcManagerFqdn $sddcManagerFqdn -sddcManagerUser $sddcManagerUser -sddcManagerPass $sddcManagerPass -sddcManagerRootPass $sddcManagerRootPass -reportPath $reportPath -workloadDomain $workloadDomain
  4. Review the generated HTML report and perform remediation of any identified issues.

Generating System Alert Report Tasks

The Invoke-VcfSystemAlertReport cmdlet generates a system alert report. This report collects information about the system alerts that are currently active in the VMware Cloud Foundation system for the platform components. This report reduces the need to login to multiple product interfaces to collect information about the system alerts.

Generate a System Alert Report for a VMware Cloud Foundation Instance (Display Only Issues)

  1. Start PowerShell (Run as Administrator).

  2. Replace the values in the sample code with values for the instance of VMware Cloud Foundation to generate a system alert report for SDDC Manager instance and run the commands in the PowerShell console.

    Example: Windows

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $reportPath = "F:\Reporting"

    Example: Linux

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $reportPath = "/home/vmware/reporting"
  3. Generate the report which only displays issues by running the command in the PowerShell console.

    Invoke-VcfAlertReport -sddcManagerFqdn $sddcManagerFqdn -sddcManagerUser $sddcManagerUser -sddcManagerPass $sddcManagerPass -reportPath $reportPath -allDomains -failureOnly
  4. Review the generated HTML report and perform remediation of any identified issues.

Generate a System Alert Report for a Workload Domain (Display Only Issues)

  1. Start PowerShell (Run as Administrator).

  2. Replace the values in the sample code with values for the instance of VMware Cloud Foundation to generate a system alert report for SDDC Manager instance and run the commands in the PowerShell console.

    Example: Windows

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $workloadDomain = "sfo-w01"
    $reportPath = "F:\Reporting"

    Example: Linux

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $workloadDomain = "sfo-w01"
    $reportPath = "/home/vmware/reporting"
  3. Generate the report which only displays issues by running the command in the PowerShell console.

    Invoke-VcfAlertReport -sddcManagerFqdn $sddcManagerFqdn -sddcManagerUser $sddcManagerUser -sddcManagerPass $sddcManagerPass -reportPath $reportPath -workloadDomain $workloadDomain -failureOnly
  4. Review the generated HTML report and perform remediation of any identified issues.

Generate a System Alert Report for a VMware Cloud Foundation Instance

  1. Start PowerShell (Run as Administrator).

  2. Replace the values in the sample code with values for the instance of VMware Cloud Foundation to generate a system alert report for SDDC Manager instance and run the commands in the PowerShell console.

    Example: Windowa

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $reportPath = "F:\Reporting"

    Example: Linux

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $reportPath = "/home/vmware/reporting"
  3. Generate the report by running the command in the PowerShell console.

    Invoke-VcfAlertReport -sddcManagerFqdn $sddcManagerFqdn -sddcManagerUser $sddcManagerUser -sddcManagerPass $sddcManagerPass -reportPath $reportPath -allDomains
  4. Review the generated HTML report and perform remediation of any identified issues.

Generate a System Alert Report for a Workload Domain

  1. Start PowerShell (Run as Administrator).

  2. Replace the values in the sample code with values for the instance of VMware Cloud Foundation to generate a system alert report for SDDC Manager instance and run the commands in the PowerShell console.

    Example: Windowa

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $workloadDomain = "sfo-w01"
    $reportPath = "F:\Reporting"

    Example: Linux

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $workloadDomain = "sfo-w01"
    $reportPath = "/home/vmware/reporting"
  3. Generate the report by running the command in the PowerShell console.

    Invoke-VcfAlertReport -sddcManagerFqdn $sddcManagerFqdn -sddcManagerUser $sddcManagerUser -sddcManagerPass $sddcManagerPass -reportPath $reportPath -workloadDomain $workloadDomain
  4. Review the generated HTML report and perform remediation of any identified issues.

Generating Password Policy Report Tasks

The Invoke-VcfPasswordPolicyReport cmdlet generates a password policy report. This report collects information about the password policy settings in a VMware Cloud Foundation system for the platform components. This report reduces the need to login to multiple product interfaces and endpoints to collect information about the password policy.

Generate a Password Policy Report for a VMware Cloud Foundation Instance

  1. Start PowerShell (Run as Administrator).

  2. Replace the values in the sample code with values for the instance of VMware Cloud Foundation to generate a password policy report for SDDC Manager instance and run the commands in the PowerShell console.

    Example: Windows

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $sddcManagerRootPass = "VMw@re1!"
    $reportPath = "F:\Reporting"

    Example: Linux

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $sddcManagerRootPass = "VMw@re1!"
    $reportPath = "/home/vmware/reporting"
  3. Generate the report by running the command in the PowerShell console.

    Invoke-VcfPasswordPolicy -sddcManagerFqdn $sddcManagerFqdn -sddcManagerUser $sddcManagerUser -sddcManagerPass $sddcManagerPass -reportPath $reportPath -allDomains
  4. Review the generated HTML report.

Generate a Password Policy Report for a Workload Domain

  1. Start PowerShell (Run as Administrator)

  2. Replace the values in the sample code with values for the instance of VMware Cloud Foundation to generate a password policy report for SDDC Manager instance and run the commands in the PowerShell console.

    Example: Windows

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $sddcManagerRootPass = "VMw@re1!"
    $workloadDomain = "sfo-w01"
    $reportPath = "F:\Reporting"

    Example: Linux

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $sddcManagerRootPass = "VMw@re1!"
    $workloadDomain = "sfo-w01"
    $reportPath = "/home/vmware/reporting"
  3. Generate the report by running the command in the PowerShell console.

    Invoke-VcfPasswordPolicy -sddcManagerFqdn $sddcManagerFqdn -sddcManagerUser $sddcManagerUser -sddcManagerPass $sddcManagerPass -reportPath $reportPath -workloadDomain $workloadDomain
  4. Review the generated HTML report.

Generating Configuration Report Tasks

The Invoke-VcfConfigurationReport cmdlet generates a configuration report. This report collects information about the configuration settings in a VMware Cloud Foundation system for the platform components. This report reduces the need to login to multiple product interfaces and endpoints to collect information about the configuration.

Generate a Configuration Report for a VMware Cloud Foundation Instance

  1. Start PowerShell (Run as Administrator).

  2. Replace the values in the sample code with values for the instance of VMware Cloud Foundation to generate a configuration report for SDDC Manager instance and run the commands in the PowerShell console.

    Example: Windows

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $reportPath = "F:\Reporting"

    Example: Linux

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $reportPath = "/home/vmware/reporting"
  3. Generate the report by running the command in the PowerShell console.

    Invoke-VcfConfigReport -sddcManagerFqdn $sddcManagerFqdn -sddcManagerUser $sddcManagerUser -sddcManagerPass $sddcManagerPass -reportPath $reportPath -allDomains
  4. Review the generated HTML report.

Generate a Configuration Report for a Workload Domain

  1. Start PowerShell (Run as Administrator).

  2. Replace the values in the sample code with values for the instance of VMware Cloud Foundation to generate a configuration report for SDDC Manager instance and run the commands in the PowerShell console.

    Example: Windows

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $workloadDomain = "sfo-w01"
    $reportPath = "F:\Reporting"

    Example: Linux

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $workloadDomain = "sfo-w01"
    $reportPath = "/home/vmware/reporting"
  3. Generate the report by running the command in the PowerShell console.

    Invoke-VcfConfigReport -sddcManagerFqdn $sddcManagerFqdn -sddcManagerUser $sddcManagerUser -sddcManagerPass $sddcManagerPass -reportPath $reportPath -workloadDomain $workloadDomain
  4. Review the generated HTML report.

Generating Upgrade Precheck Report Tasks

The upgrade precheck report, initiates an upgrade precheck of a workload domain using the REST API and presents the results in an HTML report. This allows you to start the precheck from the PowerShell console.

Perform an Upgrade Precheck for a Workload Domain

  1. Start PowerShell (Run as Administrator).

  2. Replace the values in the sample code with values for the instance of VMware Cloud Foundation to generate an upgrade precheck report for SDDC Manager instance and run the commands in the PowerShell console.

    Example: Windows

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $workloadDomain = "sfo-w01"
    $reportPath = "F:\Reporting"

    Example: Linux

    $sddcManagerFqdn = "sfo-vcf01.sfo.rainpole.io"
    $sddcManagerUser = "admin@local"
    $sddcManagerPass = "VMw@re1!VMw@re1!"
    
    $workloadDomain = "sfo-w01"
    $reportPath = "/home/vmware/reporting"
  3. Generate the report by running the command in the PowerShell console.

    Invoke-VcfUpgradePrecheck -sddcManagerFqdn $sddcManagerFqdn -sddcManagerUser $sddcManagerUser -sddcManagerPass $sddcManagerPass -reportPath $reportPath -workloadDomain $workloadDomain
  4. Review the generated HTML report.

Known Issues

  • The Invoke-VcfPasswordPolicy cmdlet fails to return collected information for the vCenter Server Password Policy Configuration when using PowerShell Core on Linux

    [00-00-0000_00:00:00] INFO Collecting vCenter Server Password Policy Configuration for VMware Cloud Foundation instance (sfo-vcf01.sfo.rainpole.io).
    
    Connect-SsoAdminServer: One or more errors occurred. (The SSL connection could not be established, see inner exception.)
    
    Test-SSOAuthentication: Unable to authenticate to Single-Sign-On Server (sfo-w01-vc01.sfo.rainpole.io), check credentials: PRE_VALIDATION_FAILED

    Workaround: Use PowerShell Core on Windows.

Contributing

The project team welcomes contributions from the community. Before you start working with PowerValidatedSolutions, please read our [Developer Certificate of Origin][vmware-cla-dco]. All contributions to this repository must be signed as described on that page. Your signature certifies that you wrote the patch or have the right to pass it on as an open-source patch.

For more detailed information, refer to the contribution guidelines to get started.

Support

This PowerShell module is not supported by VMware Support.

If you discover a bug or would like to suggest an enhancement, please open an issue.

License

Copyright 2022 VMware, Inc.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

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

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

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 COPYRIGHT HOLDER 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.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK