Scripting ticket creation with fields containing non-alphanumeric characters

I’m very new to RT and am trying to write a python script to create a ticket in my RT database. The crux of my problem lies in non-alphanumeric characters. Submitting the ticket works fine with all the fields that have only alphanumeric characters, but I have some fields with non-alphanumeric characters and those submissions return to me “Error 409 Syntax Error”.

I am using python-rtkit to work with REST from my script. To try and solve this problem I have corresponded with the person who maintains python-rtkit to make sure that it wasn’t a bug in python-rtkit or my misuse of the module (https://github.com/z4r/python-rtkit/issues/31 , you can find a copy of my script in this thread for reference). The conclusion reached at the end of that discussion was that I would need to upgrade my install of RT from its current version of 3.6.6 to 4.x. However I have discovered from my superior (who is in charge of our install of RT) that that isn’t an option.

After I tried that I tried to poke around and find some documentation on Error 409 but was unable to find any documentation of RT’s errors anywhere but WAS able to find a correspondence for a similar issue (http://www.gossamer-threads.com/lists/rt/users/95179?search_string=REST%20syntax;#95179) unfortunately it is for a different version of RT (3.8.x) and the suggested fix involved a line in REST.pm that doesn’t exist in my install of RT. Which brings me to posting in this mailing list.

I’m wondering if there’s a fix similar to the other one posted in the mailing list (see second link in this post) for RT3.6.6 that I can use to enable the creation of tickets via an external script without having to upgrade RT or remove those special characters

I’m using RTv3.6.6 and the server is on Red Hat 4.1.2-54 and Apache 2.2.3. If you need any additional details, please ask.
The information contained in this message is privileged and confidential. It is intended only for the recipient or entity listed above. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution, or copying of this message is strictly prohibited. If you have received this message in error, please notify the sender immediately by replying to the message and promptly deleting it from your computer.

NOTICE TO RECIPIENT(S) OF INFORMATION:
Information disclosed to you pertaining to certain conditions, such as treatment for alcohol or drug abuse, HIV/AIDS and other sexually transmitted diseases, behavioral health, and genetic marker information is protected by various federal and state laws which prohibit any further disclosure of this information by you without the express written consent of the person to whom it pertains or as otherwise permitted by such laws. Any unauthorized further disclosure in violation of state or federal law may result in a fine or jail sentence or both. A general authorization for the release of medical or other information is NOT sufficient consent for release of these types of information. The federal rule at 42 CFR Part 2 restricts use of the information disclosed to criminally investigate or prosecute any alcohol or drug abuse patient.

I’m very new to RT and am trying to write a python script to create a ticket in my RT
database. The crux of my problem lies in non-alphanumeric characters. Submitting the ticket
works fine with all the fields that have only alphanumeric characters, but I have some fields
with non-alphanumeric characters and those submissions return to me “Error 409 Syntax Error”.

I am using python-rtkit to work with REST from my script. To try and solve this problem I
have corresponded with the person who maintains python-rtkit to make sure that it wasn’t a bug
in python-rtkit or my misuse of the module ([1]https://github.com/z4r/python-rtkit/issues/31 ,
you can find a copy of my script in this thread for reference). The conclusion reached at the
end of that discussion was that I would need to upgrade my install of RT from its current
version of 3.6.6 to 4.x. However I have discovered from my superior (who is in charge of our
install of RT) that that isn’t an option.

After I tried that I tried to poke around and find some documentation on Error 409 but was
unable to find any documentation of RT’s errors anywhere but WAS able to find a
correspondence for a similar issue
([2]http://www.gossamer-threads.com/lists/rt/users/95179?search_string=REST%20syntax;#95179)
unfortunately it is for a different version of RT (3.8.x) and the suggested fix involved a
line in REST.pm that doesn’t exist in my install of RT. Which brings me to posting in this
mailing list.

I’m wondering if there’s a fix similar to the other one posted in the mailing list (see second
link in this post) for RT3.6.6 that I can use to enable the creation of tickets via an
external script without having to upgrade RT or remove those special characters

3.6.6 is more than 5 years old and has actually been End of
Lifed for nearly 2 years now:


You may want to talk to your supervisor again. There are a number of
security issues in that release.

The code you’re running into was refactored before 3.8.0 was released,
so any patch that was later applied to 3.8 or 4.0 to fix problems with
the Custom Field parsing will be annoying to backport. As a result, I
cannot just point you to a commit in git and tell you to apply it,
someone would have to develop and backport a branch.

-kevin