Never miss an old file
[myops.git] / web / collect / server / upload.php
1 <?php
2
3 // $$
4
5 // this needs be created with proper permissions at package install time
6 $logdir="/var/www/html/uploadlogs";
7
8 // limit: applies to uploads coming from an unrecognized IP
9 $limit_bytes=8*1024;
10
11 $default_hostname="unknown";
12
13 function mkdir_if_needed ($dirname) {
14   if (is_dir ($dirname))
15     return;
16   mkdir ($dirname) or die ("Cannot create dir " . $dirname);
17 }
18   
19 // Get admin API handle
20 //require_once 'plc_api.php';
21 //global $adm;
22
23 // find the node that these longs should belong to by looking for a node_id
24 // with an ip the same as the http requestor ip
25 $ip = $_SERVER['REMOTE_ADDR'];
26
27 // $hostname=$default_hostname;
28 // locate hostname from DB based on this IP
29 // $interfaces=$adm->GetInterfaces(array("ip"=>$ip));
30 // if (! empty($interfaces) ) {
31 //   $interface=$interfaces[0];
32 //   $node_id=$interface['node_id'];
33 //   $nodes=$adm->GetNodes($node_id,array("hostname"));
34 //   if (!empty($nodes)) {
35 //     $hostname=$nodes[0]['hostname'];
36 //   }
37 //  }
38
39 date_default_timezone_set("UTC");
40 if ( isset( $_REQUEST['namespace'] ) ) {
41     $ns = $_REQUEST['namespace'];
42 } else {
43     $ns = "raw";
44 }
45
46 $rawdir=$logdir . "/" . $ns;
47 $date=strftime("%Y-%m-%dT%H:%M:%S");
48 $log_name=$date . "--" . $ip . "--upload";
49 $log_path=$rawdir . "/" . $log_name;
50 $month=strftime("%Y-%m");
51 $time=strftime("%d-%H-%M");
52
53 mkdir_if_needed ($rawdir);
54
55 ////////////////////////////////////////
56
57 $log=fopen($log_path,"w") or die ("Cannot open logfile "+$log_path);
58
59 $uploaded_name= $_FILES['log']['tmp_name'];
60 $uploaded_size=filesize($uploaded_name);
61
62 #fprintf ($log, "BootManager log created on: %s-%s\n",$month,$time);
63 fprintf( $log, "ip_external : %s\n",$ip);
64 #fprintf( $log, "hostname: %s\n",$hostname);
65 #fprintf ( $log, "uploaded file: %s (%d bytes)\n",$uploaded_name,$uploaded_size);
66 #if ( ( strcmp($hostname,$default_hostname)==0) && ( $uploaded_size >= $limit_bytes) ) {
67 #  fprintf ( $log, "contents from an unrecognized IP address was truncated to %d bytes\n",$limit_bytes);
68 #  $truncated=TRUE;
69 #  $uploaded_size=$limit_bytes;
70 # } else {
71 #  $truncated=FALSE;
72 # }
73
74 #fprintf( $log, "-----------------\n\n" );
75 if ( isset($uploaded_name) && $uploaded_name ) {
76     $uploaded = fopen($uploaded_name,'r');
77         $contents = fread($uploaded, $uploaded_size);
78         fclose($uploaded);
79         fwrite($log,$contents);
80         fclose($log);
81 } else {
82         $errlog = fopen("/var/www/html/upload.error.log", 'a+');
83         fwrite($errlog, "$ip failed upload\n");
84 }
85
86 ////////////////////////////////////////
87
88 // create symlinks for easy browsing
89
90 // /var/log/bm/per-month/2008-11/onelab1.inria.fr/31-20-02.bmlog
91 #$linkdir=$logdir;
92 #$linkdir=$linkdir . "/per-month";
93 #mkdir_if_needed ($linkdir);
94 #$linkdir=$linkdir . "/" . $month;
95 #mkdir_if_needed ($linkdir);
96 #$linkdir = $linkdir . "/" . $hostname;
97 #mkdir_if_needed ($linkdir);
98 #$link = $linkdir . "/" . $time ;
99 #symlink ("../../../raw/".$log_name,$link);
100
101 ## /var/log/bm/per-hostname/onelab1.inria.fr/2008-11-31-20-02.bmlog
102 #$linkdir=$logdir;
103 #$linkdir=$linkdir . "/per-hostname";
104 #mkdir_if_needed ($linkdir);
105 #$linkdir=$linkdir . "/" . $hostname;
106 #mkdir_if_needed ($linkdir);
107 #$link = $linkdir . "/" . $month . "-" . $time ;
108 #symlink ("../../raw/".$log_name,$link);
109 #
110 ## /var/log/bm/per-ip/138.96.250.141/2008-11-31-20-02.bmlog
111 #$linkdir=$logdir;
112 #$linkdir=$linkdir . "/per-ip";
113 #mkdir_if_needed ($linkdir);
114 #$linkdir=$linkdir . "/" . $ip;
115 #mkdir_if_needed ($linkdir);
116 #$link = $linkdir . "/" . $month . "-" . $time ;
117 #symlink ("../../raw/".$log_name,$link);
118
119 ?>