def ParseOption(self, option, request): """Parse the form that is selected by option.""" if option == "Windows": return implementation.GRRHunt.MATCH_WINDOWS elif option == "Linux": return implementation.GRRHunt.MATCH_LINUX elif option == "OSX": return implementation.GRRHunt.MATCH_DARWIN elif option == "Label": label_name = ClientLabelNameFormRenderer( descriptor=type_info.TypeInfoObject(), default="", prefix=self.prefix).ParseArgs(request) regex = aff4_rdfvalues.AFF4ObjectLabelsList.RegexForStringifiedValueMatch( label_name) return rdf_foreman.ForemanAttributeRegex(attribute_name="Labels", attribute_regex=regex) elif option == "Regex": return forms.SemanticProtoFormRenderer( rdf_foreman.ForemanAttributeRegex(), prefix=self.prefix).ParseArgs(request) elif option == "Integer": return forms.SemanticProtoFormRenderer( rdf_foreman.ForemanAttributeInteger(), prefix=self.prefix).ParseArgs(request)
def RenderOption(self, option, request, response): if option == "Windows": return self.RenderFromTemplate(self.match_system_template, response, system="Windows") elif option == "Linux": return self.RenderFromTemplate(self.match_system_template, response, system="Linux") elif option == "OSX": return self.RenderFromTemplate(self.match_system_template, response, system="OSX") elif option == "Label": return self.RenderFromTemplate( self.form_template, response, form=ClientLabelNameFormRenderer( descriptor=type_info.TypeInfoObject(friendly_name="Label"), default="", prefix=self.prefix).RawHTML(request)) elif option == "Regex": return self.RenderFromTemplate( self.form_template, response, form=forms.SemanticProtoFormRenderer( rdf_foreman.ForemanAttributeRegex(), prefix=self.prefix).RawHTML(request)) elif option == "Integer": return self.RenderFromTemplate( self.form_template, response, form=forms.SemanticProtoFormRenderer( rdf_foreman.ForemanAttributeInteger(), prefix=self.prefix).RawHTML(request))