Modified action.py in order to have filters in a more conveinent way - #109

Open
drksnw wants to merge 1 commit into
StackStorm-Exchange:masterfrom
drksnw:master
Open

Modified action.py in order to have filters in a more conveinent way#109
drksnw wants to merge 1 commit into
StackStorm-Exchange:masterfrom
drksnw:master

Conversation

@drksnw

Copy link
Copy Markdown

Fixes#108

With this fix, it is easier to specify the filters to use with the st2 run command.

The Filters parameter will now have to be specified like this :

Filters=Key1=Value1,Key2=Value2...

If you need to have multiple values for a key, you just have to set the same key multiple times.

For example, if I want to describe all the instances that have the Name tag set to prod-web or prod-db, I will just use the following command :

st2 run aws.ec2_describe_instances Filters=tag:Name=prod-web,tag:Name=prod-db account_id=xxxxxxxxxxxx region=my-aws-region

I will stay available if you have questions.

Best regards

@nmaludynmaludy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General comments as well:

  • Please add unit tests for the new functionality
  • Please add a CHANGELOG entry
  • Please add documentation about your change to the README
  • Please bump the pack version by 0.1.0 because new functionality is added.

Comment threadactions/lib/action.py
method_fqdn = '%s.%s.%s' % (module_path, cls, action)
self.logger.debug('Calling method "%s" with kwargs: %s' % (method_fqdn, str(kwargs)))

if 'Filters' in kwargs.keys():

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this is the same copy/paste code below. Please make this a function.

Comment threadactions/lib/action.py
if 'Filters' in kwargs.keys():
boto3_compliant_filters = []
for specified_filter in kwargs['Filters']:
keyval = specified_filter.split('=')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean its not possible to filter on anything with a = in the value now, as it will get split? For example what happens if I can give an AWS resource a tag or value with an = in?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah you're right, I haven't thought of that. It seems that the equal sign is an allowed character in both tag names and values...
Will try to find a solution to that...

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion, make filters an object, then you can just use the key/value pairs in that dict/object

@winem

winem commented Jun 9, 2020

Copy link
Copy Markdown

What I do like about this PR is that it makes the Filters-parameter a bit more readable but at the same time it breaks with the official boto3 specs (see: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.describe_instances)

As per the docs, Filters is a list of dicts. Both dicts have 2 objects, Name and Values, first is a string, second a list.

Is it possible to support both formats? I guess people working with AWS / boto3 would appreciate the consistency. I will do some more tests with the filters tonight as I don't have a st2-setup with access to AWS available right now but maybe it's just a matter of having a few more examples and improve the documentation a bit.

@winem

Copy link
Copy Markdown

I spent some more time on this topic and find out two things regarding the behaviour with the current implementation:
1st) I could not figure out a single way where the filter works for the described use-cases
2nd) the issue is that the (kw)args are passed as string and not as dict even if the original object is a dict. So the botocore.exceptions.ParamValidationError will appear every time.

@punkrokk

Copy link
Copy Markdown
Contributor

I spent some more time on this topic and find out two things regarding the behaviour with the current implementation:
1st) I could not figure out a single way where the filter works for the described use-cases
2nd) the issue is that the (kw)args are passed as string and not as dict even if the original object is a dict. So the botocore.exceptions.ParamValidationError will appear every time.

@winem What needs to change to fix your # 2?

@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@cwilson21

Copy link
Copy Markdown

@punkrokk@winem I don't think this is broken (The original) how it is written. I think that it needs more documentation around it and all the fields do. In the case of Filters for ec2_describe_instances it does not accept single quotes in the JSON you have to provide double quotes.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Invalid type for parameter Filters[0] when filtering for tags

7 participants

@drksnw@winem@punkrokk@CLAassistant@cwilson21@nmaludy@amanda11
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Modified action.py in order to have filters in a more conveinent way - #109

Open
drksnw wants to merge 1 commit into
StackStorm-Exchange:masterfrom
drksnw:master
Open

Modified action.py in order to have filters in a more conveinent way#109
drksnw wants to merge 1 commit into
StackStorm-Exchange:masterfrom
drksnw:master

Conversation

@drksnw

Copy link
Copy Markdown

Fixes#108

With this fix, it is easier to specify the filters to use with the st2 run command.

The Filters parameter will now have to be specified like this :

