Protected Admin route added

Please include a summary of the changes and the related issue. Please also include relevant motivation and context. List any dependencies that are required for this change.
@pooranjoyb
[Feature] Add login before access admin panel #334
Fixes #334 (issue)
Type of change
Please give a X on it which is applicable

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Refactor Code
[ ] A documentation update
[ ] Others(mentioned in the issue number)

How Has This Been Tested?
try to navigate /admin route
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Test A Describe here
Test B Describe here (if Requred)
Screenshots and Videos:

it take username and password for admin login
username : admin
password: Admin@123
Give screenshots and video of the changes you made
Checklist:
Give a X on, which is applicable

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

@pooranjoyb
kindly check this and merge it

@pooranjoyb
kindly please review it
if you need any modification please inform me

@pooranjoyb
i created protected route for admin page
kindly please review it and merge it

@pooranjoyb
i created protected route for admin page kindly please review it and merge it

Hey I can see there are some issues.

Add a link similar to this like, Login as Admin here below the Don't you have an account?

Remove this in Admin Login
Add a Logout button similar to the one you created in Profile page in Admin Dashboard in the sidebar.
It should clear the state and redirect user back to /admin route

@dhruv8433

@pooranjoyb
i updated my code and make it same as you said
if you think my code is good enought to get level 3 please assign it
https://github.com/user-attachments/assets/4c92c549-2f03-473d-86f6-9377d5903c9d

@pooranjoyb
i updated my code and make it same as you said
if you think my code is good enought to get level 3 please assign it

@pooranjoyb
i updated my code and make it same as you said
if you think my code is good enought to get level 3 please assign it

@pooranjoyb
please response
i request you kindly check this and merge it

Hii @dhruv8433 i am travelling today will review and merge tomorrow.

ok thank you for response

@pooranjoyb
when you become free, please check this and merge it


Jaeger Operator 403 k8s api requests

Hi,
It seems the jeager operator is making requests to the k8s api and it's getting 403.
Details:
Deployment details:
Name:                   jaeger-operator
Namespace:              observability
CreationTimestamp:      Fri, 04 Sep 2020 12:28:25 +0100
Labels:                 app.kubernetes.io/instance=jaeger-dev
Annotations:            deployment.kubernetes.io/revision: 9
Selector:               name=jaeger-operator
Replicas:               1 desired | 1 updated | 1 total | 1 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:           name=jaeger-operator
  Annotations:      prometheus.io/path: /metrics
                    prometheus.io/port: 8383
                    prometheus.io/scrape: true
  Service Account:  jaeger-operator
  Containers:
   jaeger-operator:
    Image:       jaegertracing/jaeger-operator:1.20.0
    Ports:       8383/TCP, 8686/TCP
    Host Ports:  0/TCP, 0/TCP
    Args:
      start
    Limits:
      cpu:     250m
      memory:  128Mi
    Requests:
      cpu:     100m
      memory:  64Mi
    Environment:
      WATCH_NAMESPACE:
      POD_NAME:          (v1:metadata.name)
      POD_NAMESPACE:     (v1:metadata.namespace)
      OPERATOR_NAME:    jaeger-operator
    Mounts:             <none>
  Volumes:              <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   jaeger-operator-5b45f475c9 (1/1 replicas created)
Events:          <none>

Installation was done by following https://www.jaegertracing.io/docs/1.20/operator/#installing-the-operator-on-kubernetes with cluster wide permissions.
We were alerted to the 403 rest client requests:
{code="403",host="<IP_ADDRESS>:443",instance="<IP_ADDRESS>:8383",job="kubernetes-pods",kubernetes_namespace="observability",kubernetes_pod_name="jaeger-operator-5b45f475c9-8g985",method="POST",name="jaeger-operator",pod_template_hash="5b45f475c9"} 0.2

Prometheus rate graph with details

Prometheus graph without rate details

Kubelet logs do not have anything useful in them regarding this.
RBAC permissions have been re-created to make sure we're using the ones from the tutorial (that's why you see a second line in the non rate graphs).
How could I continue this investigation?

Could you try running the operator with debug logs enabled? Perhaps there's a clue in there.
In this line:
https://github.com/jaegertracing/jaeger-operator/blob/5271b85d99f2861a5e2ae69d4b466feb0b8bd63f/deploy/operator.yaml#L24
Add the log-level=debug flag, like this:
        args: ["start", "--log-level=debug"]

