Add a data interface for manifest labels API

This commit is contained in:
Evan Cordell 2017-07-20 14:24:43 -04:00
parent fe6760749a
commit af27a1b6dc
3 changed files with 128 additions and 56 deletions

View file

@ -0,0 +1,42 @@
from abc import ABCMeta, abstractmethod
from collections import namedtuple
from six import add_metaclass
class ManifestLabel(
namedtuple('ManifestLabel', [
'uuid',
'key',
'value',
'source_type_name',
'media_type_name',
])):
def to_dict(self):
return {
'id': self.uuid,
'key': self.key,
'value': self.value,
'source_type': self.source_type_name,
'media_type': self.media_type_name,
}
@add_metaclass(ABCMeta)
class ManifestLabelInterface(object):
@abstractmethod
def get_manifest_labels(self, namespace_name, repository_name, manifestref, filter=None):
pass
@abstractmethod
def create_manifest_label(self, namespace_name, repository_name, manifestref, key, value, source_type_name, media_type_name):
pass
@abstractmethod
def get_manifest_label(self, namespace_name, repository_name, manifestref, label_uuid):
pass
@abstractmethod
def delete_manifest_label(self, namespace_name, repository_name, manifestref, label_uuid):
pass