Filters=Key1=Value1,Key2=Value2...

If you need to have multiple values for a key, you just have to set the same key multiple times.

For example, if I want to describe all the instances that have the Name tag set to prod-web or prod-db, I will just use the following command :

st2 run aws.ec2_describe_instances Filters=tag:Name=prod-web,tag:Name=prod-db account_id=xxxxxxxxxxxx region=my-aws-region

I will stay available if you have questions.

Best regards

@nmaludynmaludy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General comments as well:

  • Please add unit tests for the new functionality
  • Please add a CHANGELOG entry
  • Please add documentation about your change to the README
  • Please bump the pack version by 0.1.0 because new functionality is added.

Comment threadactions/lib/action.py
method_fqdn = '%s.%s.%s' % (module_path, cls, action)
self.logger.debug('Calling method "%s" with kwargs: %s' % (method_fqdn, str(kwargs)))

if 'Filters' in kwargs.keys():

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this is the same copy/paste code below. Please make this a function.

Comment threadactions/lib/action.py
if 'Filters' in kwargs.keys():
boto3_compliant_filters = []
for specified_filter in kwargs['Filters']:
keyval = specified_filter.split('=')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean its not possible to filter on anything with a = in the value now, as it will get split? For example what happens if I can give an AWS resource a tag or value with an = in?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah you're right, I haven't thought of that. It seems that the equal sign is an allowed character in both tag names and values...
Will try to find a solution to that...

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion, make filters an object, then you can just use the key/value pairs in that dict/object

@winem

winem commented Jun 9, 2020

Copy link
Copy Markdown

What I do like about this PR is that it makes the Filters-parameter a bit more readable but at the same time it breaks with the official boto3 specs (see: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.describe_instances)

As per the docs, Filters is a list of dicts. Both dicts have 2 objects, Name and Values, first is a string, second a list.

Is it possible to support both formats? I guess people working with AWS / boto3 would appreciate the consistency. I will do some more tests with the filters tonight as I don't have a st2-setup with access to AWS available right now but maybe it's just a matter of having a few more examples and improve the documentation a bit.

@winem

Copy link
Copy Markdown

I spent some more time on this topic and find out two things regarding the behaviour with the current implementation:
1st) I could not figure out a single way where the filter works for the described use-cases
2nd) the issue is that the (kw)args are passed as string and not as dict even if the original object is a dict. So the botocore.exceptions.ParamValidationError will appear every time.

@punkrokk

Copy link
Copy Markdown
Contributor

I spent some more time on this topic and find out two things regarding the behaviour with the current implementation:
1st) I could not figure out a single way where the filter works for the described use-cases
2nd) the issue is that the (kw)args are passed as string and not as dict even if the original object is a dict. So the botocore.exceptions.ParamValidationError will appear every time.

@winem What needs to change to fix your # 2?

@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@cwilson21

Copy link
Copy Markdown

@punkrokk@winem I don't think this is broken (The original) how it is written. I think that it needs more documentation around it and all the fields do. In the case of Filters for ec2_describe_instances it does not accept single quotes in the JSON you have to provide double quotes.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Invalid type for parameter Filters[0] when filtering for tags

7 participants

@drksnw@winem@punkrokk@CLAassistant@cwilson21@nmaludy@amanda11
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Modified action.py in order to have filters in a more conveinent way - #109

Open
drksnw wants to merge 1 commit into
StackStorm-Exchange:masterfrom
drksnw:master
Open

Modified action.py in order to have filters in a more conveinent way#109
drksnw wants to merge 1 commit into
StackStorm-Exchange:masterfrom
drksnw:master

Conversation

@drksnw

Copy link
Copy Markdown

Fixes#108

With this fix, it is easier to specify the filters to use with the st2 run command.

The Filters parameter will now have to be specified like this :

Filters=Key1=Value1,Key2=Value2...

If you need to have multiple values for a key, you just have to set the same key multiple times.

For example, if I want to describe all the instances that have the Name tag set to prod-web or prod-db, I will just use the following command :

st2 run aws.ec2_describe_instances Filters=tag:Name=prod-web,tag:Name=prod-db account_id=xxxxxxxxxxxx region=my-aws-region

I will stay available if you have questions.

Best regards

@nmaludynmaludy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General comments as well:

  • Please add unit tests for the new functionality
  • Please add a CHANGELOG entry
  • Please add documentation about your change to the README
  • Please bump the pack version by 0.1.0 because new functionality is added.

