http_interactions:
- request:
    method: get
    uri: https://pasta-s.lternet.edu/package/error/eml/create_163966765080210573
    body:
      encoding: ''
      string: ''
    headers:
      Accept: application/json, text/xml, application/xml, */*
  response:
    status:
      status_code: 404
      category: Client error
      reason: Not Found
      message: 'Client error: (404) Not Found'
    headers:
      server: nginx/1.14.0 (Ubuntu)
      date: Wed, 19 Jan 2022 19:58:19 GMT
      content-type: text/plain
      content-length: '59'
      connection: keep-alive
      web-service: DataPackageManager-1.0
    body:
      encoding: UTF-8
      file: no
      string: The error file create_163966765080210573.txt was not found!
  recorded_at: 2022-01-19 19:58:20 GMT
  recorded_with: vcr/1.0.2, webmockr/0.8.0
- request:
    method: get
    uri: https://pasta-s.lternet.edu/package/report/eml/edi/595/1
    body:
      encoding: ''
      string: ''
    headers:
      Accept: application/json, text/xml, application/xml, */*
  response:
    status:
      status_code: 200
      category: Success
      reason: OK
      message: 'Success: (200) OK'
    headers:
      server: nginx/1.14.0 (Ubuntu)
      date: Wed, 19 Jan 2022 19:58:20 GMT
      content-type: application/xml
      content-length: '22126'
      connection: keep-alive
      web-service: DataPackageManager-1.0
    body:
      encoding: UTF-8
      file: no
      string: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<qr:qualityReport\n  xmlns=\"eml://ecoinformatics.org/qualityReport\"\n
        \ xmlns:qr=\"eml://ecoinformatics.org/qualityReport\"\n  xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n
        \ xsi:schemaLocation=\"eml://ecoinformatics.org/qualityReport https://raw.githubusercontent.com/PASTAplus/PASTA/master/DataPackageManager/WebRoot/xml/qualityReportSchema.xsd\"\n
        \ >\n  <creationDate>2021-12-15T13:11:38</creationDate>\n  <packageId>edi.595.1</packageId>\n
        \ <includeSystem>lter</includeSystem>\n  <includeSystem>knb</includeSystem>\n
        \ <datasetReport>\n    <qualityCheck qualityType=\"metadata\" system=\"lter\"
        statusType=\"error\" >\n      <identifier>packageIdPattern</identifier>\n
        \     <name>packageId pattern matches \"scope.identifier.revision\"</name>\n
        \     <description>Check against LTER requirements for scope.identifier.revision</description>\n
        \     <expected>'scope.n.m', where 'n' and 'm' are integers and 'scope' is
        one of an allowed set of values</expected>\n      <found>edi.595.1</found>\n
        \     <status>valid</status>\n      <explanation></explanation>\n      <suggestion></suggestion>\n
        \     <reference></reference>\n    </qualityCheck>\n    <qualityCheck qualityType=\"metadata\"
        system=\"lter\" statusType=\"error\" >\n      <identifier>emlVersion</identifier>\n
        \     <name>EML version 2.1.0 or beyond</name>\n      <description>Check the
        EML document declaration for version 2.1.0 or higher</description>\n      <expected>eml://ecoinformatics.org/eml-2.1.0
        or higher</expected>\n      <found>https://eml.ecoinformatics.org/eml-2.2.0</found>\n
        \     <status>valid</status>\n      <explanation>Validity of this quality
        report is dependent on this check being valid.</explanation>\n      <suggestion></suggestion>\n
        \     <reference></reference>\n    </qualityCheck>\n    <qualityCheck qualityType=\"metadata\"
        system=\"knb\" statusType=\"error\" >\n      <identifier>schemaValid</identifier>\n
        \     <name>Document is schema-valid EML</name>\n      <description>Check
        document schema validity</description>\n      <expected>schema-valid</expected>\n
        \     <found>Document validated for namespace: 'https://eml.ecoinformatics.org/eml-2.2.0'</found>\n
        \     <status>valid</status>\n      <explanation>Validity of this quality
        report is dependent on this check being valid.</explanation>\n      <suggestion></suggestion>\n
        \     <reference></reference>\n    </qualityCheck>\n    <qualityCheck qualityType=\"metadata\"
        system=\"knb\" statusType=\"error\" >\n      <identifier>parserValid</identifier>\n
        \     <name>Document is EML parser-valid</name>\n      <description>Check
        document using the EML IDs and references parser</description>\n      <expected>Validates
        with the EML IDs and references parser</expected>\n      <found>EML IDs and
        references parser succeeded</found>\n      <status>valid</status>\n      <explanation>Validity
        of this quality report is dependent on this check being valid.</explanation>\n
        \     <suggestion></suggestion>\n      <reference></reference>\n    </qualityCheck>\n
        \   <qualityCheck qualityType=\"metadata\" system=\"lter\" statusType=\"error\"
        >\n      <identifier>schemaValidDereferenced</identifier>\n      <name>Dereferenced
        document is schema-valid EML</name>\n      <description>References are dereferenced,
        and the resulting file validated</description>\n      <expected>schema-valid</expected>\n
        \     <found>Dereferenced document validated for namespace: 'https://eml.ecoinformatics.org/eml-2.2.0'</found>\n
        \     <status>valid</status>\n      <explanation>Validity of this quality
        report is dependent on this check being valid.</explanation>\n      <suggestion></suggestion>\n
        \     <reference></reference>\n    </qualityCheck>\n    <qualityCheck qualityType=\"metadata\"
        system=\"lter\" statusType=\"warn\" >\n      <identifier>keywordPresent</identifier>\n
        \     <name>keyword element is present</name>\n      <description>Checks to
        see if at least one keyword is present</description>\n      <expected>Presence
        of one or more keyword elements</expected>\n      <found>2 'keyword' element(s)
        found</found>\n      <status>valid</status>\n      <explanation></explanation>\n
        \     <suggestion></suggestion>\n      <reference></reference>\n    </qualityCheck>\n
        \   <qualityCheck qualityType=\"metadata\" system=\"lter\" statusType=\"warn\"
        >\n      <identifier>methodsElementPresent</identifier>\n      <name>A 'methods'
        element is present</name>\n      <description>All datasets should contain
        a 'methods' element, at a minimum a link to a separate methods doc.</description>\n
        \     <expected>presence of 'methods' at one or more xpaths.</expected>\n
        \     <found>1 'methods' element(s) found</found>\n      <status>valid</status>\n
        \     <explanation></explanation>\n      <suggestion></suggestion>\n      <reference>EML
        Best Practices, p. 28</reference>\n    </qualityCheck>\n    <qualityCheck
        qualityType=\"metadata\" system=\"lter\" statusType=\"warn\" >\n      <identifier>coveragePresent</identifier>\n
        \     <name>coverage element is present</name>\n      <description>At least
        one coverage element should be present in a dataset.</description>\n      <expected>At
        least one of geographicCoverage, taxonomicCoverage, or temporalCoverage is
        present in the EML.</expected>\n      <found>1 'coverage' element(s) found</found>\n
        \     <status>valid</status>\n      <explanation></explanation>\n      <suggestion></suggestion>\n
        \     <reference></reference>\n    </qualityCheck>\n    <qualityCheck qualityType=\"metadata\"
        system=\"lter\" statusType=\"info\" >\n      <identifier>geographicCoveragePresent</identifier>\n
        \     <name>geographicCoverage is present</name>\n      <description>Check
        that geographicCoverage exists in EML at the dataset level, or at least one
        entity's level, or at least one attribute's level.</description>\n      <expected>geographicCoverage
        at least at the dataset level.</expected>\n      <found>1 'geographicCoverage'
        element(s) found</found>\n      <status>info</status>\n      <explanation>Many
        but not all datasets are appropriate to have spatial coverage.</explanation>\n
        \     <suggestion>If sampling EML is used within methods, does that obviate
        geographicCoverage? Or should those sites be repeated or referenced?</suggestion>\n
        \     <reference>EML Best Practices v.2, p. 22-23. \"One geographicCoverage
        element should be included, whose boundingCoordinates describe the extent
        of the data....Additional geographicCoverage elements may be entered at the
        dataset level if there are significant distances between study sites and it
        would be confusing if they were grouped into one bounding box.\" 6 decimal
        places.</reference>\n    </qualityCheck>\n    <qualityCheck qualityType=\"metadata\"
        system=\"lter\" statusType=\"info\" >\n      <identifier>taxonomicCoveragePresent</identifier>\n
        \     <name>taxonomicCoverage is present</name>\n      <description>Check
        that taxonomicCoverage exists in EML at the dataset level, or at least one
        entity's level, or at least one attribute's level.</description>\n      <expected>taxonomicCoverage
        at least at the dataset level.</expected>\n      <found>0 'taxonomicCoverage'
        element(s) found</found>\n      <status>info</status>\n      <explanation>Only
        when taxa are pertinent to the dataset will they have taxonomicCoverage.</explanation>\n
        \     <suggestion>Could search title, abstract, keywords for any taxonomic
        name (huge). Could search keywordType=\"taxonomic\".</suggestion>\n      <reference>EML
        Best Practices v.2, p. 25</reference>\n    </qualityCheck>\n    <qualityCheck
        qualityType=\"metadata\" system=\"lter\" statusType=\"info\" >\n      <identifier>temporalCoveragePresent</identifier>\n
        \     <name>temporalCoverage is present</name>\n      <description>Check that
        temporalCoverage exists in EML at the dataset level, or at least one entity's
        level, or at least one attribute's level.</description>\n      <expected>temporalCoverage
        at least at the dataset level.</expected>\n      <found>1 'temporalCoverage'
        element(s) found</found>\n      <status>info</status>\n      <explanation>LTER
        wants to search datasets by time; the best place to search is the dataset
        level temporal coverage.</explanation>\n      <suggestion>Most datasets have
        a temporal range.</suggestion>\n      <reference>EML Best Practices v.2, p.
        24</reference>\n    </qualityCheck>\n    <qualityCheck qualityType=\"metadata\"
        system=\"lter\" statusType=\"error\" >\n      <identifier>pastaDoiAbsent</identifier>\n
        \     <name>An alternateIdentifier with a DOI system attribute that looks
        like it is generated by PASTA should not be present</name>\n      <description>Reject
        the data package if it contains an alternateIdentifier DOI that looks like
        PASTA generated it.</description>\n      <expected>No PASTA DOIs are expected
        to be found in the uploaded data package</expected>\n      <found>No PASTA
        DOI alternateIdentifier elements found</found>\n      <status>valid</status>\n
        \     <explanation>PASTA DOI values might appear in an uploaded data package
        (by various mechanisms). PASTA will assign a DOI after the upload has completed
        successfully, so an initial one should not be there.</explanation>\n      <suggestion></suggestion>\n
        \     <reference></reference>\n    </qualityCheck>\n    <qualityCheck qualityType=\"metadata\"
        system=\"lter\" statusType=\"warn\" >\n      <identifier>titleLength</identifier>\n
        \     <name>Dataset title length is at 5 least words.</name>\n      <description>If
        the title is shorter than 5 words, it might be insufficient. Title word count
        between 7 and 20 including prepositions and numbers.</description>\n      <expected>Between
        7 and 20 words</expected>\n      <found>9 words found.</found>\n      <status>valid</status>\n
        \     <explanation></explanation>\n      <suggestion></suggestion>\n      <reference>EML
        Best Practices, v.2, p. 13</reference>\n    </qualityCheck>\n    <qualityCheck
        qualityType=\"metadata\" system=\"lter\" statusType=\"warn\" >\n      <identifier>fundingPresence</identifier>\n
        \     <name>check to see if funding element is present</name>\n      <description>Checks
        to see if the funding element is included.</description>\n      <expected>the
        funding element is expected to be included</expected>\n      <found>funding
        not found</found>\n      <status>warn</status>\n      <explanation>Searches
        will want to display datasets by funder or grant id.</explanation>\n      <suggestion>Include
        the funding source, please.</suggestion>\n      <reference></reference>\n
        \   </qualityCheck>\n    <qualityCheck qualityType=\"metadata\" system=\"lter\"
        statusType=\"warn\" >\n      <identifier>datasetAbstractLength</identifier>\n
        \     <name>Dataset abstract element is a minimum of 20 words</name>\n      <description>Check
        the length of a dataset abstract and warn if less than 20 words.</description>\n
        \     <expected>An abstract is 20 words or more.</expected>\n      <found>3
        words found.</found>\n      <status>warn</status>\n      <explanation>An abstract
        helps a user determine if the dataset is useful for a specific purpose. An
        abstract is usually a paragraph.</explanation>\n      <suggestion>Add an abstract.</suggestion>\n
        \     <reference>EML Best Practices</reference>\n    </qualityCheck>\n    <qualityCheck
        qualityType=\"metadata\" system=\"lter\" statusType=\"error\" >\n      <identifier>duplicateEntityName</identifier>\n
        \     <name>There are no duplicate entity names</name>\n      <description>Checks
        that content is not duplicated by other entityName elements in the document</description>\n
        \     <expected>entityName is not a duplicate within the document</expected>\n
        \     <found>No duplicates found</found>\n      <status>valid</status>\n      <explanation>Data
        Manager requires a non-empty, non-duplicate entityName value for every entity</explanation>\n
        \     <suggestion>Declare a non-empty entityName and ensure that there are
        no duplicate entityName values in the document</suggestion>\n      <reference></reference>\n
        \   </qualityCheck>\n  </datasetReport>\n  <entityReport>\n    <entityName>data.txt</entityName>\n
        \   <qualityCheck qualityType=\"metadata\" system=\"knb\" statusType=\"warn\"
        >\n      <identifier>entityNameLength</identifier>\n      <name>Length of
        entityName is not excessive (less than 100 char)</name>\n      <description>length
        of entity name is less than 100 characters</description>\n      <expected>entityName
        value is 100 characters or less</expected>\n      <found>8</found>\n      <status>valid</status>\n
        \     <explanation></explanation>\n      <suggestion></suggestion>\n      <reference></reference>\n
        \   </qualityCheck>\n    <qualityCheck qualityType=\"metadata\" system=\"lter\"
        statusType=\"warn\" >\n      <identifier>entityDescriptionPresent</identifier>\n
        \     <name>An entity description is present</name>\n      <description>Check
        for presence of an entity description.</description>\n      <expected>EML
        Best practices pp. 32-33, \"...should have enough information for a user...\"</expected>\n
        \     <found>false</found>\n      <status>warn</status>\n      <explanation>With
        entityName sometimes serving as a file name rather than a title, it is important
        to be very descriptive here.</explanation>\n      <suggestion></suggestion>\n
        \     <reference></reference>\n    </qualityCheck>\n    <qualityCheck qualityType=\"metadata\"
        system=\"knb\" statusType=\"info\" >\n      <identifier>numHeaderLinesPresent</identifier>\n
        \     <name>'numHeaderLines' element is present</name>\n      <description>Check
        for presence of the 'numHeaderLines' element.</description>\n      <expected>Document
        contains 'numHeaderLines' element.</expected>\n      <found>No 'numHeaderLines'
        element found</found>\n      <status>info</status>\n      <explanation>If
        data file contains header lines, 'numHeaderLines' must be specified.</explanation>\n
        \     <suggestion>Add 'numHeaderLines' element if needed.</suggestion>\n      <reference></reference>\n
        \   </qualityCheck>\n    <qualityCheck qualityType=\"metadata\" system=\"knb\"
        statusType=\"info\" >\n      <identifier>numFooterLinesPresent</identifier>\n
        \     <name>'numFooterLines' element is present</name>\n      <description>Check
        for presence of the 'numFooterLines' element.</description>\n      <expected>Document
        contains 'numFooterLines' element.</expected>\n      <found>No 'numFooterLines'
        element found</found>\n      <status>info</status>\n      <explanation>If
        data file contains footer lines, 'numFooterLines' must be specified.</explanation>\n
        \     <suggestion>Add 'numFooterLines' element if needed.</suggestion>\n      <reference></reference>\n
        \   </qualityCheck>\n    <qualityCheck qualityType=\"metadata\" system=\"knb\"
        statusType=\"error\" >\n      <identifier>fieldDelimiterValid</identifier>\n
        \     <name>Field delimiter is a single character</name>\n      <description>Field
        delimiters should be one character only</description>\n      <expected>A single
        character is expected</expected>\n      <found>null</found>\n      <status>info</status>\n
        \     <explanation>A fieldDelimiter value is not checked for binary entities
        or entities with an externally defined format</explanation>\n      <suggestion></suggestion>\n
        \     <reference>http://knb.ecoinformatics.org/software/eml/eml-2.1.0/eml-physical.html#fieldDelimiter</reference>\n
        \   </qualityCheck>\n    <qualityCheck qualityType=\"metadata\" system=\"knb\"
        statusType=\"warn\" >\n      <identifier>recordDelimiterPresent</identifier>\n
        \     <name>Record delimiter is present</name>\n      <description>Check presence
        of record delimiter. Check that the record delimiter is one of the suggested
        values.</description>\n      <expected>A record delimiter from a list of suggested
        values: \\n, \\r, \\r\\n, #x0A, #x0D, #x0D#x0A</expected>\n      <found>null</found>\n
        \     <status>info</status>\n      <explanation>A recordDelimiter value is
        not checked for binary entities or entities with an externally defined format</explanation>\n
        \     <suggestion></suggestion>\n      <reference>http://knb.ecoinformatics.org/software/eml/eml-2.1.0/eml-physical.html#recordDelimiter</reference>\n
        \   </qualityCheck>\n    <qualityCheck qualityType=\"metadata\" system=\"knb\"
        statusType=\"warn\" >\n      <identifier>entitySizePresence</identifier>\n
        \     <name>Check for presence of an entity size element</name>\n      <description>Look
        for entity size element as a prep for checking congruence, and if not present,
        generate a warn. Note that to be most useful (i.e, to check congruence), entity
        size should contain the most precise measure of size, which is \"byte\" (the
        default unit); however, the presence or name of the entity size unit is NOT
        checked.</description>\n      <expected>Entity size is present. If unit=\"byte\"
        or unit is omitted (default = byte), then congruence can be checked.</expected>\n
        \     <found>Found entity size element with value of 14 and size unit specified
        as 'bytes'. Please note that a size element specified with a unit other than
        'byte' will not be tested for congruence.</found>\n      <status>valid</status>\n
        \     <explanation>Examining the entity size is prep for checking congruence.
        Including the element is best practice, and if not present, a warn is generated.
        To be most useful, entity size should contain the most precise measure of
        size, which is \"byte\" (the default unit).</explanation>\n      <suggestion>Include
        an entity size in bytes</suggestion>\n      <reference> Example success: knb-lter-sbc.3.12.
        Example of size in units other than byte: knb-lter-mcr.6.56.</reference>\n
        \   </qualityCheck>\n    <qualityCheck qualityType=\"metadata\" system=\"lter\"
        statusType=\"warn\" >\n      <identifier>integrityChecksumPresence</identifier>\n
        \     <name>A physical/authentication element is present and specifies a method
        attribute with a value of MD5 or SHA-1</name>\n      <description>Check for
        presence of a physical/authentication element containing a checksum or hash
        value for an integrity check (e.g. MD5, SHA-1). Warn if an entity does not
        have a physical/authentication element, or if none of the physical/authentication
        elements specify a method attribute with a value of MD5 or SHA-1.</description>\n
        \     <expected>At least one physical/authentication element with a method
        attribute specifying MD5 or SHA-1 and containing a checksum or hash value
        that can be used to perform an integrity check on the data.</expected>\n      <found>true</found>\n
        \     <status>valid</status>\n      <explanation>PASTA will use this value
        to check the integrity of the data it downloads from your site. In addition,
        PASTA is planning to compare the contributor-supplied checksum/hash value
        documented \n      in the physical/authentication element to the checksum/hash
        value of this entity downloaded from previous revisions of this data package.
        If PASTA already has a copy of this entity, it will be able \n      to avoid
        an unnecessary download of the entity from your site, resulting in faster
        processing of the new data package revision when you update it in PASTA.</explanation>\n
        \     <suggestion>Add a physical/authentication element and store the entity
        checksum or hash value in it using a method such as MD5 or SHA-1.</suggestion>\n
        \     <reference></reference>\n    </qualityCheck>\n    <qualityCheck qualityType=\"data\"
        system=\"knb\" statusType=\"info\" >\n      <identifier>displayDownloadData</identifier>\n
        \     <name>Display downloaded data</name>\n      <description>Display the
        first kilobyte of data that is downloaded</description>\n      <expected>Up
        to one kilobyte of data should be displayed</expected>\n      <found>Cannot
        display NON-PLAIN TEXT DATA</found>\n      <status>info</status>\n      <explanation></explanation>\n
        \     <suggestion></suggestion>\n      <reference></reference>\n    </qualityCheck>\n
        \   <qualityCheck qualityType=\"congruency\" system=\"knb\" statusType=\"error\"
        >\n      <identifier>urlReturnsData</identifier>\n      <name>URL returns
        data</name>\n      <description>Checks whether a URL returns data. Unless
        the URL is specified to be function=\"information\", the URL should return
        the resource for download.</description>\n      <expected>A data entity that
        matches the metadata</expected>\n      <found>true</found>\n      <status>valid</status>\n
        \     <explanation></explanation>\n      <suggestion></suggestion>\n      <reference>http://knb.ecoinformatics.org/software/eml/eml-2.1.0/eml-resource.html#UrlType</reference>\n
        \   </qualityCheck>\n    <qualityCheck qualityType=\"congruency\" system=\"knb\"
        statusType=\"error\" >\n      <identifier>onlineURLs</identifier>\n      <name>Online
        URLs are live</name>\n      <description>Check that online URLs return something</description>\n
        \     <expected>true</expected>\n      <found>true</found>\n      <status>valid</status>\n
        \     <explanation>Succeeded in accessing URL: <![CDATA[https://uwmadison.box.com/shared/static/vchuo675dtj30kn4xy52lkago9c3tsda.txt]]></explanation>\n
        \     <suggestion></suggestion>\n      <reference></reference>\n    </qualityCheck>\n
        \   <qualityCheck qualityType=\"congruency\" system=\"lter\" statusType=\"error\"
        >\n      <identifier>integrityChecksum</identifier>\n      <name>Compare the
        metadata checksum for an entity to the checksum of the downloaded entity</name>\n
        \     <description>Two possible responses: valid if checksums match; error
        if checksums do not match.</description>\n      <expected>9d4c55e9fcea10126a50efe60111e522</expected>\n
        \     <found>9d4c55e9fcea10126a50efe60111e522</found>\n      <status>valid</status>\n
        \     <explanation>Matching checksums will ensure data integrity during upload
        to the repository.</explanation>\n      <suggestion>If the found integrity
        hash value does not match the expected integrity hash value, there may have
        been a loss of integrity in the data download. Check that the hash method
        and hash value documented in the metadata are the correct values.</suggestion>\n
        \     <reference></reference>\n    </qualityCheck>\n    <qualityCheck qualityType=\"congruency\"
        system=\"knb\" statusType=\"error\" >\n      <identifier>entitySizeCongruence</identifier>\n
        \     <name>Check that the entity size in the Level 0 metadata matches the
        one PASTA+ generates.</name>\n      <description>Compare raw file size of
        file to [entity]/physical/size element in metadata. Return error if not matching.</description>\n
        \     <expected>14</expected>\n      <found>14</found>\n      <status>valid</status>\n
        \     <explanation>Examining the entity size is a method for checking that
        this is the correct entity.</explanation>\n      <suggestion>Check the entity
        size.</suggestion>\n      <reference></reference>\n    </qualityCheck>\n  </entityReport>\n</qr:qualityReport>\n"
  recorded_at: 2022-01-19 19:58:20 GMT
  recorded_with: vcr/1.0.2, webmockr/0.8.0
