]> git.proxmox.com Git - pve-manager.git/blobdiff - bin/pveceph
pveceph: use LWP instead of wget
[pve-manager.git] / bin / pveceph
index 2444f7e6d4578713459ab248c25856d4cffd0a61..b8e93c2111788a4237fb94520631a1cc97873e24 100755 (executable)
@@ -8,6 +8,7 @@ use File::Path;
 use IO::File;
 use JSON;
 use Data::Dumper;
+use LWP::UserAgent;
 
 use PVE::SafeSyslog;
 use PVE::Cluster;
@@ -102,9 +103,27 @@ __PACKAGE__->register_method ({
        my $keyurl = "https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc";
 
        print "download and import ceph reqpository keys\n";
-       system("wget -q -O- '$keyurl'| apt-key add - 2>&1 >/dev/null") == 0 ||
+
+       # Note: wget on Debian wheezy cannot handle new ceph.com certificates, so
+       # we use LWP::UserAgent
+       #system("wget -q -O- '$keyurl'| apt-key add - 2>&1 >/dev/null") == 0 ||
+       #die "unable to download ceph release key\n";
+
+       my $tmp_key_file = "/tmp/ceph-release-keys.asc";
+       my $ua = LWP::UserAgent->new(protocols_allowed => ['https'], timeout => 30);
+       $ua->env_proxy;
+       my $response = $ua->get($keyurl);
+       if ($response->is_success) {
+           my $data = $response->decoded_content;  
+           PVE::Tools::file_set_contents($tmp_key_file, $data);
+        } else {
+           die "unable to download ceph release key: " . $response->status_line . "\n";
+       }
+
+       system("apt-key add $tmp_key_file 2>&1 >/dev/null") == 0 ||
            die "unable to download ceph release key\n";
 
+       unlink $tmp_key_file;
 
        my $source = "deb http://ceph.com/debian-$cephver wheezy main\n";