lp-vault-manager
lp-vault-manager copied to clipboard
lpvs KeyError: u'hostname'
[ERROR: alfred.workflow.input.scriptfilter] Code 1: 22:26:56 workflow.py:1386 DEBUG Reading settings from
/Users/brad.hurley/Library/Application Support/Alfred 2/Workflow Data/com.bachya.lpvm/settings.json... 22:26:56 workflow.py:1960 DEBUG Workflow version : 4.2.0 22:26:56 lpvs_query.py:30 DEBUG Query arguments: [u'search-vault-for-query', u't'] 22:26:56 lpvs_query.py:38 DEBUG Parsed command: search-vault-for-query 22:26:56 lpvs_query.py:39 DEBUG Parsed argument: t 22:26:56 lpvs_query.py:40 DEBUG Parsed delimiter: > 22:26:56 lpvs_query.py:41 DEBUG Parsed query: search-vault-for-query t 22:26:56 lpvs_query.py:53 DEBUG Executing command: search-vault-for-query 22:26:56 workflow.py:1609 DEBUG Loading cached data from : /Users/brad.hurley/Library/Caches/com.runningwithcrayons.Alfred-2/Workflow Data/com.bachya.lpvm/vault_items.cpickle 22:26:56 workflow.py:1978 ERROR u'hostname' Traceback (most recent call last): File "/Users/brad.hurley/Library/Application Support/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.6446AD3B-324D-403F-B0D8-7BE4434ECE5C/workflow/workflow.py", line 1971, in run func(self) File "lpvs_query.py", line 55, in main output_query_vault_results(ap) File "lpvs_query.py", line 151, in output_query_vault_results results = util.search_vault_for_query(ap.arg) File "/Users/brad.hurley/Library/Application Support/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.6446AD3B-324D-403F-B0D8-7BE4434ECE5C/utilities.py", line 221, in search_vault_for_query match_on=MATCH_ALL ^ MATCH_ALLCHARS File "/Users/brad.hurley/Library/Application Support/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.6446AD3B-324D-403F-B0D8-7BE4434ECE5C/workflow/workflow.py", line 1791, in filter value = key(item).strip() File "/Users/brad.hurley/Library/Application Support/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.6446AD3B-324D-403F-B0D8-7BE4434ECE5C/utilities.py", line 199, in search_item_fields elements.append(item['hostname']) KeyError: u'hostname' 22:26:56 workflow.py:1996 DEBUG Workflow finished in 0.019 seconds.
When I run lpass ls
the results look as I would expect.
I added a debug statement to utilities.search_item_fields
and all of the urls are populated, but the item list does not contain any hostnames.
In the event that someone else has this issue it is caused by upgrading lastpass-cli to version 0.9.0.
You can modify /usr/local/Library/Formula/lastpass-cli.rb
to brew install version 0.8.1.
Updare the version URL and the sha256 values.
class LastpassCli < Formula desc "LastPass command-line interface tool" homepage "https://github.com/lastpass/lastpass-cli" url "https://github.com/lastpass/lastpass-cli/archive/v0.8.1.tar.gz" sha256 "b57ee688d9e9877f25a0ef566cff9a8c364f28e26c54b3c11eb338468cddfeb2" head "https://github.com/lastpass/lastpass-cli.git"
bottle do cellar :any sha256 "b57ee688d9e9877f25a0ef566cff9a8c364f28e26c54b3c11eb338468cddfeb2" => :el_capitan sha256 "e8ca9db904d637852830910ff8905c4be206a7b15ebbf04c0e1ead5073ea9642" => :yosemite sha256 "bf2a47f74b67df21875b3a01e87acad4d5e3d69ccff79987d73ca56e8020134a" => :mavericks end
I am still having this issue after downgrading to cli 0.8.1. Not sure if it is environment related or python issues or what.
I was having the issue above running on cli 0.8.1 and was getting the stacktrace.
[ERROR: alfred.workflow.input.scriptfilter] Code 1: 22:49:35 workflow.py:1386 DEBUG Reading settings from
/Users/carterdanko/Library/Application Support/Alfred 2/Workflow Data/com.bachya.lpvm/settings.json... 22:49:36 workflow.py:1960 DEBUG Workflow version : 4.2.0 22:49:36 lpvs_query.py:30 DEBUG Query arguments: [u'search-vault-for-query', u'g'] 22:49:36 lpvs_query.py:38 DEBUG Parsed command: search-vault-for-query 22:49:36 lpvs_query.py:39 DEBUG Parsed argument: g 22:49:36 lpvs_query.py:40 DEBUG Parsed delimiter: > 22:49:36 lpvs_query.py:41 DEBUG Parsed query: search-vault-for-query g 22:49:36 lpvs_query.py:53 DEBUG Executing command: search-vault-for-query 22:49:36 workflow.py:1609 DEBUG Loading cached data from : /Users/carterdanko/Library/Caches/com.runningwithcrayons.Alfred-2/Workflow Data/com.bachya.lpvm/vault_items.cpickle 22:49:36 workflow.py:1978 ERROR u'hostname' Traceback (most recent call last): File "/Users/carterdanko/Library/Application Support/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.DFD57440-F2AF-4CF3-99E1-2F478E7C5493/workflow/workflow.py", line 1971, in run func(self) File "lpvs_query.py", line 55, in main output_query_vault_results(ap) File "lpvs_query.py", line 151, in output_query_vault_results results = util.search_vault_for_query(ap.arg) File "/Users/carterdanko/Library/Application Support/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.DFD57440-F2AF-4CF3-99E1-2F478E7C5493/utilities.py", line 218, in search_vault_for_query match_on=MATCH_ALL ^ MATCH_ALLCHARS File "/Users/carterdanko/Library/Application Support/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.DFD57440-F2AF-4CF3-99E1-2F478E7C5493/workflow/workflow.py", line 1791, in filter value = key(item).strip() File "/Users/carterdanko/Library/Application Support/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.DFD57440-F2AF-4CF3-99E1-2F478E7C5493/utilities.py", line 196, in search_item_fields elements.append(item['hostname']) KeyError: u'hostname' 22:49:36 workflow.py:1996 DEBUG Workflow finished in 0.046 seconds.
I ended up tinkering with the code a little and eventually got a 'Cannot set attribute' error with both the args that are being passed in so 'search-vault-for-query <QUERY>'
I deleted the workflow from alfred, and reimported it. When I did, i ran
python update.py
lpvs was working once again since the downgrade to 0.8.1.
I should also mention that I am running on el capitan 10.11.4 with python 2.7.11.
I have no idea what was going on or what had changed, but at least it works now.
Would be great if the developer would add support for the new lastpass-cli binary.
It's not as feature rich, but @carterdanko created an alternative. https://github.com/carterdanko/lastpass-vault-search
Trying to follow Bradley's solution above, but I'm on Sierra. Any clues on what the hash to add for sierra should be?
bottle do cellar :any sha256 "???" => :sierra ... end
Thanks!
@crikeymiles2 When you do a brew info lastpass-cli
you can see where it is pulling the rb file with the hashes so you should be able to pull the hash from there which is:
https://github.com/Homebrew/homebrew-core/blob/master/Formula/lastpass-cli.rb
I'm not sure on other support though for this workflow. The one Brad and I wrote works with sierra I know and is less feature rich than this one, but works with current lasspass-cli/alfredv3/sierra.
This solved my issue:
- Find your lastpass workflow directory (eg.
~/Library/Application Support/Alfred 3/Alfred.alfredpreferences/workflows/user.workflow.XXXXXXXXXXXX
) - Find all references of
hostname
in.py
files (make sure it's hostname as in map key name) - Replace with
name
- Run
python -m compileall .
(you must have python installed) - Done.
It seems lastpass cli changed their export content and it does not contain host
column anymore.
Thanks @SharkyLV! That fixed if for me. Replacing all instances of 'hostname'
didn't work though, it gave me the error lpvs KeyError: u'name'
. I had to replace all instances of hostname
(without the quotes) for name
and that did it.
@SharkyLV Thanks! It works for me!
@SharkyLV That worked for me as well, thank you soo much!!
Bummer. I tried @SharkyLV's suggestion with no luck. Now I am getting the error lpvs KeyError: u'name'
instead of lpvs KeyError: u'hostname'
.
Thanks for the suggestion though!
On the latest version of lp-vault-manager
(I installed it 10 minutes ago) and the latest version of lp-cli
from homebrew (I also installed it 10 minutes ago).
@levibostian replace all instances of hostname
with name
(no quotes), that should fix it.
...I feel stupid. I read your comment earlier and didn't make the connection. Sorry about that. Thank you! I will give that a shot.
No problem :). I probably could have written that a bit more clearly to be honest...
I went through the code and replaced all instances of hostname
with name
but only the instances of the word not in quotes (which was mostly a collection of variable names so I am not sure how that solution is supposed to work?).
Now I am back at KeyError: u'hostname'
.
Does anyone have a fork of the repo with this fix implemented that others can use and benefit from and we can get a fix merged in?
I appreciate everyone's help here. Wish I could be of more help if I could get it figured out on my own machine 🤔.
Ah well, in that case I can't help you, I haven't used this in months 🙄
Here is a re-write of the last pass vault search that I have been using daily without issues:
https://github.com/carterdanko/lastpass-vault-search
This solved my issue:
- Find your lastpass workflow directory (eg.
~/Library/Application Support/Alfred 3/Alfred.alfredpreferences/workflows/user.workflow.XXXXXXXXXXXX
)- Find all references of
hostname
in.py
files (make sure it's hostname as in map key name)- Replace with
name
- Run
python -m compileall .
(you must have python installed)- Done.
It seems lastpass cli changed their export content and it does not contain
host
column anymore.
Good! it is also work for alfred3.