From ff281af03537d6d95c79d1196aade5a53eb8b3d3 Mon Sep 17 00:00:00 2001 From: alena Date: Tue, 1 Feb 2011 16:26:10 -0800 Subject: [PATCH] bug 8253: get_password_from_domr is a part of source code now. It should be located under /usr/bin/ directory on the Management server once cloudstack software is installed status 8253: resolved fixed --- cloud.spec | 1 + debian/cloud-setup.install | 1 + .../config/opt/cloud/bin/serve_password.sh | 2 +- .../cloud/server/ConfigurationServerImpl.java | 5 -- setup/bindir/get_password_from_domr.in | 46 +++++++++++++++++++ 5 files changed, 49 insertions(+), 6 deletions(-) create mode 100755 setup/bindir/get_password_from_domr.in diff --git a/cloud.spec b/cloud.spec index 43b20613115..d1e526ac584 100644 --- a/cloud.spec +++ b/cloud.spec @@ -506,6 +506,7 @@ fi %files setup %attr(0755,root,root) %{_bindir}/%{name}-setup-databases %attr(0755,root,root) %{_bindir}/%{name}-migrate-databases +%attr(0755,root,root) %{_bindir}/get_password_from_domr %dir %{_datadir}/%{name}/setup %{_datadir}/%{name}/setup/*.sql %{_datadir}/%{name}/setup/deploy-db-dev.sh diff --git a/debian/cloud-setup.install b/debian/cloud-setup.install index a6d7c149ac5..d685eaaf449 100644 --- a/debian/cloud-setup.install +++ b/debian/cloud-setup.install @@ -1,5 +1,6 @@ /usr/bin/cloud-setup-databases /usr/bin/cloud-migrate-databases +/usr/bin/get_password_from_domr /usr/share/cloud/setup/*.sql /usr/share/cloud/setup/deploy-db-dev.sh /usr/share/cloud/setup/server-setup.xml diff --git a/patches/systemvm/debian/config/opt/cloud/bin/serve_password.sh b/patches/systemvm/debian/config/opt/cloud/bin/serve_password.sh index 398a5591266..e2226c613e0 100755 --- a/patches/systemvm/debian/config/opt/cloud/bin/serve_password.sh +++ b/patches/systemvm/debian/config/opt/cloud/bin/serve_password.sh @@ -37,7 +37,7 @@ do break fi - request=$(echo $input | grep "VM Request:" | cut -d: -f2 | sed 's/^[ \t]*//') + request=$(echo $input | grep "VM_Request:" | cut -d: -f2 | sed 's/^[ \t]*//') if [ "$request" != "" ] then diff --git a/server/src/com/cloud/server/ConfigurationServerImpl.java b/server/src/com/cloud/server/ConfigurationServerImpl.java index 717f5f79bb2..efe8b62a527 100644 --- a/server/src/com/cloud/server/ConfigurationServerImpl.java +++ b/server/src/com/cloud/server/ConfigurationServerImpl.java @@ -32,7 +32,6 @@ import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.sql.PreparedStatement; import java.sql.SQLException; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Properties; @@ -44,7 +43,6 @@ import javax.crypto.SecretKey; import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Logger; -import com.cloud.agent.api.routing.NetworkElementCommand; import com.cloud.configuration.Config; import com.cloud.configuration.ConfigurationVO; import com.cloud.configuration.dao.ConfigurationDao; @@ -59,8 +57,6 @@ import com.cloud.domain.DomainVO; import com.cloud.domain.dao.DomainDao; import com.cloud.exception.InternalErrorException; import com.cloud.exception.InvalidParameterValueException; -import com.cloud.hypervisor.Hypervisor.HypervisorType; -import com.cloud.network.IPAddressVO; import com.cloud.network.Network; import com.cloud.network.Network.State; import com.cloud.network.NetworkVO; @@ -83,7 +79,6 @@ import com.cloud.storage.DiskOfferingVO; import com.cloud.storage.SnapshotPolicyVO; import com.cloud.storage.dao.DiskOfferingDao; import com.cloud.storage.dao.SnapshotPolicyDao; -import com.cloud.test.DatabaseConfig; import com.cloud.test.IPRangeConfig; import com.cloud.user.Account; import com.cloud.user.User; diff --git a/setup/bindir/get_password_from_domr.in b/setup/bindir/get_password_from_domr.in new file mode 100755 index 00000000000..66216bb1cb6 --- /dev/null +++ b/setup/bindir/get_password_from_domr.in @@ -0,0 +1,46 @@ +#!/bin/bash +# +# Init file for Password Download Client +# +# chkconfig: 345 98 02 +# description: Password Download Client + +# Modify this line to specify the user (default is root) +user=root + +# Add your DHCP lease file here +DHCP_FILES="/var/lib/dhclient/dhclient-eth0.leases /var/lib/dhcp3/dhclient.eth0.leases" + +for DHCP_FILE in $DHCP_FILES +do + if [ -f $DHCP_FILE ] + then + DOMR_IP=$(grep dhcp-server-identifier $DHCP_FILE | tail -1 | awk '{print $NF}' | tr -d '\;') + break; + fi +done + +password=$(wget -t 3 -T 20 -O - --header "VM_Request: send_my_password" $DOMR_IP:8080) + +if [ $? -ne 0 ] +then + exit 1 +fi + +password=$(echo $password | tr -d '\r') + +if [ -n "$password" ] && [ "$password" != "bad_request" ] && [ "$password" != "saved_password" ] +then + echo $password | passwd --stdin $user + if [ $? -gt 0 ] + then + usermod -p `mkpasswd $password 42` $user + if [ $? -gt 0 ] + then + exit 1 + fi + fi + wget -t 3 -T 20 -O - --header "VM_Request: saved_password" $DOMR_IP:8080 +fi + +exit 0