Comment threadactions/lib/action.py
method_fqdn = '%s.%s.%s' % (module_path, cls, action)
self.logger.debug('Calling method "%s" with kwargs: %s' % (method_fqdn, str(kwargs)))

if 'Filters' in kwargs.keys():

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this is the same copy/paste code below. Please make this a function.

Comment threadactions/lib/action.py
if 'Filters' in kwargs.keys():
boto3_compliant_filters = []
for specified_filter in kwargs['Filters']:
keyval = specified_filter.split('=')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean its not possible to filter on anything with a = in the value now, as it will get split? For example what happens if I can give an AWS resource a tag or value with an = in?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah you're right, I haven't thought of that. It seems that the equal sign is an allowed character in both tag names and values...
Will try to find a solution to that...

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion, make filters an object, then you can just use the key/value pairs in that dict/object

@winem

winem commented Jun 9, 2020

Copy link
Copy Markdown

What I do like about this PR is that it makes the Filters-parameter a bit more readable but at the same time it breaks with the official boto3 specs (see: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.describe_instances)

As per the docs, Filters is a list of dicts. Both dicts have 2 objects, Name and Values, first is a string, second a list.

Is it possible to support both formats? I guess people working with AWS / boto3 would appreciate the consistency. I will do some more tests with the filters tonight as I don't have a st2-setup with access to AWS available right now but maybe it's just a matter of having a few more examples and improve the documentation a bit.

@winem

Copy link
Copy Markdown

I spent some more time on this topic and find out two things regarding the behaviour with the current implementation:
1st) I could not figure out a single way where the filter works for the described use-cases
2nd) the issue is that the (kw)args are passed as string and not as dict even if the original object is a dict. So the botocore.exceptions.ParamValidationError will appear every time.

@punkrokk

Copy link
Copy Markdown
Contributor

I spent some more time on this topic and find out two things regarding the behaviour with the current implementation:
1st) I could not figure out a single way where the filter works for the described use-cases
2nd) the issue is that the (kw)args are passed as string and not as dict even if the original object is a dict. So the botocore.exceptions.ParamValidationError will appear every time.

@winem What needs to change to fix your # 2?

@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@cwilson21

Copy link
Copy Markdown

@punkrokk@winem I don't think this is broken (The original) how it is written. I think that it needs more documentation around it and all the fields do. In the case of Filters for ec2_describe_instances it does not accept single quotes in the JSON you have to provide double quotes.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Invalid type for parameter Filters[0] when filtering for tags

7 participants

@drksnw@winem@punkrokk@CLAassistant@cwilson21@nmaludy@amanda11
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Modified action.py in order to have filters in a more conveinent way - #109

Open
drksnw wants to merge 1 commit into
StackStorm-Exchange:masterfrom
drksnw:master
Open

Modified action.py in order to have filters in a more conveinent way#109
drksnw wants to merge 1 commit into
StackStorm-Exchange:masterfrom
drksnw:master

Conversation

@drksnw

Copy link
Copy Markdown

Fixes#108

With this fix, it is easier to specify the filters to use with the st2 run command.

The Filters parameter will now have to be specified like this :

Filters=Key1=Value1,Key2=Value2...

If you need to have multiple values for a key, you just have to set the same key multiple times.

For example, if I want to describe all the instances that have the Name tag set to prod-web or prod-db, I will just use the following command :

st2 run aws.ec2_describe_instances Filters=tag:Name=prod-web,tag:Name=prod-db account_id=xxxxxxxxxxxx region=my-aws-region

I will stay available if you have questions.

Best regards

@nmaludynmaludy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General comments as well:

  • Please add unit tests for the new functionality
  • Please add a CHANGELOG entry
  • Please add documentation about your change to the README
  • Please bump the pack version by 0.1.0 because new functionality is added.

Comment threadactions/lib/action.py
method_fqdn = '%s.%s.%s' % (module_path, cls, action)
self.logger.debug('Calling method "%s" with kwargs: %s' % (method_fqdn, str(kwargs)))

if 'Filters' in kwargs.keys():

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this is the same copy/paste code below. Please make this a function.

