class ContentView(ContentViewAPI): task_api = TaskStatusAPI() def __init__(self): super(ContentView, self).__init__() def delete(self, org, cvId): return super(ContentView, self).delete(org['label'], cvId) def content_view(self, org, cvId, envId=None): return super(ContentView, self).show(org['label'], cvId, envId) def content_views_by_org(self, org, env=None): return super(ContentView, self).content_views_by_org(org['label'], env) def content_views_by_label_name_or_id(self, org, label=None, name=None, cvId=None): return super(ContentView, self).views_by_label_name_or_id(org['label'], label, name, cvId)[0] def refresh(self, cvId): ptask = super(ContentView, self).refresh(cvId) task = self.task_api.status(ptask['uuid']) while task['state'] != 'finished': print "Publishing content view description %s" % name task = self.task_api.status(ptask['uuid'])
def wait_for_task(task_uuid): "Waits for a task to complete, error out or timeout" task_api = TaskStatusAPI() for i in range(MAX_ATTEMPTS): task = task_api.status(task_uuid) logger.debug(task) if not task['pending?']: break logger.info("Waiting for task...") time.sleep(REQUEST_DELAY) else: task = None return task
class Changeset(ChangesetAPI): task_api = TaskStatusAPI() def __init__(self): super(Changeset, self).__init__() def create(self, org, env, name=None, type_in='promotion', description=None): if name is None: name = generate_name(8) if description is None: description = "Promoted on %s" % datetime.datetime.now().strftime( "%Y-%m-%d-%H-%M-%S") return super(Changeset, self).create(org['label'], env['id'], name, type_in, description) def changeset_by_name(self, org, env, name): return super(Changeset, self).changeset_by_name(org['label'], env['id'], name) def add_content(self, chsId, content, contentType='content_views'): return super(Changeset, self).add_content(chsId, contentType, {'content_view_id': content['id']}) def apply(self, chsId): applyTask = super(Changeset, self).apply(chsId) task = self.task_api.status(applyTask['uuid']) for i in range(MAX_ATTEMPTS): task = self.task_api.status(applyTask['uuid']) if task['state'] == 'finished' or task['state'] == 'error': break logger.info("Promoting content...") logger.debug(task['state']) time.sleep(REQUEST_DELAY) else: task = None return task
class Changeset(): task_api = TaskStatusAPI() api = ChangesetAPI() def create(self, org, env, name=None, type_in='promotion', description=None): if name is None: name = generate_name(8) if description is None: description = "Promoted on %s" % datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S") return self.api.create(org['label'], env['id'], name, type_in, description) def delete(self, chsId): return self.api.delete(chsId) def changeset(self, chsId): return self.api.changeset(chsId) def changeset_by_name(self, org, env, name): return self.api.changeset_by_name(org['label'], env['id'], name) def add_content(self, chsId, content, contentType='content_views'): return self.api.add_content(chsId, contentType, {'content_view_id' : content['id'] }) def apply(self, chsId): applyTask = self.api.apply(chsId) task = self.task_api.status(applyTask['uuid']) while task['state'] != 'finished': print "Promoting content..." task = self.task_api.status(applyTask['uuid'])
def __init__(self): super(TaskAction, self).__init__() self.api = TaskStatusAPI()
def status_api(self): return TaskStatusAPI()
class ContentViewDefinition(): task_api = TaskStatusAPI() api = ContentViewDefinitionAPI() def create_content_view_definition(self, org, name=None, label=None, description=None, composite=False): if name is None: name = generate_name(8) if label is None: label = "label-%s" % name.lower() if description is None: description = "Created on %s" % datetime.datetime.now().strftime( "%Y-%m-%d-%H-%M-%S") return self.api.create(org['label'], name, label, description, composite) def delete_content_view_definition(self, cvdId): return self.api.delete(cvdId) def content_view_definition(self, org, cvdId): return self.api.show(org['label'], cvdId) def content_view_definitions_by_org(self, org): return self.api.content_view_definitions_by_org(org['label']) def publish(self, org, cvdId, name=None, label=None, description=None): if name is None: name = generate_name(8) if label is None: label = "label-%s" % name.lower() if description is None: description = "Published on %s" % datetime.datetime.now().strftime( "%Y-%m-%d-%H-%M-%S") ptask = self.api.publish(org['label'], cvdId, name, label, description) task = self.task_api.status(ptask['uuid']) while task['state'] != 'finished': print "Publishing content view description %s" % name task = self.task_api.status(ptask['uuid']) def clone(self, org, cvdId, name=None, label=None, description=None): if name is None: name = generate_name(8) if label is None: label = "label-%s" % name.lower() if description is None: description = "Cloned on %s" % datetime.datetime.now().strftime( "%Y-%m-%d-%H-%M-%S") return self.api.clone(org['label'], cvdId, name, label, description) def update_products(self, org, cvdId, prd): return self.api.update_products(org['label'], cvdId, [prd['id']]) def products(self, org, cvdId): return self.api.products(org['label'], cvdId)
def status_api(cls): return TaskStatusAPI()
class ContentViewDefinition(ContentViewDefinitionAPI): task_api = TaskStatusAPI() def __init__(self): super(ContentViewDefinition, self).__init__() def create(self, org, name=None, label=None, description=None, composite=False): if name is None: name = generate_name(8) if label is None: label = "label-%s" % name.lower() if description is None: description = "Created on %s" % datetime.datetime.now().strftime( "%Y-%m-%d-%H-%M-%S") return super(ContentViewDefinition, self).create(org['label'], name, label, description, composite) def content_view_definition(self, org, cvdId): return super(ContentViewDefinition, self).show(org['label'], cvdId) def content_view_definitions_by_org(self, org): return super(ContentViewDefinition, self).content_view_definitions_by_org(org['label']) def publish(self, org, cvdId, name=None, label=None, description=None): if name is None: name = generate_name(8) if label is None: label = "label-%s" % name.lower() if description is None: description = "Published on %s" % datetime.datetime.now().strftime( "%Y-%m-%d-%H-%M-%S") ptask = super(ContentViewDefinition, self).publish(org['label'], cvdId, name, label, description) task = self.task_api.status(ptask['uuid']) for i in range(MAX_ATTEMPTS): task = self.task_api.status(ptask['uuid']) if task['state'] == 'finished' or task['state'] == 'error': break logger.info("Publishing content view description %s" % name) logger.debug(task['state']) time.sleep(REQUEST_DELAY) else: task = None return task def clone(self, org, cvdId, name=None, label=None, description=None): if name is None: name = generate_name(8) if label is None: label = "label-%s" % name.lower() if description is None: description = "Cloned on %s" % datetime.datetime.now().strftime( "%Y-%m-%d-%H-%M-%S") return super(ContentViewDefinition, self).clone(org['label'], cvdId, name, label, description) def update_products(self, org, cvdId, prd): return super(ContentViewDefinition, self).update_products(org['label'], cvdId, [prd['id']]) def products(self, org, cvdId): return super(ContentViewDefinition, self).products(org['label'], cvdId)