Adds import export to awx cli for schedules as a top level object

This commit is contained in:
Alex Corey
2022-06-08 17:03:41 -04:00
parent 4dc956c76f
commit 02e7424f51
3 changed files with 8 additions and 16 deletions

View File

@@ -26,18 +26,11 @@ EXPORTABLE_RESOURCES = [
'workflow_job_templates', 'workflow_job_templates',
'execution_environments', 'execution_environments',
'applications', 'applications',
'schedules',
] ]
EXPORTABLE_RELATIONS = [ EXPORTABLE_RELATIONS = ['Roles', 'NotificationTemplates', 'WorkflowJobTemplateNodes', 'Credentials', 'Hosts', 'Groups', 'ExecutionEnvironments', 'Schedules']
'Roles',
'NotificationTemplates',
'WorkflowJobTemplateNodes',
'Credentials',
'Hosts',
'Groups',
'ExecutionEnvironments',
]
# These are special-case related objects, where we want only in this # These are special-case related objects, where we want only in this
@@ -45,13 +38,9 @@ EXPORTABLE_RELATIONS = [
DEPENDENT_EXPORT = [ DEPENDENT_EXPORT = [
('JobTemplate', 'labels'), ('JobTemplate', 'labels'),
('JobTemplate', 'survey_spec'), ('JobTemplate', 'survey_spec'),
('JobTemplate', 'schedules'),
('WorkflowJobTemplate', 'labels'), ('WorkflowJobTemplate', 'labels'),
('WorkflowJobTemplate', 'survey_spec'), ('WorkflowJobTemplate', 'survey_spec'),
('WorkflowJobTemplate', 'schedules'),
('WorkflowJobTemplate', 'workflow_nodes'), ('WorkflowJobTemplate', 'workflow_nodes'),
('Project', 'schedules'),
('InventorySource', 'schedules'),
('Inventory', 'groups'), ('Inventory', 'groups'),
('Inventory', 'hosts'), ('Inventory', 'hosts'),
('Inventory', 'labels'), ('Inventory', 'labels'),

View File

@@ -1,6 +1,7 @@
from contextlib import suppress from contextlib import suppress
from awxkit.api.pages import UnifiedJob from awxkit.api.pages import SystemJobTemplate
from awxkit.api.mixins import HasCreate
from awxkit.api.resources import resources from awxkit.api.resources import resources
from awxkit.config import config from awxkit.config import config
import awxkit.exceptions as exc import awxkit.exceptions as exc
@@ -9,8 +10,8 @@ from . import page
from . import base from . import base
class Schedule(UnifiedJob): class Schedule(HasCreate, base.Base):
dependencies = [SystemJobTemplate]
NATURAL_KEY = ('unified_job_template', 'name') NATURAL_KEY = ('unified_job_template', 'name')
def silent_delete(self): def silent_delete(self):

View File

@@ -5,6 +5,8 @@ from . import page
class SystemJobTemplate(UnifiedJobTemplate, HasNotifications): class SystemJobTemplate(UnifiedJobTemplate, HasNotifications):
NATURAL_KEY = ('name', 'organization')
def launch(self, payload={}): def launch(self, payload={}):
"""Launch the system_job_template using related->launch endpoint.""" """Launch the system_job_template using related->launch endpoint."""
result = self.related.launch.post(payload) result = self.related.launch.post(payload)