Comment threadactions/lib/action.py
if 'Filters' in kwargs.keys():
boto3_compliant_filters = []
for specified_filter in kwargs['Filters']:
keyval = specified_filter.split('=')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean its not possible to filter on anything with a = in the value now, as it will get split? For example what happens if I can give an AWS resource a tag or value with an = in?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah you're right, I haven't thought of that. It seems that the equal sign is an allowed character in both tag names and values...
Will try to find a solution to that...

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion, make filters an object, then you can just use the key/value pairs in that dict/object

@winem

winem commented Jun 9, 2020

Copy link
Copy Markdown

What I do like about this PR is that it makes the Filters-parameter a bit more readable but at the same time it breaks with the official boto3 specs (see: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.describe_instances)

As per the docs, Filters is a list of dicts. Both dicts have 2 objects, Name and Values, first is a string, second a list.

Is it possible to support both formats? I guess people working with AWS / boto3 would appreciate the consistency. I will do some more tests with the filters tonight as I don't have a st2-setup with access to AWS available right now but maybe it's just a matter of having a few more examples and improve the documentation a bit.

@winem

Copy link
Copy Markdown

I spent some more time on this topic and find out two things regarding the behaviour with the current implementation:
1st) I could not figure out a single way where the filter works for the described use-cases
2nd) the issue is that the (kw)args are passed as string and not as dict even if the original object is a dict. So the botocore.exceptions.ParamValidationError will appear every time.

@punkrokk

Copy link
Copy Markdown
Contributor

I spent some more time on this topic and find out two things regarding the behaviour with the current implementation:
1st) I could not figure out a single way where the filter works for the described use-cases
2nd) the issue is that the (kw)args are passed as string and not as dict even if the original object is a dict. So the botocore.exceptions.ParamValidationError will appear every time.

@winem What needs to change to fix your # 2?

@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@cwilson21

Copy link
Copy Markdown

@punkrokk@winem I don't think this is broken (The original) how it is written. I think that it needs more documentation around it and all the fields do. In the case of Filters for ec2_describe_instances it does not accept single quotes in the JSON you have to provide double quotes.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Invalid type for parameter Filters[0] when filtering for tags

7 participants

@drksnw@winem@punkrokk@CLAassistant@cwilson21@nmaludy@amanda11
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Modified action.py in order to have filters in a more conveinent way - #109

Open
drksnw wants to merge 1 commit into
StackStorm-Exchange:masterfrom
drksnw:master
Open

Modified action.py in order to have filters in a more conveinent way#109
drksnw wants to merge 1 commit into
StackStorm-Exchange:masterfrom
drksnw:master

Conversation

@drksnw

Copy link
Copy Markdown

Fixes#108

With this fix, it is easier to specify the filters to use with the st2 run command.

The Filters parameter will now have to be specified like this :

Filters=Key1=Value1,Key2=Value2...

If you need to have multiple values for a key, you just have to set the same key multiple times.

For example, if I want to describe all the instances that have the Name tag set to prod-web or prod-db, I will just use the following command :

st2 run aws.ec2_describe_instances Filters=tag:Name=prod-web,tag:Name=prod-db account_id=xxxxxxxxxxxx region=my-aws-region

I will stay available if you have questions.

Best regards

@nmaludynmaludy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General comments as well:

  • Please add unit tests for the new functionality
  • Please add a CHANGELOG entry
  • Please add documentation about your change to the README
  • Please bump the pack version by 0.1.0 because new functionality is added.

Comment threadactions/lib/action.py
method_fqdn = '%s.%s.%s' % (module_path, cls, action)
self.logger.debug('Calling method "%s" with kwargs: %s' % (method_fqdn, str(kwargs)))

if 'Filters' in kwargs.keys():

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this is the same copy/paste code below. Please make this a function.

Comment threadactions/lib/action.py
if 'Filters' in kwargs.keys():
boto3_compliant_filters = []
for specified_filter in kwargs['Filters']:
keyval = specified_filter.split('=')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean its not possible to filter on anything with a = in the value now, as it will get split? For example what happens if I can give an AWS resource a tag or value with an = in?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah you're right, I haven't thought of that. It seems that the equal sign is an allowed character in both tag names and values...
Will try to find a solution to that...

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion, make filters an object, then you can just use the key/value pairs in that dict/object

@winem

winem commented Jun 9, 2020

Copy link
Copy Markdown

