docs: function registerResult( specification , options, results , callback) {
      if (typeof specification !== 'object')
          specification = new mplane.Specification(specification);
  
      var ret = new mplane.Result(specification);
      var resultsName = specification.result_column_names();
  
      resultsName.forEach(function(resName){
          ret.set_result_value(resName,results[resName] || "");
      });
  
      var post_data = ret.to_dict();
      var post_options = {
          path: SUPERVISOR_PATH_REGISTER_RESULT ,
          method: 'POST',
          host: options.host,
          port: options.port,
          followRedirect:false,
          headers: {
              'Content-Type': MIME_TYPE,
              'Content-Length': post_data.length
          }
          ,key: ssl_files.readFileContent(options.keyFile)
          ,cert: ssl_files.readFileContent(options.certFile)
          ,ca: ssl_files.readCaChain(options.caFile)
      };
      // Set up the request
      var post_req = https.request(post_options, function(res) {
          if (res.statusCode == 200){
              callback(null,null);
          }else{
              callback(new Error(res.statusCode),null);
          }
      });
      // post the data
      post_req.write(post_data);
      post_req.end();
  }