Revision: 19674
          http://gar.svn.sourceforge.net/gar/?rev=19674&view=rev
Author:   wahwah
Date:     2012-11-12 15:55:20 +0000 (Mon, 12 Nov 2012)
Log Message:
-----------
csw-upload-pkg: Code refactoring

Moving a more generally useful function into rest.py, to be used with the
catalog integration script (potentially).

Modified Paths:
--------------
    csw/mgar/gar/v2/lib/python/csw_upload_pkg.py
    csw/mgar/gar/v2/lib/python/rest.py

Modified: csw/mgar/gar/v2/lib/python/csw_upload_pkg.py
===================================================================
--- csw/mgar/gar/v2/lib/python/csw_upload_pkg.py        2012-11-12 15:39:38 UTC 
(rev 19673)
+++ csw/mgar/gar/v2/lib/python/csw_upload_pkg.py        2012-11-12 15:55:20 UTC 
(rev 19674)
@@ -285,52 +285,7 @@
     basename = os.path.basename(filename)
     parsed_basename = opencsw.ParsePackageFileName(basename)
     logging.debug("parsed_basename: %s", parsed_basename)
-    url = (
-        "%s%s/catalogs/%s/%s/%s/%s/"
-        % (self.rest_url,
-           RELEASES_APP,
-           DEFAULT_CATREL,
-           arch,
-           osrel,
-           md5_sum))
-    logging.debug("URL: %s %s", type(url), url)
-    c = pycurl.Curl()
-    d = StringIO()
-    h = StringIO()
-    # Bogus data to upload
-    s = StringIO()
-    c.setopt(pycurl.URL, str(url))
-    c.setopt(pycurl.PUT, 1)
-    c.setopt(pycurl.UPLOAD, 1)
-    c.setopt(pycurl.INFILESIZE_LARGE, s.len)
-    c.setopt(pycurl.READFUNCTION, s.read)
-    c.setopt(pycurl.WRITEFUNCTION, d.write)
-    c.setopt(pycurl.HEADERFUNCTION, h.write)
-    c.setopt(pycurl.HTTPHEADER, ["Expect:"]) # Fixes the HTTP 417 error
-    c = self._SetAuth(c)
-    if self.debug:
-      c.setopt(c.VERBOSE, 1)
-    c.perform()
-    http_code = c.getinfo(pycurl.HTTP_CODE)
-    logging.debug(
-        "curl getinfo: %s %s %s",
-        type(http_code),
-        http_code,
-        c.getinfo(pycurl.EFFECTIVE_URL))
-    c.close()
-    # if self.debug:
-    #   logging.debug("*** Headers")
-    #   logging.debug(h.getvalue())
-    #   logging.debug("*** Data")
-    if http_code >= 400 and http_code <= 599:
-      if not self.debug:
-        # In debug mode, all headers are printed to screen, and we aren't
-        # interested in the response body.
-        logging.fatal("Response: %s %s", http_code, d.getvalue())
-      raise RestCommunicationError("%s - HTTP code: %s" % (url, http_code))
-    else:
-      logging.debug("Response: %s %s", http_code, d.getvalue())
-    return http_code
+    return rest_client.AddSvr4ToCatalog(catrel, arch, osrel, md5_sum)
 
   def _GetSrv4FileMetadata(self, md5_sum):
     logging.debug("_GetSrv4FileMetadata(%s)", repr(md5_sum))

Modified: csw/mgar/gar/v2/lib/python/rest.py
===================================================================
--- csw/mgar/gar/v2/lib/python/rest.py  2012-11-12 15:39:38 UTC (rev 19673)
+++ csw/mgar/gar/v2/lib/python/rest.py  2012-11-12 15:55:20 UTC (rev 19674)
@@ -150,7 +150,55 @@
           "%s - HTTP code: %s, content: %s"
           % (url, http_code, d.getvalue()))
 
+  def AddSvr4ToCatalog(self, catrel, arch, osrel, md5_sum):
+    url = (
+        "%s%s/catalogs/%s/%s/%s/%s/"
+        % (self.rest_url,
+           RELEASES_APP,
+           DEFAULT_CATREL,
+           arch,
+           osrel,
+           md5_sum))
+    logging.debug("URL: %s %s", type(url), url)
+    c = pycurl.Curl()
+    d = StringIO()
+    h = StringIO()
+    # Bogus data to upload
+    s = StringIO()
+    c.setopt(pycurl.URL, str(url))
+    c.setopt(pycurl.PUT, 1)
+    c.setopt(pycurl.UPLOAD, 1)
+    c.setopt(pycurl.INFILESIZE_LARGE, s.len)
+    c.setopt(pycurl.READFUNCTION, s.read)
+    c.setopt(pycurl.WRITEFUNCTION, d.write)
+    c.setopt(pycurl.HEADERFUNCTION, h.write)
+    c.setopt(pycurl.HTTPHEADER, ["Expect:"]) # Fixes the HTTP 417 error
+    c = self._SetAuth(c)
+    if self.debug:
+      c.setopt(c.VERBOSE, 1)
+    c.perform()
+    http_code = c.getinfo(pycurl.HTTP_CODE)
+    logging.debug(
+        "curl getinfo: %s %s %s",
+        type(http_code),
+        http_code,
+        c.getinfo(pycurl.EFFECTIVE_URL))
+    c.close()
+    # if self.debug:
+    #   logging.debug("*** Headers")
+    #   logging.debug(h.getvalue())
+    #   logging.debug("*** Data")
+    if http_code >= 400 and http_code <= 599:
+      if not self.debug:
+        # In debug mode, all headers are printed to screen, and we aren't
+        # interested in the response body.
+        logging.fatal("Response: %s %s", http_code, d.getvalue())
+      raise RestCommunicationError("%s - HTTP code: %s" % (url, http_code))
+    else:
+      logging.debug("Response: %s %s", http_code, d.getvalue())
+    return http_code
 
+
 class CachedPkgstats(object):
   """Class responsible for holding and caching package stats.
 

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

_______________________________________________
devel mailing list
devel@lists.opencsw.org
https://lists.opencsw.org/mailman/listinfo/devel

Reply via email to