What I do like about this PR is that it makes the Filters-parameter a bit more readable but at the same time it breaks with the official boto3 specs (see: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.describe_instances)

As per the docs, Filters is a list of dicts. Both dicts have 2 objects, Name and Values, first is a string, second a list.

Is it possible to support both formats? I guess people working with AWS / boto3 would appreciate the consistency. I will do some more tests with the filters tonight as I don't have a st2-setup with access to AWS available right now but maybe it's just a matter of having a few more examples and improve the documentation a bit.

@winem

Copy link
Copy Markdown

I spent some more time on this topic and find out two things regarding the behaviour with the current implementation:
1st) I could not figure out a single way where the filter works for the described use-cases
2nd) the issue is that the (kw)args are passed as string and not as dict even if the original object is a dict. So the botocore.exceptions.ParamValidationError will appear every time.

@punkrokk

Copy link
Copy Markdown
Contributor

I spent some more time on this topic and find out two things regarding the behaviour with the current implementation:
1st) I could not figure out a single way where the filter works for the described use-cases
2nd) the issue is that the (kw)args are passed as string and not as dict even if the original object is a dict. So the botocore.exceptions.ParamValidationError will appear every time.

@winem What needs to change to fix your # 2?

@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@cwilson21

Copy link
Copy Markdown

@punkrokk@winem I don't think this is broken (The original) how it is written. I think that it needs more documentation around it and all the fields do. In the case of Filters for ec2_describe_instances it does not accept single quotes in the JSON you have to provide double quotes.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Invalid type for parameter Filters[0] when filtering for tags

7 participants

@drksnw@winem@punkrokk@CLAassistant@cwilson21@nmaludy@amanda11
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Modified action.py in order to have filters in a more conveinent way - #109

Open
drksnw wants to merge 1 commit into
StackStorm-Exchange:masterfrom
drksnw:master
Open

Modified action.py in order to have filters in a more conveinent way#109
drksnw wants to merge 1 commit into
StackStorm-Exchange:masterfrom
drksnw:master

Conversation

@drksnw

Copy link
Copy Markdown

Fixes#108

With this fix, it is easier to specify the filters to use with the st2 run command.

The Filters parameter will now have to be specified like this :

Filters=Key1=Value1,Key2=Value2...

If you need to have multiple values for a key, you just have to set the same key multiple times.

For example, if I want to describe all the instances that have the Name tag set to prod-web or prod-db, I will just use the following command :

st2 run aws.ec2_describe_instances Filters=tag:Name=prod-web,tag:Name=prod-db account_id=xxxxxxxxxxxx region=my-aws-region

I will stay available if you have questions.

Best regards

@nmaludynmaludy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General comments as well:

  • Please add unit tests for the new functionality
  • Please add a CHANGELOG entry
  • Please add documentation about your change to the README
  • Please bump the pack version by 0.1.0 because new functionality is added.

Comment threadactions/lib/action.py
method_fqdn = '%s.%s.%s' % (module_path, cls, action)
self.logger.debug('Calling method "%s" with kwargs: %s' % (method_fqdn, str(kwargs)))

if 'Filters' in kwargs.keys():

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this is the same copy/paste code below. Please make this a function.

Comment threadactions/lib/action.py
if 'Filters' in kwargs.keys():
boto3_compliant_filters = []
for specified_filter in kwargs['Filters']:
keyval = specified_filter.split('=')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean its not possible to filter on anything with a = in the value now, as it will get split? For example what happens if I can give an AWS resource a tag or value with an = in?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah you're right, I haven't thought of that. It seems that the equal sign is an allowed character in both tag names and values...
Will try to find a solution to that...

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion, make filters an object, then you can just use the key/value pairs in that dict/object

@winem

winem commented Jun 9, 2020

Copy link
Copy Markdown

What I do like about this PR is that it makes the Filters-parameter a bit more readable but at the same time it breaks with the official boto3 specs (see: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.describe_instances)

As per the docs, Filters is a list of dicts. Both dicts have 2 objects, Name and Values, first is a string, second a list.

Is it possible to support both formats? I guess people working with AWS / boto3 would appreciate the consistency. I will do some more tests with the filters tonight as I don't have a st2-setup with access to AWS available right now but maybe it's just a matter of having a few more examples and improve the documentation a bit.

@winem

Copy link
Copy Markdown

