本文整理汇总了Python中wirecloud.commons.utils.template.TemplateParser.get_resource_processed_info方法的典型用法代码示例。如果您正苦于以下问题:Python TemplateParser.get_resource_processed_info方法的具体用法?Python TemplateParser.get_resource_processed_info怎么用?Python TemplateParser.get_resource_processed_info使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wirecloud.commons.utils.template.TemplateParser
的用法示例。
在下文中一共展示了TemplateParser.get_resource_processed_info方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: buildWorkspaceFromTemplate
# 需要导入模块: from wirecloud.commons.utils.template import TemplateParser [as 别名]
# 或者: from wirecloud.commons.utils.template.TemplateParser import get_resource_processed_info [as 别名]
def buildWorkspaceFromTemplate(template, user, allow_renaming=False, new_name=None):
if not isinstance(template, TemplateParser):
template = TemplateParser(template)
if template.get_resource_type() != 'mashup':
raise TypeError('Unsupported resource type: %s' % template.get_resource_type())
if new_name is not None:
name = new_name
else:
name = template.get_resource_processed_info(process_urls=False)['title']
# Workspace creation
workspace = Workspace(name=name, creator=user)
if allow_renaming:
save_alternative(Workspace, 'name', workspace)
else:
workspace.save()
# Adding user reference to workspace in the many to many relationship
user_workspace = UserWorkspace(user=user, workspace=workspace, active=False)
user_workspace.save()
fillWorkspaceUsingTemplate(workspace, template)
return (workspace, user_workspace)
示例2: buildWorkspaceFromTemplate
# 需要导入模块: from wirecloud.commons.utils.template import TemplateParser [as 别名]
# 或者: from wirecloud.commons.utils.template.TemplateParser import get_resource_processed_info [as 别名]
def buildWorkspaceFromTemplate(template, user, allow_renaming=False, new_name=None, new_title=None, searchable=True, public=False):
if not isinstance(template, TemplateParser):
template = TemplateParser(template)
if template.get_resource_type() != 'mashup':
raise TypeError('Unsupported resource type: %s' % template.get_resource_type())
if (new_name is None or new_name.strip() == '') and (new_title is None or new_title.strip() == ''):
processed_info = template.get_resource_processed_info(process_urls=False)
new_name = processed_info['name']
new_title = processed_info['title']
elif new_title is None or new_title.strip() == '':
new_title = new_name
elif new_name is None or new_name.strip() == '':
new_name = URLify(new_title)
# Workspace creation
workspace = Workspace(title=new_title, name=new_name, creator=user, searchable=searchable, public=public)
if allow_renaming:
save_alternative(Workspace, 'name', workspace)
else:
workspace.save()
# Adding user reference to workspace in the many to many relationship
user_workspace = UserWorkspace(user=user, workspace=workspace)
user_workspace.save()
fillWorkspaceUsingTemplate(workspace, template)
return (workspace, user_workspace)
示例3: publish
# 需要导入模块: from wirecloud.commons.utils.template import TemplateParser [as 别名]
# 或者: from wirecloud.commons.utils.template.TemplateParser import get_resource_processed_info [as 别名]
def publish(self, endpoint, wgt_file, user, request=None, template=None):
if template is None:
template = TemplateParser(wgt_file.get_template())
resource_info = template.get_resource_processed_info(lang='en')
mimetypes = {
'widget': 'application/x-widget+mashable-application-component',
'operator': 'application/x-operator+mashable-application-component',
'mashup': 'application/x-mashup+mashable-application-component',
}
store = endpoint['store']
adaptor = get_market_adaptor(self._user, self._name)
user_data = get_market_user_data(user, self._user, self._name)
storeclient = adaptor.get_store(store)
store_token_key = store + '/token'
if store_token_key in user_data:
token = user_data[store_token_key]
else:
token = user_data['idm_token']
wirecloud_plugin_supported = False
try:
supported_plugins = storeclient.get_supported_plugins(token)
for plugin in supported_plugins:
if plugin.get('name', '').lower() == 'wirecloud component':
wirecloud_plugin_supported = True
except UnexpectedResponse as e:
if e.status != 404:
raise e
if wirecloud_plugin_supported:
storeclient.upload_resource(
resource_info['title'],
resource_info['version'],
"_".join((resource_info['vendor'], resource_info['name'], resource_info['version'])) + '.wgt',
resource_info['description'],
"Mashable application component",
wgt_file.get_underlying_file(),
token,
resource_type="Wirecloud component")
else:
storeclient.upload_resource(
resource_info['title'],
resource_info['version'],
"_".join((resource_info['vendor'], resource_info['name'], resource_info['version'])) + '.wgt',
resource_info['description'],
mimetypes[resource_info['type']],
wgt_file.get_underlying_file(),
token)
示例4: _handle
# 需要导入模块: from wirecloud.commons.utils.template import TemplateParser [as 别名]
# 或者: from wirecloud.commons.utils.template.TemplateParser import get_resource_processed_info [as 别名]
def _handle(self, *args, **options):
if len(args) < 1:
raise CommandError(_('Wrong number of arguments'))
self.verbosity = int(options.get('verbosity', 1))
users = []
groups = []
redeploy = options['redeploy']
public = options['public']
users_string = options['users'].strip()
groups_string = options['groups'].strip()
if redeploy is False and public is False and users_string == '' and groups_string == '':
raise CommandError(_('You must use at least one of the following flags: --redeploy, --users, --groups or --public '))
if not options['redeploy']:
if users_string != '':
for username in users_string.split(','):
users.append(User.objects.get(username=username))
if groups_string != '':
for groupname in groups_string.split(','):
groups.append(Group.objects.get(name=groupname))
for file_name in args:
try:
f = open(file_name, 'rb')
wgt_file = WgtFile(f)
except:
self.log(_('Failed to read from %(file_name)s') % {'file_name': file_name}, level=1)
continue
try:
template_contents = wgt_file.get_template()
template = TemplateParser(template_contents)
if options['redeploy']:
add_packaged_resource(f, None, wgt_file=wgt_file, template=template, deploy_only=True)
else:
for user in users:
install_resource_to_user(user, file_contents=wgt_file)
for group in groups:
install_resource_to_group(group, file_contents=wgt_file)
if public:
install_resource_to_all_users(file_contents=wgt_file)
wgt_file.close()
f.close()
self.log(_('Successfully imported \"%(name)s\" from \"%(file_name)s\"') % {'name': template.get_resource_processed_info()['title'], 'file_name': file_name}, level=1)
except:
self.log(_('Failed to import the mashable application component from %(file_name)s') % {'file_name': file_name}, level=1)