Done, new pod came up, error rates going up based on the graphs:

Logs from the operator:
time="2020-10-14T13:18:56Z" level=info msg=Versions arch=amd64 identity=observability.jaeger-operator jaeger=1.20.0 jaeger-operator=v1.20.0 operator-sdk=v0.18.2 os=linux version=go1.14.4
time="2020-10-14T13:19:01Z" level=info msg="Auto-detected the platform" platform=kubernetes
time="2020-10-14T13:19:01Z" level=info msg="Auto-detected ingress api" ingress-api=networking
time="2020-10-14T13:19:01Z" level=info msg="Automatically adjusted the 'es-provision' flag" es-provision=no
time="2020-10-14T13:19:01Z" level=info msg="Automatically adjusted the 'kafka-provision' flag" kafka-provision=no
time="2020-10-14T13:19:01Z" level=info msg="The service account running this operator does not have the role 'system:auth-delegator', consider granting it for additional capabilities"
time="2020-10-14T13:19:03Z" level=info msg="Install prometheus-operator in your cluster to create ServiceMonitor objects" error="no ServiceMonitor registered with the API"
time="2020-10-14T13:19:03Z" level=debug msg="Not running on OpenShift, so won't configure OAuthProxy imagestream."
 Is it happening only with the Jaeger operator, or do you see something similar with other operators?

The reconciliation only happened once, while I see 12 403 errors / 60 seconds from the operator. I have no other 403 api rest client errors. The other HTTP error code I see is 409, which only happened 3 times at startup.

Yes, I do. Problems seem to have started since I enabled that. I am watching all namespaces and injection is successful, traces show up in jaeger ui.

I found the cause for this: it's not really a problem, as it's just the operator trying to determine whether it has the system:auth-delegator permissions. Unfortunately, I'm unaware of a clean way of checking that, and seems like the recommended way to do it is by actually trying to create a dummy token review, like this:
https://github.com/jaegertracing/jaeger-operator/blob/619c92481921131da1af876b29b973ac6a6a4cdc/pkg/autodetect/main.go#L205
To verify that this is indeed the cause, you can try granting the mentioned role to the jaeger-operator account and the failed POST should now become successful POST requests. You shouldn't grant this permission if you don't intend the operator to use this feature, though.
Is this causing a problem for you?
And finally, we might want to restrict this one to be executed only on OpenShift, as I don't think we benefit from this role for plain Kubernetes.

As always you're absolutely spot on. After applying a ClusterRoleBinding with the following all is fine:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: jaeger-operator-auth-delegator
subjects:
- kind: ServiceAccount
  name: jaeger-operator
  namespace: observability
roleRef:
  kind: ClusterRole
  name: system:auth-delegator
  apiGroup: rbac.authorization.k8s.io

The logs show it was successful:
time="2020-10-15T08:42:19Z" level=info msg="The service account running this operator has the role 'system:auth-delegator', enabling OAuth Proxy's 'delegate-urls' option"

There are no 403 or 409 calls from jaeger-operator anymore.
Thank you so much for your prompt investigation. Feel free to point me towards any documentation you think should be updated and I'd be happy to open a PR.

A new error did appear, I'm guessing now the oauth delegating is trying to happen and it's failing.
Same rate, 12 / 60 seconds. I can't determine the source as it's just reported as kubernetes-apiservers.

I'm not sure what's the best place to document this behavior, but the requirement behind this role is explained here:
https://www.jaegertracing.io/docs/1.20/operator/#openshift-1
I don't think you should really have this role if you don't intend to benefit from the use case it allows: having more permissions than needed isn't ideal. I don't think the risk here is big, though. If having those failures are causing trouble other than just an increase in this particular metric, I'd just ignore it.
What we could be doing to improve the situation for non-OpenShift clusters is to skip this check for vanilla Kubernetes clusters.

We'll silence the alerts until a fix is done. Thanks for your help.


Add tests for public fees

Motivation
This PR adds tests for public fees and transactions using public fees.

Merging early as this is a continuation of #1867.


insert image method doesn't work, and image will not display!!!