I spent some more time on this topic and find out two things regarding the behaviour with the current implementation:
1st) I could not figure out a single way where the filter works for the described use-cases
2nd) the issue is that the (kw)args are passed as string and not as dict even if the original object is a dict. So the botocore.exceptions.ParamValidationError will appear every time.

@punkrokk

Copy link
Copy Markdown
Contributor

I spent some more time on this topic and find out two things regarding the behaviour with the current implementation:
1st) I could not figure out a single way where the filter works for the described use-cases
2nd) the issue is that the (kw)args are passed as string and not as dict even if the original object is a dict. So the botocore.exceptions.ParamValidationError will appear every time.

@winem What needs to change to fix your # 2?

@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@cwilson21

Copy link
Copy Markdown

@punkrokk@winem I don't think this is broken (The original) how it is written. I think that it needs more documentation around it and all the fields do. In the case of Filters for ec2_describe_instances it does not accept single quotes in the JSON you have to provide double quotes.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Invalid type for parameter Filters[0] when filtering for tags

7 participants

@drksnw@winem@punkrokk@CLAassistant@cwilson21@nmaludy@amanda11
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Modified action.py in order to have filters in a more conveinent way - #109

Open
drksnw wants to merge 1 commit into
StackStorm-Exchange:masterfrom
drksnw:master
Open

Modified action.py in order to have filters in a more conveinent way#109
drksnw wants to merge 1 commit into
StackStorm-Exchange:masterfrom
drksnw:master

Conversation

@drksnw

Copy link
Copy Markdown

Fixes#108

With this fix, it is easier to specify the filters to use with the st2 run command.

The Filters parameter will now have to be specified like this :

Filters=Key1=Value1,Key2=Value2...

If you need to have multiple values for a key, you just have to set the same key multiple times.

For example, if I want to describe all the instances that have the Name tag set to prod-web or prod-db, I will just use the following command :

st2 run aws.ec2_describe_instances Filters=tag:Name=prod-web,tag:Name=prod-db account_id=xxxxxxxxxxxx region=my-aws-region

I will stay available if you have questions.

Best regards

@nmaludynmaludy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General comments as well:

  • Please add unit tests for the new functionality
  • Please add a CHANGELOG entry
  • Please add documentation about your change to the README
  • Please bump the pack version by 0.1.0 because new functionality is added.

Comment threadactions/lib/action.py
method_fqdn = '%s.%s.%s' % (module_path, cls, action)
self.logger.debug('Calling method "%s" with kwargs: %s' % (method_fqdn, str(kwargs)))

if 'Filters' in kwargs.keys():

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this is the same copy/paste code below. Please make this a function.

Comment threadactions/lib/action.py
if 'Filters' in kwargs.keys():
boto3_compliant_filters = []
for specified_filter in kwargs['Filters']:
keyval = specified_filter.split('=')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean its not possible to filter on anything with a = in the value now, as it will get split? For example what happens if I can give an AWS resource a tag or value with an = in?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah you're right, I haven't thought of that. It seems that the equal sign is an allowed character in both tag names and values...
Will try to find a solution to that...

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion, make filters an object, then you can just use the key/value pairs in that dict/object

@winem

winem commented Jun 9, 2020

Copy link
Copy Markdown

What I do like about this PR is that it makes the Filters-parameter a bit more readable but at the same time it breaks with the official boto3 specs (see: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.describe_instances)

As per the docs, Filters is a list of dicts. Both dicts have 2 objects, Name and Values, first is a string, second a list.

Is it possible to support both formats? I guess people working with AWS / boto3 would appreciate the consistency. I will do some more tests with the filters tonight as I don't have a st2-setup with access to AWS available right now but maybe it's just a matter of having a few more examples and improve the documentation a bit.

@winem

Copy link
Copy Markdown

I spent some more time on this topic and find out two things regarding the behaviour with the current implementation:
1st) I could not figure out a single way where the filter works for the described use-cases
2nd) the issue is that the (kw)args are passed as string and not as dict even if the original object is a dict. So the botocore.exceptions.ParamValidationError will appear every time.

@punkrokk

Copy link
Copy Markdown
Contributor

I spent some more time on this topic and find out two things regarding the behaviour with the current implementation:
1st) I could not figure out a single way where the filter works for the described use-cases
2nd) the issue is that the (kw)args are passed as string and not as dict even if the original object is a dict. So the botocore.exceptions.ParamValidationError will appear every time.

