Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
fusiondirectory
fusiondirectory
Commits
3c4a209e
Commit
3c4a209e
authored
Jan 17, 2017
by
Côme Chilliet
Browse files
Fixes #5312 Added a --migrate-phones option to fusiondirectory-setup
parent
b5724e09
Changes
1
Hide whitespace changes
Inline
Side-by-side
contrib/bin/fusiondirectory-setup
View file @
3c4a209e
...
...
@@ -1824,6 +1824,71 @@ sub migrate_systems {
$unbind
->
code
&&
warn
"
! Unable to unbind from LDAP server:
",
$unbind
->
error
.
"
\n
";
}
# function that migrates phones from FD<1.1 to FD>=1.1
sub
migrate_phones
{
# initiate the LDAP connexion
my
%hash_ldap_param
=
get_ldap_connexion
();
# LDAP's connection's parameters
my
$base
=
$hash_ldap_param
{
base
};
my
$ldap
=
$hash_ldap_param
{
ldap
};
my
$mesg
=
$ldap
->
search
(
filter
=>
'
(&(objectClass=fdPhone)(objectClass=device))
',
base
=>
$base
);
$mesg
->
code
&&
die
$mesg
->
error
;
if
(
$mesg
->
count
>
0
)
{
print
("
The following phones are still using the device objectClass:
\n
");
my
@entries
=
$mesg
->
entries
;
foreach
my
$entry
(
@entries
)
{
print
$entry
->
dn
()
.
"
\n
";
}
if
(
ask_yn_question
("
Migrate these entries to fdPhone objectClass?
"))
{
foreach
my
$entry
(
@entries
)
{
my
$tmprdn
=
"
cn=
"
.
$entry
->
get_value
('
cn
')
.
"
+objectClass=fdPhone
";
my
$newrdn
=
"
cn=
"
.
$entry
->
get_value
('
cn
');
my
$dn_old
=
$entry
->
dn
();
my
$dn_new
=
$entry
->
dn
();
$dn_new
=~
s/^[^,]+,/$tmprdn,/
;
$entry
->
dn
(
$dn_new
);
my
@replace
=
();
my
@classes
=
$entry
->
get_value
('
objectClass
');
foreach
my
$class
(
@classes
)
{
if
(
$class
ne
'
device
')
{
push
(
@replace
,
"
$class
");
}
}
$entry
->
replace
("
objectClass
"
=>
\
@replace
);
$mesg
=
$ldap
->
add
(
$entry
);
if
(
$mesg
->
code
)
{
print
$entry
->
dn
()
.
"
:
"
.
$mesg
->
error
.
"
\n
";
next
;
}
undef
@replace
;
$mesg
=
$ldap
->
delete
(
$dn_old
);
if
(
$mesg
->
code
)
{
print
$entry
->
dn
()
.
"
:
"
.
$mesg
->
error
.
"
\n
";
next
;
}
$mesg
=
$ldap
->
moddn
(
$dn_new
,
newrdn
=>
$newrdn
);
if
(
$mesg
->
code
)
{
print
$entry
->
dn
()
.
"
:
"
.
$mesg
->
error
.
"
\n
";
next
;
}
}
}
}
# unbind to the LDAP server
my
$unbind
=
$ldap
->
unbind
;
$unbind
->
code
&&
warn
"
! Unable to unbind from LDAP server:
",
$unbind
->
error
.
"
\n
";
}
# List LDAP attributes which have been deprecated
sub
list_deprecated
{
my
(
$obsolete_attrs
,
$obsolete_classes
)
=
get_deprecated
();
...
...
@@ -2074,6 +2139,7 @@ die ("! You have to run this script as root\n") if ($<!=0);
$commands
{"
--check-ids
"}
=
["
Checking for duplicated uid or gid numbers
",
\
&check_id_numbers
];
$commands
{"
--migrate-users
"}
=
["
Migrating your users
",
\
&migrate_users
];
$commands
{"
--migrate-printers
"}
=
["
Migrating your printers from FD < 1.0.14
",
\
&migrate_printers
];
$commands
{"
--migrate-phones
"}
=
["
Migrating your phones from FD < 1.1
",
\
&migrate_phones
];
$commands
{"
--migrate-systems
"}
=
["
Migrating your systems from FD < 1.1
",
\
&migrate_systems
];
$commands
{"
--migrate-dns
"}
=
["
Migrating DNS zones for FD >= 1.0.10
",
\
&migrate_dns
];
$commands
{"
--migrate-dhcp
"}
=
["
Migrating DHCP configurations for FD >= 1.0.17
",
\
&migrate_dhcp
];
...
...
@@ -2179,6 +2245,10 @@ This option add FusionDirectory attributes to the people branch.
This option replace gosaPrinter objectClass by new fdPrinter objectClass.
=item --migrate-phones
This option removes device objectClass for phones as fdPhones is now structural since FD 1.1.
=item --migrate-systems
This option replace old systems objectClasses by new objectClasses from FD 1.1.
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment