

def create_attachment(self, resource_id='', attachment=None, actor_id=None):
    '\n        Creates an Attachment resource from given argument and associates it with the given resource.\n        @retval the resource ID for the attachment resource.\n        '
    if (attachment is None):
        raise BadRequest('Object not present')
    if (not isinstance(attachment, Attachment)):
        raise BadRequest('Object is not an Attachment')
    attachment.object_id = (resource_id if resource_id else '')
    attachment.attachment_size = (- 1)
    attachment_content = None
    if (attachment.attachment_type == AttachmentType.BLOB):
        if (type(attachment.content) is not str):
            raise BadRequest('Attachment content must be str')
        attachment.attachment_size = len(attachment.content)
        attachment_content = attachment.content
    elif (attachment.attachment_type == AttachmentType.ASCII):
        if (type(attachment.content) is not str):
            raise BadRequest('Attachment content must be str')
        attachment.attachment_size = len(attachment.content)
        attachment_content = attachment.content
    elif (attachment.attachment_type == AttachmentType.OBJECT):
        raise BadRequest('AttachmentType.OBJECT is not supported currently')
    elif (attachment.attachment_type == AttachmentType.REFERENCE):
        if (not isinstance(attachment.content, basestring)):
            raise BadRequest('Attachment content must be binary string')
        attachment.attachment_size = len(attachment.content)
        attachment_content = attachment.content
    else:
        raise BadRequest(('Unknown attachment-type: %s' % attachment.attachment_type))
    attachment.content = ''
    content = dict(data=attachment_content, content_type=attachment.content_type)
    (att_id, _) = self.create(attachment, attachments={
        self.DEFAULT_ATTACHMENT_NAME: content,
    }, actor_id=actor_id)
    if resource_id:
        self.create_association(resource_id, PRED.hasAttachment, att_id)
    return att_id

dataset/ETHPy150Open ooici/pyon/pyon/ion/resregistry.py ResourceRegistry.create_attachment/original