@winem What needs to change to fix your # 2?

@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@cwilson21

Copy link
Copy Markdown

@punkrokk@winem I don't think this is broken (The original) how it is written. I think that it needs more documentation around it and all the fields do. In the case of Filters for ec2_describe_instances it does not accept single quotes in the JSON you have to provide double quotes.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Invalid type for parameter Filters[0] when filtering for tags

7 participants

@drksnw@winem@punkrokk@CLAassistant@cwilson21@nmaludy@amanda11
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Modified action.py in order to have filters in a more conveinent way - #109

Open
drksnw wants to merge 1 commit into
StackStorm-Exchange:masterfrom
drksnw:master
Open

Modified action.py in order to have filters in a more conveinent way#109
drksnw wants to merge 1 commit into
StackStorm-Exchange:masterfrom
drksnw:master

Conversation

@drksnw

Copy link
Copy Markdown

Fixes#108

With this fix, it is easier to specify the filters to use with the st2 run command.

The Filters parameter will now have to be specified like this :

Filters=Key1=Value1,Key2=Value2...

If you need to have multiple values for a key, you just have to set the same key multiple times.

For example, if I want to describe all the instances that have the Name tag set to prod-web or prod-db, I will just use the following command :

st2 run aws.ec2_describe_instances Filters=tag:Name=prod-web,tag:Name=prod-db account_id=xxxxxxxxxxxx region=my-aws-region

I will stay available if you have questions.

Best regards

@nmaludynmaludy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General comments as well:

  • Please add unit tests for the new functionality
  • Please add a CHANGELOG entry
  • Please add documentation about your change to the README
  • Please bump the pack version by 0.1.0 because new functionality is added.

Comment threadactions/lib/action.py
method_fqdn = '%s.%s.%s' % (module_path, cls, action)
self.logger.debug('Calling method "%s" with kwargs: %s' % (method_fqdn, str(kwargs)))

if 'Filters' in kwargs.keys():

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this is the same copy/paste code below. Please make this a function.

Comment threadactions/lib/action.py
if 'Filters' in kwargs.keys():
boto3_compliant_filters = []
for specified_filter in kwargs['Filters']:
keyval = specified_filter.split('=')

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean its not possible to filter on anything with a = in the value now, as it will get split? For example what happens if I can give an AWS resource a tag or value with an = in?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah you're right, I haven't thought of that. It seems that the equal sign is an allowed character in both tag names and values...
Will try to find a solution to that...

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion, make filters an object, then you can just use the key/value pairs in that dict/object

@winem

winem commented Jun 9, 2020

Copy link
Copy Markdown

What I do like about this PR is that it makes the Filters-parameter a bit more readable but at the same time it breaks with the official boto3 specs (see: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.describe_instances)

As per the docs, Filters is a list of dicts. Both dicts have 2 objects, Name and Values, first is a string, second a list.

Is it possible to support both formats? I guess people working with AWS / boto3 would appreciate the consistency. I will do some more tests with the filters tonight as I don't have a st2-setup with access to AWS available right now but maybe it's just a matter of having a few more examples and improve the documentation a bit.

@winem

Copy link
Copy Markdown

I spent some more time on this topic and find out two things regarding the behaviour with the current implementation:
1st) I could not figure out a single way where the filter works for the described use-cases
2nd) the issue is that the (kw)args are passed as string and not as dict even if the original object is a dict. So the botocore.exceptions.ParamValidationError will appear every time.

@punkrokk

Copy link
Copy Markdown
Contributor

I spent some more time on this topic and find out two things regarding the behaviour with the current implementation:
1st) I could not figure out a single way where the filter works for the described use-cases
2nd) the issue is that the (kw)args are passed as string and not as dict even if the original object is a dict. So the botocore.exceptions.ParamValidationError will appear every time.

@winem What needs to change to fix your # 2?

@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@cwilson21

Copy link
Copy Markdown

@punkrokk@winem I don't think this is broken (The original) how it is written. I think that it needs more documentation around it and all the fields do. In the case of Filters for ec2_describe_instances it does not accept single quotes in the JSON you have to provide double quotes.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Invalid type for parameter Filters[0] when filtering for tags

7 participants

@drksnw@winem@punkrokk@CLAassistant@cwilson21@nmaludy@amanda11