def register_profile(self, package_name=None, profile_name='default'): if package_name is None: package_name = self.package_name title = '%s:%s' % (package_name, profile_name) _profile_registry.registerProfile(profile_name, title, description=u'', path='profiles/%s' % profile_name, product=package_name, profile_type=EXTENSION)
def upgrade_step_directory_action(profile, dottedname, path, soft_dependencies): start_version = find_start_version(profile) scanner = Scanner(dottedname, path) if profile not in _profile_registry.listProfiles(): raise UpgradeStepConfigurationError( 'The profile "{0}" needs to be registered before registering its' ' upgrade step directory.'.format(profile)) profileinfo = _profile_registry.getProfileInfo(profile) if profileinfo.get('version', None) is not None: raise UpgradeStepConfigurationError( 'Registering an upgrades directory for "{0}" requires this profile' ' to not define a version in its metadata.xml.' ' The version is automatically set to the latest upgrade.'.format( profile)) _package, profilename = profile.split(':', 1) last_version = ''.join(find_start_version(profile)) for upgrade_info in scanner.scan(): upgrade_profile_name = '{0}-upgrade-{1}'.format( profilename, upgrade_info['target-version']) upgrade_handler = wrap_upgrade_step( handler=upgrade_info['callable'], upgrade_profile='profile-{0}:{1}'.format(dottedname, upgrade_profile_name), base_profile=profile, target_version=upgrade_info['target-version']) step = UpgradeStep(upgrade_info['title'], profile, upgrade_info['source-version'] or start_version, upgrade_info['target-version'], '', upgrade_handler) _registerUpgradeStep(step) _profile_registry.registerProfile( name=upgrade_profile_name, title='Upgrade {0} to {1}: {2}'.format( profile, upgrade_info['target-version'], upgrade_info['title']), description='', path=upgrade_info['path'], product=dottedname, profile_type=EXTENSION, for_=IMigratingPloneSiteRoot) last_version = upgrade_info['target-version'] profile = GlobalRegistryStorage(IProfile).get(profile) profile['version'] = last_version profile['ftw.upgrade:dependencies'] = soft_dependencies
def _registerUpgradeProfile(name, title, description, directory, product, provides, for_, profile, source, destination, handler, sortkey, checker): import_profile = "%s:%s" % (product, name) if import_profile not in _profile_registry.listProfiles(): _profile_registry.registerProfile(name, title, description, directory, product, provides, for_) if handler: step = UpgradeStep(title, profile, source, destination, description, handler, checker, sortkey) else: step = UpgradeDepends(title, profile, source, destination, description, import_profile=import_profile, checker=checker, sortkey=sortkey, run_deps=False) _registerUpgradeStep(step)