You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "Sheng Yang (JIRA)" <ji...@apache.org> on 2013/07/19 02:14:48 UTC
[jira] [Commented] (CLOUDSTACK-2053) [BUG] userdata.sh on router VM
fixes for if else logic and missing meta-data
[ https://issues.apache.org/jira/browse/CLOUDSTACK-2053?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13713151#comment-13713151 ]
Sheng Yang commented on CLOUDSTACK-2053:
----------------------------------------
Do we need the same fix for 4.2 and MASTER?
> [BUG] userdata.sh on router VM fixes for if else logic and missing meta-data
> ----------------------------------------------------------------------------
>
> Key: CLOUDSTACK-2053
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-2053
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the default.)
> Components: Network Controller
> Affects Versions: 4.0.0, 4.1.0, 4.2.0
> Environment: VSphere 5.0 and ACS 4.1
> Reporter: ilya musayev
> Assignee: ilya musayev
> Labels: ROUTERVM
> Fix For: 4.2.0
>
>
> Logic in userdata.sh for bash if / else is not optimal and is based on exit codes VS using native "if grep" support. Current logic is causing multiple redundant entries in .htaccess files.
> Moreover, we are missing the meta-data rewrite rule in .htaccess file for cloud-init/boto component to configure the vm.
> Details:
> Instead of doing:
> grep -F `echo $entry` $htaccessFile
>
> if [ $? -gt 0 ]; then
> echo -e $entry >> $htaccessFile;
> fi
> result=$?
>
> if [ $result -eq 0 ]; then
> entry="Options -Indexes\\nOrder Deny,Allow\\nDeny from all\\nAllow from $vmIp"
> htaccessFolder="/var/www/html/$folder/$vmIp"
> htaccessFile=$htaccessFolder/.htaccess
> mkdir -p $htaccessFolder
> echo -e $entry > $htaccessFile
> result=$?
> fi
> We should do:
> if ! grep -Fq "$entry" $htaccessFile
> then
> echo -e $entry >> $htaccessFile;
> result=$?
> else
> entry="Options -Indexes\\nOrder Deny,Allow\\nDeny from all\\nAllow from $vmIp"
> htaccessFolder="/var/www/html/$folder/$vmIp"
> htaccessFile=$htaccessFolder/.htaccess
> mkdir -p $htaccessFolder
> echo "echo -e $entry \> $htaccessFile"
> echo -e $entry > $htaccessFile
> result=$?
> fi
> I'm still keeping the "result=$?", because the logic is based on exit codes - in other places, however, it is unnecessary.
> Also, we are missing Rewrite rule in .htaccess file:
> RewriteRule ^meta-data/$ ../metadata/%{REMOTE_ADDR}/meta-data [L,NC,QSA]
> RewriteRule ^meta-data/(.*)$ ../metadata/%{REMOTE_ADDR}/$1 [L,NC,QSA]
> As boto is looking for meta-data under /var/www/html/latest, but cant find it and fails to proceed.
> I will add a function to check if entry exists, and if not, append.
> Overall, this fix will keep the .htaccess file much cleaner with only 1 entry per file and dir.
> Regards
> ilya
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira