Environment
Novell iPrint for Linux
Situation
After migrating iPrint printers from NetWare to Linux using the OES 2 SP1 Migration tool, the Location and Description attributes of the iPrinter printers in eDirectory are blank. In other words, the Location and Description values are not seen when going to iManager -> Manage Printer -> Identification.
However, the Location and Description values are present in the Managed Object Database (MOD, or psmdb.dat). The Location and Description values from the MOD are viewed from:
However, the Location and Description values are present in the Managed Object Database (MOD, or psmdb.dat). The Location and Description values from the MOD are viewed from:
- http://x.x.x.x/ipp
- https://x.x.x.x/psmstatus
- Microsoft's Printers and Faxes Window after the printer is installed to the workstation
Resolution
Reported to engineering.
Workaround 1:
Manually add the Location and Description information to the eDirectory printer objects using iManager.
Workaround 2:
Import the Location and Description information using LDIF.
1. Create a text file called data.ldf. The contents of the LDIF text file should contain the printer's CN, Location, and Description. Below is a sample format:
Refer to the /opt/novell/iprint/bin/psmimport.xml to find the values to the above attributes. Note: "L" is the attribute name for Location.
The data.ldf can alternatively be auto created by using the script shown in the Addition Information section of this TID.
2. Copy the data.ldf file to the OES server's /tmp directory
3. Type these commands at a terminal:
NOTE: If the following error is returned
then follow these steps:
Workaround 1:
Manually add the Location and Description information to the eDirectory printer objects using iManager.
Workaround 2:
Import the Location and Description information using LDIF.
1. Create a text file called data.ldf. The contents of the LDIF text file should contain the printer's CN, Location, and Description. Below is a sample format:
dn: CN=MyPrinter,OU=Acct,O=MyCompany
changetype: modify
add: L
L: The location text of my choice
-
add: description
description: The description text of my choice
dn: CN=MyPrinter2 ... and so on.
changetype: modify
add: L
L: The location text of my choice
-
add: description
description: The description text of my choice
dn: CN=MyPrinter2 ... and so on.
Refer to the /opt/novell/iprint/bin/psmimport.xml to find the values to the above attributes. Note: "L" is the attribute name for Location.
The data.ldf can alternatively be auto created by using the script shown in the Addition Information section of this TID.
2. Copy the data.ldf file to the OES server's /tmp directory
3. Type these commands at a terminal:
#ice -SLDIF -f /tmp/data.ldf -DLDAP -s 192.168.150.12 -p 389 -d cn=admin,o=novell -w novell
Syntax:
ice -SLDIF -f /[path]/data.ldf -DLDAP -s [ServerIPorDNS] -p 389 -d [AdminFDN] -w [AdminPassword]
ice -SLDIF -f /[path]/data.ldf -DLDAP -s [ServerIPorDNS] -p 389 -d [AdminFDN] -w [AdminPassword]
NOTE: If the following error is returned
ldap_simple_bind failed: 13(Confidentiality required), dn: cn=admin.......
then follow these steps:
iManager -> LDAP -> LDAP Options -> choose the LDAP Group object -> uncheck "Require TLS for Simple Binds with Password" -> Click Apply -> LDAP -> LDAP Options -> View LDAP Servers -> Choose the LDAP Server object -> click the Refresh button -> run the command again.
Additional Information
- Create a script file named printerexport.pl to contain the following contents (don't include the -~-~ lines, but the text between those lines).
- Copy the file to the destination server's /opt/novell/iprint/bin
- Review the contents of the /opt/novell/iprint/bin/psminfo.xml file to ensure it contains the location and description information required to be created.
- Type these commands at the destination server's terminal:
- cd /opt/novell/iprint/bin
- chmod 775 printerexport.pl
- ./printerexport.pl
- The script will generate a file named data.ldf.
- Review the data.ldf for unexpected hard returns or other unexpected characters. Some special characters in the Location and Description fields don't transform clean when exporting the xml to ldf. Manually fix the unexpected formating and other problems.
- Continue with Step 2 in Workaround 2 listed above.
#!/usr/bin/perl
#
use lib '/opt/novell/iprint/lib/perl5';
use XML::Simple;
my $xmlref;
$xmlref = XMLin("/opt/novell/iprint/bin/psmimport.xml" ,
KeyAttr => [],
ForceArray => ['printer'],
ParserOpts => [ ProtocolEncoding =>'ISO-8859-1'],
ContentKey => _CONTENT);
open (DATALDIF, '>data.ldf');
print DATALDIF "version: 1\n";
foreach my $ref (@{$xmlref->{'printer'}})
{
my $dn = ref $ref->{'dn'} ? undef : $ref->{'dn'};
my $name = ref $ref->{'name'} ? undef : $ref->{'name'};
my $location = ref $ref->{'location'} ? undef : $ref->{'location'};
my $description = ref $ref->{'description'} ? undef : $ref->{'description'};
my $gwls = ref $ref->{'gatewayloadstring'} ? undef : $ref->{'gatewayloadstring'};
my $dirprintena = ref $ref->{'directprintenabled'} ? undef : $ref->{'directprintenabled'};
my $lprenabled = ref $ref->{'lprenabled'} ? undef : $ref->{'lprenabled'};
my $lprdatafilter = ref $ref->{'lprdatafilter'} ? undef : $ref->{'lprdatafilter'};
my $lprconfiguredtime = ref $ref->{'lprconfiguredtime'} ? undef : $ref->{'lprconfiguredtime'};
my $banner = ref $ref->{'bannername'} ? undef : $ref->{'bannername'};
my $auditflag = ref $ref->{'auditflag'} ? undef : $ref->{'auditflag'};
my $security = ref $ref->{'security_enabled'} ? undef : $ref->{'security_enabled'};
print DATALDIF "\ndn: $dn \n";
print DATALDIF "changetype: modify\n";
print DATALDIF "add: description\n";
print DATALDIF "description: $description\n";
print DATALDIF "-\n";
print DATALDIF "add: l\n";
print DATALDIF "l: $location\n";
}
close (DATALDIF);
-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~