I am using python Jira package and trying to create Jira issue:
from jira import JIRA
jiraOptions = {'server': "http://jira.xxx.com"}
jira = JIRA(options = jiraOptions, basic_auth=(
"xxx", "xxx"))
def create_new_issue(project, summary, description, issuetype, username):
issue_dict = {
'project': {'key': project},
'summary': summary,
'description': description,
'issuetype': {'name': issuetype},
'reporter': {'name': username}
}
new_issue = jira.create_issue(fields=issue_dict)
create_new_issue("p1", "test", "teseset", "Bug", "xxxx")
I get 405 error which I can't figure out where I got wrong:
Traceback (most recent call last):
File ".\jiraUtil.py", line 97, in <module>
create_new_issue("p1", "test", "teseset", "Bug", "xxxx")
File ".\jiraUtil.py", line 58, in create_new_issue
new_issue = jira.create_issue(fields=issue_dict)
File "C:\Users\xxx\AppData\Local\Programs\Python\Python38\lib\site-packages\jira\client.py", line 1473, in create_issue
r = self._session.post(url, data=json.dumps(data))
File "C:\Users\xxx\AppData\Local\Programs\Python\Python38\lib\site-packages\jira\resilientsession.py", line 198, in post
return self.__verb("POST", str(url), data=data, json=json, **kwargs)
File "C:\Users\xxx\AppData\Local\Programs\Python\Python38\lib\site-packages\jira\resilientsession.py", line 189, in __verb
raise_on_error(response, verb=verb, **kwargs)
File "C:\Users\xxx\AppData\Local\Programs\Python\Python38\lib\site-packages\jira\resilientsession.py", line 64, in raise_on_error
raise JIRAError(
jira.exceptions.JIRAError: JiraError HTTP 405 url: https://jira.xxx.com/rest/api/2/issue
At a guess, "xxxx" user doesn't exist in your Jira Cloud instance, try changing it to "-1" which is unassigned.
I ran into some issues myself doing this, so I built this project - https://github.com/dren79/JiraScripting_public let me know if it helps :)
Related
For example, i wrote a simple echo-bot, but GetFullChannel is not working.
from pyrogram import Client, filters, enums
from pyrogram.raw import functions, types
app = Client(username, api_id, api_hash)
#app.on_message(filters.text)
async def echo(client, message):
if message.text == "test":
r = await app.invoke(functions.channels.GetFullChannel(channel=-100********21))
print(r)
My code failed and return this trace:
Traceback (most recent call last):
File "/home/******/.local/lib/python3.9/site-packages/pyrogram/dispatcher.py", line 240, in handler_worker
await handler.callback(self.client, *args)
File "**************.py", line 84, in echo
ret = await app.invoke(functions.channels.GetFullChannel(channel=-100********21))
File "/home/*****/.local/lib/python3.9/site-packages/pyrogram/methods/advanced/invoke.py", line 77, in invoke
r = await self.session.invoke(
File "/home/*****/.local/lib/python3.9/site-packages/pyrogram/session/session.py", line 361, in invoke
return await self.send(query, timeout=timeout)
File "/home/******/.local/lib/python3.9/site-packages/pyrogram/session/session.py", line 290, in send
message = self.msg_factory(data)
File "/home/*****/.local/lib/python3.9/site-packages/pyrogram/session/internals/msg_factory.py", line 37, in __call__
len(body)
File "/home/*****/.local/lib/python3.9/site-packages/pyrogram/raw/core/tl_object.py", line 79, in __len__
return len(self.write())
File "/home/******/.local/lib/python3.9/site-packages/pyrogram/raw/functions/channels/get_full_channel.py", line 69, in write
b.write(self.channel.write())
AttributeError: 'int' object has no attribute 'write'
The author of the Pyrogram framework says that there is no error in the libraries themselves, it is in my implementation.
Can you tell me what is wrong in my code?
Am I using the raw function incorrectly?
you should give InputChannel not peer id of it
Test :
channel = await app.resolve_peer(-100********21)
r = await app.invoke(functions.channels.GetFullChannel(channel=channel ))
I have been trying to send an email using Flask-mail but I always got about SSL.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1076) // Werkzeug Debugger also I using Mailtrap as dummy email server to test my app. I have been trying with different mail clients and always god the same error.
And what I'm trying to do, is that once a new user has registered. Send an email to confirm your account by a token.
<!--
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2463, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2449, in wsgi_app
response = self.handle_exception(e)
File "/usr/local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "/usr/local/lib/python3.7/site-packages/flask_restplus/api.py", line 584, in error_router
return original_handler(e)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1866, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 38, in reraise
raise value.with_traceback(tb)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "/usr/local/lib/python3.7/site-packages/flask_restplus/api.py", line 584, in error_router
return original_handler(e)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1820, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 38, in reraise
raise value.with_traceback(tb)
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1935, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/usr/local/lib/python3.7/site-packages/flask_restplus/api.py", line 325, in wrapper
resp = resource(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/flask/views.py", line 89, in view
return self.dispatch_request(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/flask_restplus/resource.py", line 44, in dispatch_request
resp = meth(*args, **kwargs)
File "/usr/src/app/app/user/controller.py", line 35, in post
return UseService.register(data)
File "/usr/src/app/app/user/service.py", line 48, in register
send_confirmation_email(new_user.email)
File "/usr/src/app/app/utility/mailutility.py", line 40, in send_confirmation_email
send_email(to, "Test server - confirm your registration", html)
File "/usr/src/app/app/utility/mailutility.py", line 32, in send_email
mail.send(message)
File "/usr/local/lib/python3.7/site-packages/flask_mail.py", line 491, in send
with self.connect() as connection:
File "/usr/local/lib/python3.7/site-packages/flask_mail.py", line 144, in __enter__
self.host = self.configure_host()
File "/usr/local/lib/python3.7/site-packages/flask_mail.py", line 156, in configure_host
host = smtplib.SMTP_SSL(self.mail.server, self.mail.port)
File "/usr/local/lib/python3.7/smtplib.py", line 1031, in __init__
source_address)
File "/usr/local/lib/python3.7/smtplib.py", line 251, in __init__
(code, msg) = self.connect(host, port)
File "/usr/local/lib/python3.7/smtplib.py", line 336, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "/usr/local/lib/python3.7/smtplib.py", line 1039, in _get_socket
server_hostname=self._host)
File "/usr/local/lib/python3.7/ssl.py", line 423, in wrap_socket
session=session
File "/usr/local/lib/python3.7/ssl.py", line 870, in _create
self.do_handshake()
File "/usr/local/lib/python3.7/ssl.py", line 1139, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1076)
My env file
MAIL_SERVER=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=mail_username
MAIL_PASSWORD=mail_password
MAIL_USE_TLS=True
MAIL_USE_SSL=False
MAIL_DEFAULT_SENDER=username#mail.com
Code
# !/usr/bin/python
# -*- coding: utf-8 -*-
from itsdangerous import URLSafeTimedSerializer
from flask_mail import Message
from flask import url_for, render_template
from flask import current_app as app
from app import mail
def generate_confirmation_token(email):
serializer = URLSafeTimedSerializer(app.config.get("SECRET_KEY"))
return serializer.dumps(email, salt=app.config.get("SECURITY_PASSWORD_SALT"))
def confirm__token(token, expiration=3000):
serializer = URLSafeTimedSerializer(app.config.get("SECRET_KEY"))
try:
email = serializer.loads(
token,
salt=app.congit.get("SECURITY_PASSWORD_SALT"),
max_age=expiration
)
except: # noqa
return False
return email
def send_email(to, subject, template):
""" Send an email """
message = Message(subject, recipients=[to], html=template, sender=app.config.get("MAIL_DEFAULT_SENDER"))
mail.send(message)
def send_confirmation_email(to):
"""Send a confirmation email to the registered user."""
token = generate_confirmation_token(to)
confirm_url = url_for("user_user_confirmation_mail", token=token, _external=True)
html = render_template('confirmation.html', confirm_url=confirm_url)
send_email(to, "Test server - confirm your registration", html)
I don't if that could make sense, but use docker to run my app
In my config file, I have only MAIL_USE_TLS=True and no MAIL_USE_SSL.
When I had MAIL_USE_TLS and MAIL_USE_SSL set to true, I got the same error as you. So maybe this can help if you still have the problem.
I have successfully installed TileStache in my server.
Now I have a geojson file and want to serve it through TileStache.
I am new to TileStache and I can't find a clear explanation of how to setup a Geojson in TileStache. Best explanation I can found is here, but it uses a shp file as the datasource.
I want to know how to set it using a Geojson as the datasource.
Edit
I tried adding a tes layer to the config file, so my config file looks like this:
{
"cache":
{
"name": "Test",
"path": "/tmp/stache",
"umask": "0000"
},
"layers":
{
"osm":
{
"provider": {"name": "proxy", "provider": "OPENSTREETMAP"},
"png options": {"palette": "http://tilestache.org/example-palette-openstreetmap-mapnik.act"}
},
"example":
{
"provider": {"name": "mapnik", "mapfile": "examples/style.xml"},
"projection": "spherical mercator"
},
"tes":{
"provider": {
"name": "vector", "driver": "GeoJSON",
"parameters": {"file": "tes.geojson"},
"properties": []
}
}
}
}
When I tried to run using tilestache-server.py -c /etc/TileStache/tilestache.cfg, it gives me error like this:
Error loading Tilestache config:
Traceback (most recent call last):
File "/usr/local/bin/tilestache-server.py", line 5, in <module>
pkg_resources.run_script('TileStache==1.50.1', 'tilestache-server.py')
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 499, in run_script
self.require(requires)[0].run_script(script_name, ns)
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1235, in run_script
execfile(script_filename, namespace, namespace)
File "/usr/local/lib/python2.7/dist-packages/TileStache-1.50.1-py2.7.egg/EGG-INFO/scripts/tilestache-server.py", line 55, in <module>
app = TileStache.WSGITileServer(config=options.file, autoreload=True)
File "/usr/local/lib/python2.7/dist-packages/TileStache-1.50.1-py2.7.egg/TileStache/__init__.py", line 342, in __init__
self.config = parseConfigfile(config)
File "/usr/local/lib/python2.7/dist-packages/TileStache-1.50.1-py2.7.egg/TileStache/__init__.py", line 107, in parseConfigfile
return Config.buildConfiguration(config_dict, dirpath)
File "/usr/local/lib/python2.7/dist-packages/TileStache-1.50.1-py2.7.egg/TileStache/Config.py", line 218, in buildConfiguration
config.layers[name] = _parseConfigfileLayer(layer_dict, config, dirpath)
File "/usr/local/lib/python2.7/dist-packages/TileStache-1.50.1-py2.7.egg/TileStache/Config.py", line 448, in _parseConfigfileLayer
_class = Providers.getProviderByName(provider_dict['name'])
File "/usr/local/lib/python2.7/dist-packages/TileStache-1.50.1-py2.7.egg/TileStache/Providers.py", line 122, in getProviderByName
from . import Vector
File "/usr/local/lib/python2.7/dist-packages/TileStache-1.50.1-py2.7.egg/TileStache/Vector/__init__.py", line 164, in <module>
from osgeo import ogr, osr
ImportError: No module named osgeo
I can't figure out what is wrong.
ImportError: No module named osgeo
You are missing the GDAL library. It can be quite tricky to install, I got it working on Ubuntu 14.04 by using the PPA ppa:ubuntugis/ubuntugis-unstable, read the instructions in this post over at the GIS Stackexchange.
I am trying to get onto a website and download information using python. I know the downloading part of the code works.
However, the website requires authentication to get onto it - I am a member and I have a valid username and password.
I did some research and the following code should work - but it doesn't.
What am I missing?
Here is the code:
import urllib2
url = 'https://sample-website.com/'
username = '' #I've tried with leaving this empty and with putting in a valid username
password = '' # same as above
p = urllib2.HTTPPasswordMgrWithDefaultRealm()
p.add_password(None, url, username, password)
handler = urllib2.HTTPBasicAuthHandler(p)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)
page = urllib2.urlopen(url).read()
The error I get is this:
Traceback (most recent call last):
File "C:\Python27\smth_rand.py", line 14, in <module>
page = urllib2.urlopen(url).read()
File "C:\Python27\lib\urllib2.py", line 127, in urlopen
return _opener.open(url, data, timeout)
File "C:\Python27\lib\urllib2.py", line 410, in open
response = meth(req, response)
File "C:\Python27\lib\urllib2.py", line 523, in http_response
'http', request, response, code, msg, hdrs)
File "C:\Python27\lib\urllib2.py", line 448, in error
return self._call_chain(*args)
File "C:\Python27\lib\urllib2.py", line 382, in _call_chain
result = func(*args)
File "C:\Python27\lib\urllib2.py", line 531, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 401: Unauthorized
Ideally my code would prompt for the user to enter his/her username and password but I'm not sure how to code that part either.
Thanks
So you need both urllib and urllib2 to do this. The example code would look like
import urllib, urllib2
import webbrowser
opener = urllib2.build_opener()
username = ''
password = ''
values = {
'username': 'example_username',
'password': 'example_password',
}
params = urllib.urlencode(values)
response = opener.open("https://sample-website.com/",params)
response.read()
your response.read() would give you w/e information you want to get out of it. You can look up all the specific methods for more in depth explanation.
Error page shows the following:
Traceback (most recent call last):
File "/Library/Python/2.6/site-packages/django/core/servers/basehttp.py", line 283, in run
self.result = application(self.environ, self.start_response)
File "/Library/Python/2.6/site-packages/django/core/handlers/wsgi.py", line 273, in call
response = self.get_response(request)
File "/Library/Python/2.6/site-packages/django/core/handlers/base.py", line 153, in get_response
response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
File "/Library/Python/2.6/site-packages/django/core/handlers/base.py", line 218, in handle_uncaught_exception
return callback(request, **param_dict)
File "/Library/Python/2.6/site-packages/django/utils/decorators.py", line 93, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/Library/Python/2.6/site-packages/django/views/defaults.py", line 30, in server_error
t = loader.get_template(template_name) # You need to create a 500.html template.
File "/Library/Python/2.6/site-packages/django/template/loader.py", line 157, in get_template
template, origin = find_template(template_name)
File "/Library/Python/2.6/site-packages/django/template/loader.py", line 138, in find_template
raise TemplateDoesNotExist(name)
TemplateDoesNotExist: 500.html
Check your Template_Loaders in settings.py. It should look like this to automatically find the default admin templates. The app_directories.Loader is important here.
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
# 'django.template.loaders.eggs.Loader',
)