def install_resource(file_contents, templateURL, executor_user, packaged): if packaged: if isinstance(file_contents, basestring): file_contents = StringIO(file_contents) wgt_file = WgtFile(file_contents) elif isinstance(file_contents, WgtFile): wgt_file = file_contents file_contents = wgt_file.get_underlying_file() else: raise Exception template_contents = wgt_file.get_template() else: template_contents = file_contents template = TemplateParser(template_contents) resources = CatalogueResource.objects.filter(vendor=template.get_resource_vendor(), short_name=template.get_resource_name(), version=template.get_resource_version())[:1] # Create/recover catalogue resource if len(resources) == 1: resource = resources[0] else: if packaged: resource = add_widget_from_wgt(file_contents, executor_user, wgt_file=wgt_file) else: resource = add_resource_from_template(templateURL, template_contents, executor_user) return resource
def wrapper(self, *args, **kwargs): if shared: base = self.shared_test_data_dir else: base = self.test_data_dir final_creator = User.objects.get(username=creator) if creator is not None else None final_users = tuple(User.objects.get(username=user) for user in users) final_groups = tuple(Group.objects.get(name=group) for group in groups) for resource in resources: wgt_file = open(os.path.join(base, resource), 'rb') wgt = WgtFile(wgt_file) fix_dev_version(wgt, final_creator) if deploy_only: catalogue.add_packaged_resource(wgt.get_underlying_file(), final_creator, wgt_file=wgt, deploy_only=True) wgt_file.close() continue resource = install_resource(wgt, final_creator) if public: resource.public = True resource.save() resource.users.add(*final_users) resource.groups.add(*final_groups) wgt_file.close() return test_func(self, *args, **kwargs)
def wrapper(self, *args, **kwargs): if shared: base = self.shared_test_data_dir else: base = self.test_data_dir final_creator = User.objects.get( username=creator) if creator is not None else None final_users = tuple( User.objects.get(username=user) for user in users) final_groups = tuple( Group.objects.get(name=group) for group in groups) for resource in resources: wgt_file = open(os.path.join(base, resource), 'rb') wgt = WgtFile(wgt_file) fix_dev_version(wgt, final_creator) if deploy_only: catalogue.add_packaged_resource(wgt.get_underlying_file(), final_creator, wgt_file=wgt, deploy_only=True) wgt_file.close() continue resource = install_resource(wgt, final_creator) if public: resource.public = True resource.save() resource.users.add(*final_users) resource.groups.add(*final_groups) wgt_file.close() return test_func(self, *args, **kwargs)
def install_resource(file_contents, executor_user): if isinstance(file_contents, string_types): file_contents = BytesIO(file_contents) wgt_file = WgtFile(file_contents) elif isinstance(file_contents, WgtFile): wgt_file = file_contents file_contents = wgt_file.get_underlying_file() else: raise Exception template_contents = wgt_file.get_template() template = TemplateParser(template_contents) resources = CatalogueResource.objects.filter(vendor=template.get_resource_vendor(), short_name=template.get_resource_name(), version=template.get_resource_version())[:1] # Create/recover catalogue resource if len(resources) == 1: resource = resources[0] else: resource = add_packaged_resource(file_contents, executor_user, wgt_file=wgt_file) return resource