Symptoms

POA Update pre-check fails with a following error:

ERROR: Error during OpenAPI call: Can not install Virtuozzo template from http://<IP>/tarballs/templates/poa-5.4-1504_update13_poa-5.4-1504_update15/vzpem-pleskd-fc1-template-20130111-1.0-1.i386.rpm : 3501 : Can not install packages: ERROR: Not a rpm file: /var/opt/pva/agent/tmp/vzclient21525-cace47a0-c79d-0b4f-aa3f-6a742082e702/uploads/vzpem-pleskd-fc1-template-20130111-1.0-1.i386.rpm. Aborting...
 while importing template vzpem-pleskd-fc1-template-20130111-1.0-1.i386.rpm
(A)bort/(R)etry/(I)gnore:

Cause

Issue is caused by a vzpkginstall binary - it incorrectly interprets output from file tool during rpm validation. Issue was confirmed as a bug, its internal ID is PCLIN-30696.

Resolution

The issue was addressed in a Parallels Virtuozzo Containers for Linux 4.7 tools update TU-4.7.0-179 .

To deal with this problem, install all pending PVC updates using following command:

# vzup2date -m batch install --self-update

Internal content

If it does not help or you have an older version of Parallels Virtuozzo Containers(which is quite unlikely because there is no way to install 4.6 on centos 6), you may use the workaround below.

Workaround

  1. Log in via SSH to the HW Node marked in POA for templates import.

    If several nodes are marked, find the IP of the related HW node by tailing poa.debug.log on POA Core and retrying the operation.

    Jan 28 11:48:30 osscore : DBG [1:26557:b21f0ba0:12119 1:27771:b3f76ba0 VPSManager]: [Network::ConnectionPool::Impl::getConnection] Cached connection 0xaef4d8e8 found: ip 62.212.150.125
    
  2. Find the Node by IP in POA CP and log in to it via SSH.

  3. Make sure it's the same bug:

    1. Download the package from the URL in Error message:

      # wget http://<IP>/tarballs/templates/poa-5.4-1504_update13_poa-5.4-1504_update15/vzpem-pleskd-fc1-template-20130111-1.0-1.i386.rpm
      
    2. Try installing it with vzpkginstall, it should show the same error:

      # vzpkginstall vzpem-pleskd-fc1-template-20130111-1.0-1.i386.rpm
      ERROR: Not a rpm file: vzpem-pleskd-fc1-template-20130111-1.0-1.i386.rpm. Aborting...
      
  4. Apply the workaround from PCLIN-30696:

    Edit /usr/sbin/vzpkginstall by adding one line marked with "+" below:

    for package in $PACKAGES; do
        case `file -b -i $package` in
        application/x-rpm) continue ;;
    +    "application/x-rpm; charset=binary") continue ;;
        *) abort "Not a rpm file: $package. Aborting..." ;;
        esac
    done