Anyone who can tell me how to solve this problem?
Even in the Demo app, i use this method to insert image
not work too!!!
[self insertImage:@"http://pubtest.edaili.com/product/ios/1599702472.jpg" alt:@""];

i have set App Transport Security Settings but also not work
so many problems!!!!
/**
 *  Inserts an image
 *
 *  @param url The URL for the image
 *  @param alt The alt attribute for the image
 */
- (void)insertImage:(NSString *)url alt:(NSString *)alt;

not!
why i use demo app and insert a image url but not display, did you found this problem?
thank you for replying!!

You have an @ in front of the http, is that causing the issue?

not!
why i use demo app and insert a image url but not display, did you found this problem?
thank you for replying!!

After insert, always get this !!!!

insert a web image url can't  show!!!!


embedded Hal for CanFdSocket

I'm looking at the code but fail to understand why the embedded Hal interfaces are implemented for CanSocket but not CanFdSocket?
Can anyone shed some light onto the matter?

What I do remember is that the Embedded HAL and CanFdSocket stuff were written by two different people and merged in that the same time. So some things may have been missed.
I had some mixed feelings about merging in Embedded HAL support. It seemed incomplete, didn't make for easy extensibility, and my one or two PR's there didn't move very quickly. Anyway, when I have a few moments, I can look back into all of this to refresh my memory.

I was involved during the initial CAN PRs, and yes, they move very slow... unfortunately, CAN seems to be a second class citizen in that area which is very unfortunate as it's a pillar in many industries (J1939, NMEA2000, UAVCAN, .....).  The first PR included Filters, but that was canned.
In their defense, I have to say that HALs often come across the "lowest common denominator" problem.  If memory serves me correctly, for something to get merged, they require at the very least two working examples: one with some micro-controller option (bxcan was used) and a version of SoketCAN I hacked (that was before you took it over).
Things didn't move fast enough for me to meet my deliverables and I simply wrote things in C with a Rust wrapper to circumvent the issue (I know, ugly, but it worked).

Interesting...
I have to confess, I'm new to CAN FD and don't know all the details/differences.  From what I've seen so far, the bit rate during data transfers and the payload size is all that changes.  Can anyone confirm?
If that's the case, the current Embedded HAL API might work:

The bit rate is not part of the API
The payload size is not hard-coded

Thoughts?

OK. This will go into the next release, v3.5


Setup subscriptions only if a topic exists

Currently, subscriptions exist without a corresponding topic (since topic deletion behavior is undefined). This has an effect on subscribers being set up without the actual topic to consume from.
This task ensures that such subscribers are not scheduled.

Codecov Report

Merging #303 (425fc60) into master (09b8c8d) will decrease coverage by 2.33%.
The diff coverage is 25.00%.

@@            Coverage Diff             @@
##           master     #303      +/-   ##
==========================================
- Coverage   43.53%   41.19%   -2.34%
==========================================
  Files         120      120
  Lines        6103     6102       -1
==========================================
- Hits         2657     2514     -143
- Misses       3246     3406     +160
+ Partials      200      182      -18

Flag
Coverage Δ

integration
?

