def create_archivesspace_client():
    """
    Create an ArchivesSpace client instance.
    """
    # TODO use same code as views_as.py?
    config = models.DashboardSetting.objects.get_dict(
        'upload-archivesspace_v0.0')

    try:
        client = archivesspace.ArchivesSpaceClient(
            host=config['base_url'],
            user=config['user'],
            passwd=config['passwd'],
            repository=config['repository'])
    except archivesspace.AuthenticationError:
        logger.error(
            'Unable to authenticate to ArchivesSpace server using the default user! Check administrative settings.'
        )
        return None
    except archivesspace.ConnectionError:
        logger.error(
            'Unable to connect to ArchivesSpace server at the default location! Check administrative settings.'
        )
        return None
    return client
Example #2
0
def link_dip_to_as(as_base_url, as_user, as_password, as_url_port, archival_obj_id, track_id, track_title,
                   link_to_bitstream):
    client = archivesspace.ArchivesSpaceClient(as_base_url, as_user, as_password, as_url_port)
    client.add_digital_object(
        parent_archival_object=f"/repositories/{as_archival_repo}/archival_objects/{archival_obj_id}",
        identifier=track_id, title=track_title, uri=link_to_bitstream, object_type="sound_recording")
    pprint("Linked to AS")
Example #3
0
def create_archivesspace_client():
    """
    Create an ArchivesSpace client instance.
    """
    # TODO use same code as views_as.py?
    repl_dict = models.MicroServiceChoiceReplacementDic.objects.get(
        description='ArchivesSpace Config')
    config = ast.literal_eval(repl_dict.replacementdic)

    try:
        client = archivesspace.ArchivesSpaceClient(
            host=config['%host%'],
            port=config['%port%'],
            user=config['%user%'],
            passwd=config['%passwd%'],
            repository=config['%repository%'])
    except archivesspace.AuthenticationError:
        print(
            "Unable to authenticate to ArchivesSpace server using the default user! Check administrative settings."
        )
        return None
    except archivesspace.ConnectionError:
        print(
            "Unable to connect to ArchivesSpace server at the default location! Check administrative settings."
        )
        return None
    return client
 def _get_as_client(self):
     try:
         login_url = '{}://{}'.format(self.as_url.scheme,
                                      self.as_url.hostname)
         return archivesspace.ArchivesSpaceClient(login_url, self.as_user,
                                                  self.as_password,
                                                  self.as_url.port,
                                                  self.as_repository)
     except Exception:
         raise DSpaceRESTException(
             'Could not login to ArchivesSpace server: {}, port: {},'
             ' user: {}, repository: {}.'.format(login_url,
                                                 self.as_url.port,
                                                 self.as_user,
                                                 self.as_repository))
 def _get_as_client(self, as_archival_repo):
     try:
         login_url = "{}://{}".format(self.as_url.scheme, self.as_url.hostname)
         return archivesspace.ArchivesSpaceClient(
             login_url,
             self.as_user,
             self.as_password,
             self.as_url.port,
             as_archival_repo,
         )
     except Exception:
         raise DSpaceRESTException(
             "Could not login to ArchivesSpace server: {}, port: {},"
             " user: {}, repository: {}.".format(
                 login_url, self.as_url.port, self.as_user, as_archival_repo
             )
         )
Example #6
0
def compile_data(data):
    for child in data["children"]:
        make_row(child)
        if child["has_children"]:
            compile_data(child)


def make_row(component):
    row = []
    row.append(component["title"].encode("utf-8"))
    writer.writerow(row)


# have user enter resource identifier
resource_id = raw_input('Enter resource id: ')

print 'Creating a csv'
spreadsheet = 'titles.csv'
if os.path.exists(spreadsheet):
    writer = csv.writer(open(spreadsheet, 'a'))
else:
    writer = csv.writer(open(spreadsheet, 'w'))
client = archivesspace.ArchivesSpaceClient(config["baseURL"], config["user"],
                                           config["password"], config["port"],
                                           config["repository"])
print 'Getting children of resource ' + resource_id
data = client.get_resource_component_children('repositories/2/resources/' +
                                              str(resource_id))
compile_data(data)
print 'Done!'