Esempio n. 1
0
def upload_from_metadata(group, meta):
    """
    Given only metadata of an archive ask charon to retrive it where possible
    """
    if group not in config.SUBMISSION_GROUPS.keys():
        raise ValueError('Invalid group')
    return download(group, meta)
Esempio n. 2
0
def upload_from_coordinates(group, coordinates):
    """
    Given only coordinates of an archive ask charon to retrive it if possible
    """
    if group not in config.SUBMISSION_GROUPS.keys():
        raise ValueError("Invalid group")
    return download(group, coordinates)
Esempio n. 3
0
 def handleCloseVersions(self,json):
     version = json.version
     depCves = json.cves
     response = self.getClosestVersions(json)
     response = response["response"]
     numFound = response["numFound"]
     if(int(numFound) == 0 ):
         return 'Error - could not find dependency in maven central repo'
     elif(int(numFound) == 1):
         return 'There is only one version available, nothing to be done'
     else:
         deps = response["docs"]
         noOfDeps = len(deps)
         posOfDep = -1
         for i in xrange(0,noOfDeps):
             if(deps[i]["v"] == version):
                 posOfDep = i
                 break
         if posOfDep == -1:
             return 'Error - cannot find current version number in maven search'
         else:
             if posOfDep+1 >= 0:
                 for i in xrange(-1,2):
                     if (i != 0):
                         info = dict(groupId=str(deps[i]["g"]),artifactId=str(deps[i]["a"]),version=str(deps[posOfDep+i]["v"]))
                         javamanager = JavaManager()
                         artifact = javamanager.make_artifact(info)
                         for repo in javamanager.repos:
                             uri = repo.get_artifact_uri(artifact, 'jar')
                             sha1 = repo.download_check_sum('sha1', uri)
                             count = Submission.objects(entry=sha1).count();
                             if(str(count).isdigit()):
                                 if(float(count) != 1):
                                     #submit from submissions
                                     downloadLocation = download('java',info)
                                     return submit('similaritySearch', downloadLocation[0][0], group="java", filename=downloadLocation[0][0][downloadLocation[0][0].rindex("/")+1:], suffix=True, cves=depCves,
                                                   metadata=info, entry=False, approval='REQUESTED')
                                     return "adding the new dependency"
                     else:
                         continue
                             
             else:
                 return 'No available dependencies in the maven central repository'