unittests
41.19% <25.00%> (-0.23%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

internal/tasks/schedulertask.go
50.84% <25.00%> (+0.28%)
:arrow_up:

pkg/messagebroker/factory.go
33.33% <0.00%> (-33.34%)
:arrow_down:

pkg/messagebroker/kafka.go
10.48% <0.00%> (-30.00%)
:arrow_down:

internal/stream/stream.go
27.35% <0.00%> (-5.67%)
:arrow_down:

internal/subscriber/model.go
32.23% <0.00%> (-1.66%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 09b8c8d...425fc60. Read the comment docs.


Documentation updates

Fixed typo in README
Added more content to docs index (Mainly copied from README file).

The "Import package" section alone is maybe unnecessary because the examples also have imports for the specific function.

Looks good!
If we like, we could also cover examples in the readme by doctest to ensure consistency and that they work. In that case, we would call doctest explicitly on the file (since it is not managed by sphinx make targets):
.github/workflows/tests.yml:
            - name: Doc Test on readme
              run: python -m doctest -v README.md

and the example:

```pycon
>>> from metaspace_converter import metaspace_to_anndata, anndata_to_image_array
>>>
>>> # Download data
>>> adata2 = metaspace_to_anndata(dataset_id="2023-11-14_21h58m39s", fdr=0.1)
>>>
>>> ion_images = anndata_to_image_array(adata2)
>>>
>>> print("{} ion images of shape {}x{}".format(*ion_images.shape))
20 ion images of shape 130x143

```

(with empty line before closing ticks)
The disadvantage is that the IDE displays syntax error for language code python (but pycon for Python console works) and users would not be able to copy-paste the code without >>>.
As it is now, I think it is ready to merge.


Rename docs/guides/securing-your-tunnels.md to c3fa-78-175-159-206.eu…

….ngrok.io

closing as this doesn't seem to do anything but break a page


Update README.md

There's a small typo referencing "official/application_user" but in the filesystem folder is called "official/applications_user"

👍


Add fill(linear) to query language

Required for all non-trivial PRs

[x] Rebased/mergable
[x] Tests pass
[ ] CHANGELOG.md updated
[x] Sign CLA (if not already signed)

Required only if applicable
You can erase any checkboxes below this note if they are not applicable to your Pull Request.

[x] InfluxQL Spec updated
[ ] Provide example syntax
[ ] Update man page when modifying a command

This PR introduces fill(linear) https://github.com/influxdata/influxdb/issues/3273 which will fill empty group by intervals linearly between successive values.
There are two interesting cases.
1 missing point
Suppose that I wrote the following points into the database
cpu,host=A value=2 10s
cpu,host=A value=4 30s

Then the query SELECT mean(value) FROM cpu WHERE  time >= '1970-01-01T00:00:00Z' AND time <= '1970-01-01T00:01:00Z' GROUP BY time(10s) fill(linear) should return
name: cpu
time	mean
----	----
0
10	2
20	3
30	4
40
50

> 1 missing point
Suppose I insert the following points
cpu,host=A value=2 10s
cpu,host=A value=7 60s

Then the query SELECT mean(value) FROM cpu WHERE  time >= '1970-01-01T00:00:00Z' AND time <= '1970-01-01T00:01:00Z' GROUP BY time(10s) fill(linear) should return
name: cpu
time	mean
----	----
0
10	2
20	3
30	4
40	5
50	6
60	7

@jsternberg

When adding comments to this file, it became clear that this should be called fill(linear) not fill(average) since what is being done here is really linear interpolation.

Haha, that's why I asked. It looked like it was linear interpolation and I was confused because the code was hard to understand. Now, I don't expect math code to be easy to understand, but I did want a comment so I don't have to try reading math :)

:)
Let me know if theres anything that I missed.

@jsternberg Should be good to go. Let me know if theres anything I missed.

@jwilder changelog updated.


Indexed properties. throwing exception while queirying.

Problem Type (问题类型)
gremlin (结果不合预期)
Before submit

[X] 我已经确认现有的 Issues 与 FAQ 中没有相同 / 重复问题

Environment (环境信息)

Server Version: v0.11.x
Backend: RocksDB x nodes, HDD or SSD
OS: xx CPUs, xx G RAM, Centos 7.x
Data Size:  xx vertices, xx edges

Your Question (问题描述)
I've indexed my vertex properties (search index and secondary index).But while querying it throws error .
Exception : Exception ::Don't accept query based on properties [NAME, ADDRESS] that are not indexed in label 'DETAILS', may not match secondary condition
But the above mentioned properties in vertex DETAILS have been indexed.
"NAME" ----> Search Index
"ADDRESS" ----> Secondary Index
NOTE : I've previously used the same configurations and worked perfectly .I've recently used new hugegraph build ,So I am wondering is that creating any problem with the configurations in hugegraph.properties.
Configurations :
Hugegraph version : 0.11.2
backend=rocksdb
serializer=binary
store=hugegraph

search.text_analyzer=jieba
search.text_analyzer_mode=INDEX (tried changing these two properties with ikanalyzer )

Vertex/Edge example (问题点 / 边数据举例)
No response
Schema [VertexLabel, EdgeLabel, IndexLabel] (元数据结构)
No response

Any update on this ?

@KirubakaranSP Could you post the query statement and possible error log?

Vertex Label : DETAILS
Properties :
NAME - > Search index
ADDRESS - >Standard Index
Query :
g.V().has('DETAILS','NAME','Tom').has('DETAILS','ADDRESS','Wellington Street')
Exception :
ERROR :: com.baidu.hugegraph.exception.NoIndexException: Don't accept query based on properties [NAME, ADDRESS] that are not indexed in label 'DETAILS', may not match secondary condition

Any update on this ??

Could you try query like this: g.V().has('DETAILS','NAME',Text.contains('Tom')).has('DETAILS','ADDRESS','Wellington Street')

Can you please share what are the Text class methods available other than contains?

There are no other methods in Text class.

Is Text.contains('Tom') only check part of the string that contains the word Tom or the whole string?
If it checks only part of the string ,then which method has to be used to check the string and vice versa?

There are three syntaxes:

Text.contains('Tom Cat'): means "Tom" or "Cat"
Text.contains('(Tom Cat)'): means "Tom Cat"
Text.contains('(Tom Cat | Jerry)'): means "Tom Cat" or "Jerry"

You can use the first or the third syntax.

Thanks lot

Is there any issues in 0.12.0 version of hugegraph? It takes lot of time to execute a query than 0.11.2 version.

How to match the whole string which are indexed using full-text index?I've tried the solution you mentioned above but it is not working.
Query ::  g.V().has('DETAILS', 'NAME', Text.contains('(Tom)'))
I want to return vertices having name 'Tom' but it is not working.

Did you modify the source code? https://github.com/hugegraph/hugegraph/issues/1638#issuecomment-993562786 (It can't match the whole string If the full text is not added to segments)

Did u mean to uncomment the below line ?
/*
        * Add original text to segments at the insertion stage,
        * in order to can match fully words at the query stage.
        */
       // segments.add(text);

You are right. that behavior is expected, because the Text.contains('JERRY') operation is doing a filtering (not querying from index table).
If we need a filtering by the meaning of Text.contains('(JERRY)'), just keep statement:
has('DETAILS', 'NAME', 'JERRY').
Or we can adapt the code if want to directly use Text.contains('(JERRY)'):
https://github.com/hugegraph/hugegraph/blob/43b8ae7bff7cdec5a8659af06eedc56307de4d2c/hugegraph-core/src/main/java/com/baidu/hugegraph/backend/query/Condition.java#L77

How can we query like has('DETAILS', 'NAME', 'JERRY') when the attribute is search indexed.It will throw exception right?
Exception :
Gremlin execute failed, the details: Don't accept query based on properties [NAME] that are not indexed in label'DETAILS', may not match secondary condition

can you paste the full query statement?
please try:
g.V().has('DETAILS', 'NAME', Text.contains('TOM')).has('DETAILS', 'ADDRESS', 'WT Street').repeat(outE().inV().simplePath()).until(and(has('DETAILS', 'NAME', 'JERRY').has('DETAILS', 'ADDRESS', 'Mathew Street'))).path()

Yea tha above syntax works.Can you explain how it works,as both of the attributes were same ?

When i add  segments.add(text); to the code then constant values having special characters throwing the error we discussed here .Did u check this behaviour before ?

any update on this?

It behaves as expected, you need to escape the text before segments.add(text)

Is the below code right?
` private Set segmentWords(String text) {
/*
Support 3 kinds of query:
- Text.contains("(word)"): query by user-specified word;
- Text.contains("(word1|word2|word3)"): query by user-specified words;
- Text.contains("words"): query by words splitted from analyzer;
Note: all kinds support words exact match
*/
if (text.startsWith(START_SYMBOL) && text.endsWith(END_SYMBOL)) {
String subText = text.substring(1, text.length() - 1);
if (subText.contains(WORD_DELIMITER)) {
String[] texts = StringUtils.split(subText, WORD_DELIMITER);
return ImmutableSet.copyOf(texts);
} else {
return ImmutableSet.of(subText);
}
}
    Set<String> segments = this.textAnalyzer.segment(text);

    text = text.replace("\u0000", "\u0003");
    text= '\u0003' + text;
    /*
     * Add original text to segments at the insertion stage,
     * in order to can match fully words at the query stage.
     */
     segments.add(text);

    // Ignore unicode \u0000 to \u0003
    segments.removeAll(ConditionQuery.IGNORE_SYM_SET);
    return segments;
}`

Here are my usecase?
1.Perform full word search for vertices indexed using full-text search?(Example cases discussed above).
2.Ignore special characters in constant value.

Yes, it looks right.

But after adding this full- text search is not working?

But after adding this full- text search is not working?

Could you show more details about query statement and error message?
can remove the line text= '\u0003' + text and add some log at that line.

here is the query
`g.V().has('DETAILS', 'NAME', Text.contains('(TOM)')).has('DETAILS', 'ADDRESS', 'WT Street').repeat(outE().inV().simplePath()).until(and(has('DETAILS', 'NAME', Text.contains('(JERRY)')).has('DETAILS', 'ADDRESS', 'Mathew Street'))).path()
`

You are right. that behavior is expected, because the Text.contains('JERRY') operation is doing a filtering (not querying from index table).
If we need a filtering by the meaning of Text.contains('(JERRY)'), just keep statement: has('DETAILS', 'NAME', 'JERRY').
Or we can adapt the code if want to directly use Text.contains('(JERRY)'):
https://github.com/hugegraph/hugegraph/blob/43b8ae7bff7cdec5a8659af06eedc56307de4d2c/hugegraph-core/src/main/java/com/baidu/hugegraph/backend/query/Condition.java#L77

@KirubakaranSP Hi, Could you please contribute a PR to adapt filtering by Text.contains('(JERRY)')?


[WIP] Add scatter op lowering unit test

 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.


With Chrome the selecting the alert causes an error

Ugh
I was prototyping the #475 and I did notice that when I use Chrome (44.0.2403.157 m) browser and run all acceptance tests with command: python run_tests.py python gc. Then many of the acceptance test do fail. But if I run then by suite, example python run_tests.py python gc -s Waiting, they all do pass quite nicely.
It seems that something has changed somewhere in chrome implementation and alerts are not found and therefore they are not dismissed. From the log I see this:
Alert Should Be Present
Documentation:
Verifies an alert is present and dismisses it.
Start / End / Elapsed:	20150824 22:24:42.149 / 20150824 22:24:42.151 / 00:00:00.002
22:24:42.149	DEBUG	GET http://<IP_ADDRESS>:62453/session/962fa759b299b85a0f291b20fc340046/alert_text {"sessionId": "962fa759b299b85a0f291b20fc340046"}
22:24:42.151	DEBUG	Finished Request
22:24:42.151	FAIL	There were no alerts
22:24:42.151	DEBUG	Traceback (most recent call last):
  File "<string>", line 2, in alert_should_be_present
  File "D:\workspace\robotframework-selenium2library\src\Selenium2Library\keywords\keywordgroup.py", line 15, in _run_on_failure_decorator
    return method(*args, **kwargs)
  File "D:\workspace\robotframework-selenium2library\src\Selenium2Library\keywords\_javascript.py", line 22, in alert_should_be_present
    alert_text = self.get_alert_message()
  File "<string>", line 2, in get_alert_message
  File "D:\workspace\robotframework-selenium2library\src\Selenium2Library\keywords\keywordgroup.py", line 15, in _run_on_failure_decorator
    return method(*args, **kwargs)
  File "D:\workspace\robotframework-selenium2library\src\Selenium2Library\keywords\_javascript.py", line 132, in get_alert_message
    return self._close_alert()
  File "D:\workspace\robotframework-selenium2library\src\Selenium2Library\keywords\_javascript.py", line 149, in _close_alert
    text = self._read_alert()
  File "D:\workspace\robotframework-selenium2library\src\Selenium2Library\keywords\_javascript.py", line 162, in _read_alert
    raise RuntimeError('There were no alerts')

I did try with several selenium and chrome driver version but the results where always the same. The code pointing to commit: eda046eb90c31366ef467e82dc9d071b3f61889d

I think we should perhaps change our test, that each suite would open and close its browser. I know that it will add some execution time, but it would give better tests
Alters should be handled also with Chrome browsers.

And test do pass, mostly, with FF 40.0.2

I did noticed this problem since Chrome (44 minus 2 or 3 updates). Looks like alerts are now modal.

I think I know what is wrong. As I did notice in the summer that selenium got 50% faster with chrome.  And by looking the code, this could be timing issue with chrome, or with any browser that means. Chrome is just wast enough to display the bug.
If I do this in RF data
| Click Element | xpath=//path/js_alert |
| Alert Should Be Present | Alert text |

Where the code fails, it is in practice trying to do this:
element.click()
alert = driver.switch_to_alert()
alert.text

Now if the code would do this:
element.click()
wait = WebDriverWait(driver, 10)
alert = wait.until(EC.alert_is_present())
alert.text

Then the error would go away.
Some code to play around: https://gist.github.com/aaltat/ff568e08962bde193a8e
If executed, that code works quite nicely, at least for me. If one replaces the lines 15-16 with:
alert = driver.switch_to_alert()
alert.text

then the code fails. And by removing some try/expect from Selenium2Library code, I did see that WebDriverException exception was same in my example and in S2L side.
I was thinking that I could fix the issue by replacing:
alert = self._current_browser().switch_to_alert()

with
alert = self._wait_for_alert()

and adding this type of function
 def _wait_for_alert(self):
    wait = WebDriverWait(self._current_browser(), self._implicit_wait_in_secs)
    return wait.until(EC.alert_is_present())

Would this be acceptable, or any other comments?

I was thinking, what timeout we should actually use for polling?
Should it hard coded, like one second, because alerts are usually quite fast. Should there be optional timeout parameter? Use directly the timeout or implicit_wait arguments value? Something else what?

The #499 proposes a fix for this issue. I did test with FF and all test do still pass. Also run the tests with Chrome and there are still 6 failing test but I think those should be fixed in separate issue/commit.
I did hard code the timeout to 1, which in my mind is not a good solution, but one we decide which timer we should actually use I can change it.

I don't know the context well enough to give a concrete advice but here's two comments based on experience from similar cases:

Hard-coded polling timeout is typically fine. Extra configuration makes usage harder.
One second polling timeout is quite long. I've typically used something like 0.1 seconds.

@pekkaklarck self._current_browser().switch_to_alert() did not work with Chrome, but works with FF. This works for both:
wait = WebDriverWait(self._current_browser(),1)
wait.until(EC.alert_is_present())

But @pekkaklarck  is most likely right, adding too much configuration is not a good idea and if hard coded timer works for now, I can live with it. If a new issue arises, we can rethink the issue then. I will re-test the #499 with smaller timers and let see how it goes.

Did do some testing and with chrome alert test do fail, if timeout, on _alert.py:135, is equal or smaller than 0.5 seconds. If I race the timeout to 0.6 seconds or bigger, test do pass nicely with Chrome.
With Firefox alert tests do pass with 0.1 seconds and I did not run tests with Internet Explorer.
For me it feels that decreasing timeout from 1.0 -> 0.6 is increases the risk of false positives. Also the underlying code is polling, not sleeping, so it will return once alert is present or with error if alert is not found by timeout.
I am on favor keeping the timeout in 1.0 seconds and hard coded, but what others do think?

1s is fine if it is polling, not sleeping. Could be even more.

What others do think, shall we keep it as it is or should we increase the timeout? If there is not need to increase the timeout, could someone review the pull request?

Closed because #499 fixes this issue and it is merged to master.


Proposal to add CreatorUsername label when user is signed in via SSO

Summary
What change needs making?
Proposal to add CreatorUsername label to resources when user is signed in via SSO
Use Cases
When would you use this?
We have a bunch of internal use cases where username of the user will help us identifying the particular user along with email and userId.

Message from the maintainers:
I will be happy to submit a PR for this, where we can keep the username in the claims of the JWE token. and then use it when we create any resource.
Cheers 🥂
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

I have created a draft PR, it needs workflow approval for the tests to run. Can you please approve the workflow. https://github.com/argoproj/argo-workflows/pull/7109

I will need a workflow approval again for the draft PR as the DCO check failed and I have added the change recommended. #7109


[BUG] Texts not visible

Some parts of the textual content and all the headings are not visible in the light mode.
I would like to work on this issue.
Please assign it to me.

hey @codingkatty
I have raised a PR please check.

ok. I've merged it.

Hey @codingkatty
I have not yet received the mail from hacktoberfest regarding this PR?

Hey @codingkatty I have not yet received the mail from hacktoberfest regarding this PR?

That's weird... have you checked your profile?

Yeah it just got updated!
Thanks!


mat: consider reconciling option passing in factorise methods

At the moment there are three factorisation methods that take options, the methods on Eigen, EigenSym, GSVD and SVD. These take different approaches to specifying options for factorisation.
I'm not too sure whether these can be reconciled, or whether doing so would be a net benefit, but it is worth considering.
@btracey @vladimir-ch Views?

I agree with @vladimir-ch that ORed bit-fields are out of place. It's not clear to me that reconciling the Factorize methods is a goal, but if it is I think the way to do it is to use the approach we took in samplemv. There, we moved the options into the struct type, and rectified the signatures. So, it would be
type SVD struct {
    UKind SVDKind
    VKind SVDKind
   // contains filtered or unexported fields
}

func (svd *SVD) Factorize(a Matrix) (ok bool){...}

and be used as
 svd := &mat.SVD{UKind: svd.Thin, VKind: svd.None}.Factorize(a)
In samplemv this is clearly a good idea because we wanted the types to all satisfy the same interface. It's not clear that is a useful feature here. I think if we do do this then we should make them satisfy the same interfaces though, in case that turns out to be useful. In particular, Cholesky should be FactorizeSym rather than just Factorize. One upside to this is that we could make the zero-values take the default (UKind and VKind default to Thin, vectors in EigenSym is true, etc.). This way a user who doesn't want to think about anything can use
svd := &mat.SVD{}.Factorize(a)
and it will work as expected.

There was more to that sentence.

I don't follow

Assuming you meant @vladimir-ch 's sentence, there was also more to my post?

I was responding to the first sentence, yes.
I don't think that there is a good justification for a common interface, but I do think there is a good reason for a general consistency in the approach taken to passing options. The first would be there to ensure code reusability between the factorising types, which I think is a non-goal since one factorisation is not the same as another factorisation (and the result accessors would be different anyway - so they should be part of the interface too if it existed which means there would not be a common interface). The existence of a consistent user interface (the signature vibe) means that learning one means that the user has the concepts necessary for rapidly learning others (the only difference being the exact semantics of the constants/parameters).


CLIMATE-741 - Adding configuration files to evaluate CORDEX-Africa regional climate models

eleven yaml files have been added and tested to evaluate the models participating in CORDEX-Africa using run_RCMES.py.
Fig10b_trmm.yaml will be added later after addressing CLIMATE-744.

Merged build triggered. Test Failed.

Merged build started. Test Failed.

Merged build finished. Test Failed.


Render empty label for Form Fields?

I would propose to render a empty label when it is a empty string. A use case is as below,
an empty label will vertically align the following two fields side by side
<Form.Group>
<Form.Input label="Name" placeholder="First Name" />
<Form.Input label="" placeholder="Last Name" />
</Form.Group>

This sounds sane to me, PR welcome.  Checkboxes also depend on an empty label.  Just include a comment in the code that notes why the empty element is being included.

I was under the impression that SUI CSS required an empty label to align the fields, however, it appears that it just isn't supported markup.  An empty label does not align the fields:

It looks like there must be some content in the field label:

I believe the proper way to do this is with the inline variation:
<Form.Group inline>
  <Form.Input label='Name' placeholder='First Name' />
  <Form.Input placeholder='Last Name' />
</Form.Group>

Closing as the change required to align fields via an empty label needs to be opened with Semantic-UI as it requires a change of CSS.


Port the final proto contract for Remote from .NET

https://github.com/asynkron/protoactor-dotnet/blob/dev/src/Proto.Remote/Protos.proto
The new contract supports RequestId to limit the number of futures registered in the ProcessRegistry.
EndpointReader, EndpointWriter are the main areas affected

Done


Map llvm.unreachable to OpUnreachable

This is quiet handy to have, especially when using bugpoint and clspv-opt to reduce some LLVM IR module when working on a pass.

Thanks. New line character was added.


Test Issue created at Thu, 03 Jun 2021 11:46:59 GMT

Test issue body  Thu, 03 Jun 2021 11:46:59 GMT

Comment on issue at Thu, 03 Jun 2021 11:47:01 GMT