Part of lp.archiveuploader.nascentuploadfile View In Hierarchy
Known subclasses: lp.archiveuploader.nascentuploadfile.DebBinaryUploadFile, lp.archiveuploader.nascentuploadfile.UdebBinaryUploadFile
Method | __init__ | Check presence of the component and section from an uploaded_file. |
Method | is_archindep | Check if the binary is targeted to architecture 'all'. |
Method | archtag | Return the binary target architecture. |
Method | priority | Checks whether the priority indicated is valid |
Method | local_checks | Should be implemented locally. |
Method | verify | Verify the contents of the .deb or .udeb as best we can. |
Method | extractAndParseControl | Extract and parse control information. |
Method | parseControl | Undocumented |
Method | verifyPackage | Check if the binary is in changesfile and its name is valid. |
Method | verifyVersion | Check if control version is valid matches the filename version. |
Method | verifyArchitecture | Check if the control architecture matches the changesfile. |
Method | verifyDepends | Check if control depends field is present and not empty. |
Method | verifySection | Check the section & priority match those in changesfile. |
Method | verifyPriority | Check if priority matches changesfile. |
Method | verifyFormat | Check if the DEB format is sane. |
Method | verifyDebTimestamp | Check specific DEB format timestamp checks. |
Method | findCurrentSourcePublication | Return the respective ISourcePackagePublishingHistory for this |
Method | findSourcePackageRelease | Return the respective ISourcePackageRelease for this binary upload. |
Method | verifySourcePackageRelease | Check if the given ISourcePackageRelease matches the context. |
Method | findBuild | Find and return a build for the given archtag, cached on policy. |
Method | checkBuild | See PackageUploadFile. |
Method | storeInDatabase | Insert this binary release and build into the database. |
Inherited from PackageUploadFile:
Method | component | Return an IComponent for self.component.name. |
Method | section | Return an ISection for self.section_name. |
Method | extractUserDefinedFields | Extract the user defined fields out of a control file list. |
Inherited from NascentUploadFile (via PackageUploadFile):
Method | content_type | The content type for this file. |
Method | filename | Return the NascentUpload filename. |
Method | dirname | Return the NascentUpload filename. |
Method | exists_on_disk | Whether or not the file is present on disk. |
Method | checkNameIsTaintFree | Verify if the filename contains forbidden characters. |
Method | checkSizeAndCheckSum | Check the size and checksums of the nascent file. |
They need to satisfy at least the NEW queue constraints that includes SourcePackageRelease creation, so component and section need to exist. Even if they might be overridden in the future.
We call binaries in this condition 'architecture-independent', i.e. They can be build in any architecture and the result will fit all architectures available.
If the binary is architecture independent, return the architecture of the machine that has built it (it is encoded in the changesfile name).
It returns an iterator over all the encountered errors and warnings.
Binary version doesn't need to match the changesfile version, because the changesfile version refers to the SOURCE version.
Also check if it is a valid architecture in LP context.
We run 'dpkg-deb' to look at the contents of the deb files to confirm they make sense.
It inspects publication in the targeted DistroSeries.
It raises UploadError if the spph was not found.
It inspect publication in the targeted DistroSeries.
It raises UploadError if the source was not found.
Verifications on the designed source are delayed because for mixed_uploads (source + binary) we do not have the source stored in DB yet (see verifySourcepackagerelease).
To find the right build, we try these steps, in order, until we have one: - Check first if a build id was provided. If it was, load that build. - Try to locate an existing suitable build, and use that. We also, in this case, change this build to be FULLYBUILT. - Create a new build in FULLYBUILT status.