def __init__(self, name, project_type, resource_manager=None, subproject_entries=None): if not name: raise ProjectConfigError('name must be defined') self._name = name if not project_type: raise ProjectConfigError('project_type must be defined') if not types.is_assembly_type( project_type) and not types.is_resource_type( project_type) and not types.is_type_project_type( project_type): raise ProjectConfigError('Project type must be one of: {0}'.format( [ types.ASSEMBLY_PROJECT_TYPE, types.RESOURCE_PROJECT_TYPE, types.TYPE_PROJECT_TYPE ])) self._project_type = project_type if not subproject_entries: subproject_entries = [] self._subproject_entries = subproject_entries if not resource_manager: if project_type == types.RESOURCE_PROJECT_TYPE: raise ProjectConfigError( 'resource_manager must be defined when type is {0}'.format( types.RESOURCE_PROJECT_TYPE)) else: if resource_manager not in types.SUPPORTED_RM_TYPES: raise ProjectConfigError( 'resource_manager type not supported, must be one of: {0}'. format(types.SUPPORTED_RM_TYPES_GROUPED)) self._resource_manager = resource_manager
def __build_subproject_request_for_type(project_type): if project_types.is_assembly_type(project_type): return creator.AssemblySubprojectRequest() elif project_types.is_resource_type(project_type): return creator.ResourceSubprojectRequest() elif project_types.is_type_project_type(project_type): return creator.TypeSubprojectRequest() else: lifecycle_cli.printer.print_text( 'Error: --subproject option must include a type of: {0}'.format([ project_types.ASSEMBLY_PROJECT_TYPE, project_types.NS_PROJECT_TYPE, project_types.VNF_PROJECT_TYPE, project_types.RESOURCE_PROJECT_TYPE ])) exit(1)
def __build_request_for_type(project_type): if project_types.is_assembly_type(project_type): return creator.CreateAssemblyProjectRequest() elif project_types.is_resource_type(project_type): return creator.CreateResourceProjectRequest() elif project_types.is_type_project_type(project_type): return creator.CreateTypeProjectRequest() else: lifecycle_cli.printer.print_text( 'Error: --type option must be one of: {0}'.format([ project_types.ASSEMBLY_PROJECT_TYPE, project_types.NS_PROJECT_TYPE, project_types.VNF_PROJECT_TYPE, project_types.RESOURCE_PROJECT_TYPE ])) exit(1)
def is_assembly_project(self): return types.is_assembly_type(self.project_type)
def is_assembly_content(self): return types.is_assembly_type(self.content_type)