PR multi tags in compute offering [#4398]

Description

only changed HostDaoImpl.java to handle with comma separated multi host string
old behavior with one tag works like the old implementation

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

How Has This Been Tested?
manually tested (run cloudstack in my vmware environment)
PR: #4399

@blueorangutan package

@DaanHoogland a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@blueorangutan package

@DaanHoogland a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos7 ✔centos8 ✔debian. JID-2173

@blueorangutan test centos7 kvm-centos7 keepEnv

@DaanHoogland a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

@blueorangutan test centos7 kvm-centos7 keepEnv

@DaanHoogland a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

@blueorangutan test

@DaanHoogland a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-2965)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 38819 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr4399-t2965-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_kubernetes_clusters.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Intermittent failure detected: /marvin/tests/smoke/test_hostha_kvm.py
Smoke tests completed. 83 look OK, 2 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL
Failure
309.17
test_vpc_redundant.py

test_hostha_kvm_host_fencing
Error
172.30
test_hostha_kvm.py

test failures are not related to the test

@DV101010 can you invest some time in an automated test?

Hi Dahn,
when you talk about automation tests then mean you marvin and similar
things, correct? I'm a newbie in cloudstack and haven't experience with
marvin. I can try it but I think it will need some time.
Exists next to this side
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Marvin+-+Testing+with+Python
other useful documents for the first steps?
Am Do., 12. Nov. 2020 um 13:08 Uhr schrieb dahn<EMAIL_ADDRESS>
@DV101010 can you invest some time in an automated test?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/apache/cloudstack/pull/4399#issuecomment-726038488,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANW3U4XYLKCT4HIUIO7V7HDSPPF33ANCNFSM4SOGQP3Q
.

@DK101010 All necesary steps/items are in the cwiki in that article and in others, but if you have specific questions the<EMAIL_ADDRESS>list can give more feedback.

Hi @DaanHoogland,
I have added a marvin test and tried to implement a generic solution, but a couple of things must be adapt like host, network name and hypervisor as well I couldn't found a option to test the ingest feature with marvin.
Let me know if I can improve the test.

@blueorangutan package

@DaanHoogland a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos7 ✔centos8 ✔debian.  To prevent code duplicates I've encapsulate tag handling in HostDaoImpl. But I afraid I can not write test for this because we use currently a older version.

Hi,
yesterday we had a problem during our deployment and I've found a additional tag check in the DeploymentPlanningManager. To prevent code duplicates I've encapsulate tag handling in HostDaoImpl. But I afraid I can not write test for this because we use currently a older version.

very good to avoid duplicates, but I'd put it in the Host object hierarchy somewhere. For this piece of code a unit test would do, @DK101010 . no need for an integration test  as far as I can see.

@blueorangutan package

@DaanHoogland a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos7 ✖centos8 ✖debian. JID-2484

@blueorangutan package

@DaanHoogland a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos7 ✖centos8 ✖debian. JID-2493

Packaging result: ✖centos7 ✖centos8 ✖debian. JID-2494

not sure yet, but the build failures are about certificates and i don't think related, but as a matter of good accounting:
[INFO] Running org.apache.cloudstack.direct.download.DirectDownloadManagerImplTest
java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: java.lang.IllegalArgumentException: Input byte array has incorrect ending byte at 1132
	at java.base/sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:115)
	at java.base/java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:355)
	at com.cloud.utils.security.CertificateHelper.buildCertificate(CertificateHelper.java:130)
	at org.apache.cloudstack.direct.download.DirectDownloadManagerImpl.getCertificateFromString(DirectDownloadManagerImpl.java:378)
	at org.apache.cloudstack.direct.download.DirectDownloadManagerImpl.certificateSanity(DirectDownloadManagerImpl.java:389)
	at org.apache.cloudstack.direct.download.DirectDownloadManagerImpl$MockitoMock$369926905.certificateSanity$accessor$rf85lrMB(Unknown Source)
	at org.apache.cloudstack.direct.download.DirectDownloadManagerImpl$MockitoMock$369926905$auxiliary$xgeKzGvM.call(Unknown Source)
	at org.mockito.internal.invocation.RealMethod$FromCallable$1.call(RealMethod.java:40)
	at org.mockito.internal.invocation.RealMethod$FromBehavior.invoke(RealMethod.java:62)
	at org.mockito.internal.invocation.InterceptedInvocation.callRealMethod(InterceptedInvocation.java:152)
	at org.mockito.internal.stubbing.answers.CallsRealMethods.answer(CallsRealMethods.java:44)
	at org.mockito.Answers.answer(Answers.java:100)
	at org.mockito.internal.handler.MockHandlerImpl.handle(MockHandlerImpl.java:103)
	at org.mockito.internal.handler.NullResultGuardian.handle(NullResultGuardian.java:29)
	at org.mockito.internal.handler.InvocationNotifierHandler.handle(InvocationNotifierHandler.java:35)
	at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.doIntercept(MockMethodInterceptor.java:61)
	at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.doIntercept(MockMethodInterceptor.java:49)
	at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor$DispatcherDefaultingToRealMethod.interceptSuperCallable(MockMethodInterceptor.java:108)
	at org.apache.cloudstack.direct.download.DirectDownloadManagerImpl$MockitoMock$369926905.certificateSanity(Unknown Source)
	at org.apache.cloudstack.direct.download.DirectDownloadManagerImplTest.testCertificateSanityInvalidCertificate(DirectDownloadManagerImplTest.java:137)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.ExpectException.evaluate(ExpectException.java:19)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.mockito.internal.runners.DefaultInternalRunner$1$1.evaluate(DefaultInternalRunner.java:46)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.mockito.internal.runners.DefaultInternalRunner$1.run(DefaultInternalRunner.java:77)
	at org.mockito.internal.runners.DefaultInternalRunner.run(DefaultInternalRunner.java:83)
	at org.mockito.internal.runners.StrictRunner.run(StrictRunner.java:39)
	at org.mockito.junit.MockitoJUnitRunner.run(MockitoJUnitRunner.java:163)
	at org.mockito.runners.MockitoJUnitRunner.run(MockitoJUnitRunner.java:54)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
Caused by: java.io.IOException: java.lang.IllegalArgumentException: Input byte array has incorrect ending byte at 1132
	at java.base/sun.security.provider.X509Factory.readOneBlock(X509Factory.java:648)
	at java.base/sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:99)
	... 55 more
Caused by: java.lang.IllegalArgumentException: Input byte array has incorrect ending byte at 1132
	at java.base/java.util.Base64$Decoder.decode0(Base64.java:771)
	at java.base/java.util.Base64$Decoder.decode(Base64.java:535)
	at java.base/sun.security.provider.X509Factory.readOneBlock(X509Factory.java:646)
	... 56 more

not sure yet, but the build failures are about certificates and i don't think related, but as a matter of good accounting:
[INFO] Running org.apache.cloudstack.direct.download.DirectDownloadManagerImplTest
java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: java.lang.IllegalArgumentException: Input byte array has incorrect ending byte at 1132
	at java.base/sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:115)
	at java.base/java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:355)
	at com.cloud.utils.security.CertificateHelper.buildCertificate(CertificateHelper.java:130)
	at org.apache.cloudstack.direct.download.DirectDownloadManagerImpl.getCertificateFromString(DirectDownloadManagerImpl.java:378)
	at org.apache.cloudstack.direct.download.DirectDownloadManagerImpl.certificateSanity(DirectDownloadManagerImpl.java:389)
	at org.apache.cloudstack.direct.download.DirectDownloadManagerImpl$MockitoMock$369926905.certificateSanity$accessor$rf85lrMB(Unknown Source)
	at org.apache.cloudstack.direct.download.DirectDownloadManagerImpl$MockitoMock$369926905$auxiliary$xgeKzGvM.call(Unknown Source)
	at org.mockito.internal.invocation.RealMethod$FromCallable$1.call(RealMethod.java:40)
	at org.mockito.internal.invocation.RealMethod$FromBehavior.invoke(RealMethod.java:62)
	at org.mockito.internal.invocation.InterceptedInvocation.callRealMethod(InterceptedInvocation.java:152)
	at org.mockito.internal.stubbing.answers.CallsRealMethods.answer(CallsRealMethods.java:44)
	at org.mockito.Answers.answer(Answers.java:100)
	at org.mockito.internal.handler.MockHandlerImpl.handle(MockHandlerImpl.java:103)
	at org.mockito.internal.handler.NullResultGuardian.handle(NullResultGuardian.java:29)
	at org.mockito.internal.handler.InvocationNotifierHandler.handle(InvocationNotifierHandler.java:35)
	at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.doIntercept(MockMethodInterceptor.java:61)
	at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.doIntercept(MockMethodInterceptor.java:49)
	at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor$DispatcherDefaultingToRealMethod.interceptSuperCallable(MockMethodInterceptor.java:108)
	at org.apache.cloudstack.direct.download.DirectDownloadManagerImpl$MockitoMock$369926905.certificateSanity(Unknown Source)
	at org.apache.cloudstack.direct.download.DirectDownloadManagerImplTest.testCertificateSanityInvalidCertificate(DirectDownloadManagerImplTest.java:137)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.ExpectException.evaluate(ExpectException.java:19)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.mockito.internal.runners.DefaultInternalRunner$1$1.evaluate(DefaultInternalRunner.java:46)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.mockito.internal.runners.DefaultInternalRunner$1.run(DefaultInternalRunner.java:77)
	at org.mockito.internal.runners.DefaultInternalRunner.run(DefaultInternalRunner.java:83)
	at org.mockito.internal.runners.StrictRunner.run(StrictRunner.java:39)
	at org.mockito.junit.MockitoJUnitRunner.run(MockitoJUnitRunner.java:163)
	at org.mockito.runners.MockitoJUnitRunner.run(MockitoJUnitRunner.java:54)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
Caused by: java.io.IOException: java.lang.IllegalArgumentException: Input byte array has incorrect ending byte at 1132
	at java.base/sun.security.provider.X509Factory.readOneBlock(X509Factory.java:648)
	at java.base/sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:99)
	... 55 more
Caused by: java.lang.IllegalArgumentException: Input byte array has incorrect ending byte at 1132
	at java.base/java.util.Base64$Decoder.decode0(Base64.java:771)
	at java.base/java.util.Base64$Decoder.decode(Base64.java:535)
	at java.base/sun.security.provider.X509Factory.readOneBlock(X509Factory.java:646)
	... 56 more

and in the build summary
[ERROR] importUnmanagedInstanceTest(org.apache.cloudstack.vm.UnmanagedVMsManagerImplTest)  Time elapsed: 0.05 s  <<< ERROR!
java.lang.NullPointerException
	at org.apache.cloudstack.vm.UnmanagedVMsManagerImplTest.importUnmanagedInstanceTest(UnmanagedVMsManagerImplTest.java:372)

The first error have I get with the pull from the master. The other error was my mistake, It was a urgent bugfix in our system. I knew that I adapt the mockito conditions because the test runs into in error by this command hostDao.loadHostTags(host). But my knowledge was not so good and therefore I set this test to ignore and have forget to adapt this.... sorry :(

@blueorangutan package

@DaanHoogland a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos7 ✔centos8 ✔debian. JID-2496

@blueorangutan test

@DaanHoogland a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-3352)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 35317 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr4399-t3352-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_kubernetes_clusters.py
Intermittent failure detected: /marvin/tests/smoke/test_loadbalance.py
Intermittent failure detected: /marvin/tests/smoke/test_privategw_acl.py
Smoke tests completed. 85 look OK, 1 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_03_deploy_and_upgrade_kubernetes_cluster
Failure
260.35
test_kubernetes_clusters.py

regression tests look good, kubernetes is a false positive and travis a timeout on one of the runs.

@blueorangutan package

@shwstppr a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos7 ✖centos8 ✖debian. JID-2721

@blueorangutan package

@DaanHoogland a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos7 ✖centos8 ✖debian. JID-2733

@blueorangutan package

@DaanHoogland a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos7 ✔centos8 ✔debian. JID-2740

@blueorangutan package

@DaanHoogland a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos7 ✖centos8 ✖debian. JID-2758

@DK101010 can you explore the previous failures, I'll rekick packaging too
@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: centos7 :heavy_check_mark: centos8 :heavy_multiplication_x: debian. SL-JID 258

@DK101010 can you explore the previous failures, I'll rekick packaging too
@blueorangutan package

Hi @rhtyd, I can do it but i don't see any failure. Which do you mean ?

@DK101010 a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: centos7 :heavy_check_mark: centos8 :heavy_check_mark: debian. SL-JID 289

@blueorangutan package

@nvazquez a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_multiplication_x: centos7 :heavy_check_mark: centos8 :heavy_check_mark: debian. SL-JID 446

Packaging result: :heavy_check_mark: centos7 :heavy_check_mark: centos8 :heavy_check_mark: debian.  SL-JID 531

Trillian test result (tid-1253)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 49143 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr4399-t1253-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_kubernetes_clusters.py
Smoke tests completed. 87 look OK, 1 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_01_invalid_upgrade_kubernetes_cluster
Failure
3603.78
test_kubernetes_clusters.py

test_07_deploy_kubernetes_ha_cluster
Failure
3619.94
test_kubernetes_clusters.py

test_08_deploy_and_upgrade_kubernetes_ha_cluster
Failure
0.04
test_kubernetes_clusters.py

test_09_delete_kubernetes_ha_cluster
Failure
0.04
test_kubernetes_clusters.py

ContextSuite context=TestKubernetesCluster>:teardown
Error
41.48
test_kubernetes_clusters.py

@nvazquez here is update:

found two bugs in my testing, see my comments above.
fixed another ui bug: https://github.com/apache/cloudstack/pull/5233

found two bugs in testing
(1) list hosts response lists only 1 host tag, although hosts have multiple host tags.
for example
(localcloud) SBCM5> > update host id=d9988a7b-7e02-4e90-9c4a-798c588b1cba hosttags=tag1,tag2
{
  "host": {
...
    "hosttags": "tag2",
...
  }
}

(localcloud) SBCM5> > list hosts id=d9988a7b-7e02-4e90-9c4a-798c588b1cba filter=hosttags
{
  "count": 1,
  "host": [
    {
      "hosttags": "tag2"
    }
  ]
}

however in db, host has 2 tags.
mysql> select * from host_tags;
+----+---------+------+
| id | host_id | tag  |
+----+---------+------+
| 29 |       4 | tag1 |
| 30 |       4 | tag2 |
+----+---------+------+
2 rows in set (0.00 sec)

(2) vm can be starteded on a host which does not have all tags.
for example, service offering has host tags "tag1,tag2", and host has host tags "tag1,tag1".
@DK101010 could you please fix the bugs above ?

Hi @weizhouapache, many thanks for testing. I'm a little bit confused, the logic doesn't use the list host method to find the right one. I wrote an sql to check this. Also we use this feature already for a long time without problems and I wrote test for this to get sure of this :/. Hmm ... how do you test this?

@blueorangutan package

@weizhouapache a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian. SL-JID 637

found two bugs in testing
(1) list hosts response lists only 1 host tag, although hosts have multiple host tags.
for example
(localcloud) SBCM5> > update host id=d9988a7b-7e02-4e90-9c4a-798c588b1cba hosttags=tag1,tag2
{
  "host": {
...
    "hosttags": "tag2",
...
  }
}

(localcloud) SBCM5> > list hosts id=d9988a7b-7e02-4e90-9c4a-798c588b1cba filter=hosttags
{
  "count": 1,
  "host": [
    {
      "hosttags": "tag2"
    }
  ]
}

however in db, host has 2 tags.
mysql> select * from host_tags;
+----+---------+------+
| id | host_id | tag  |
+----+---------+------+
| 29 |       4 | tag1 |
| 30 |       4 | tag2 |
+----+---------+------+
2 rows in set (0.00 sec)

(2) vm can be starteded on a host which does not have all tags.
for example, service offering has host tags "tag1,tag2", and host has host tags "tag1,tag1".
@DK101010 could you please fix the bugs above ?

Hi @weizhouapache, many thanks for testing. I'm a little bit confused, the logic doesn't use the list host method to find the right one. I wrote an sql to check this. Also we use this feature already for a long time without problems and I wrote test for this to get sure of this :/. Hmm ... how do you test this?

@DK101010
ignore the first issue, I found the root cause: I upgraded the cloudstack packages but did not make the changes in #4796
for 2nd issue, I use cmk for testing
(1) update host to tag 'tag1,tag1'
(2) create service offering, update host tag to 'tag1,tag2'
(3) create vm with offering in (2)
(4) start vm on the host in (1).
expected result: vm is not started on host (1)
actual result: vm is started on host (1) successfully.
root cause: yo do not consider that host might have a tag multiple times. so you need to change the following sql
    private static final String LIST_HOST_IDS_BY_COMPUTETAGS = "SELECT host_id, COUNT(tag) AS tag_count "
                                                             + "FROM host_tags "
                                                             + "WHERE tag IN(%s) "
                                                             + "GROUP BY host_id "
                                                             + "HAVING tag_count = %s ";

https://github.com/apache/cloudstack/pull/4399/files#diff-ced268870eedefd01befd033d2544228bf010c0dccde9c76ac45f80652e503b8R84-R88

found two bugs in testing
(1) list hosts response lists only 1 host tag, although hosts have multiple host tags.
for example
(localcloud) SBCM5> > update host id=d9988a7b-7e02-4e90-9c4a-798c588b1cba hosttags=tag1,tag2
{
  "host": {
...
    "hosttags": "tag2",
...
  }
}

(localcloud) SBCM5> > list hosts id=d9988a7b-7e02-4e90-9c4a-798c588b1cba filter=hosttags
{
  "count": 1,
  "host": [
    {
      "hosttags": "tag2"
    }
  ]
}

however in db, host has 2 tags.
mysql> select * from host_tags;
+----+---------+------+
| id | host_id | tag  |
+----+---------+------+
| 29 |       4 | tag1 |
| 30 |       4 | tag2 |
+----+---------+------+
2 rows in set (0.00 sec)

(2) vm can be starteded on a host which does not have all tags.
for example, service offering has host tags "tag1,tag2", and host has host tags "tag1,tag1".
@DK101010 could you please fix the bugs above ?

Hi @weizhouapache, many thanks for testing. I'm a little bit confused, the logic doesn't use the list host method to find the right one. I wrote an sql to check this. Also we use this feature already for a long time without problems and I wrote test for this to get sure of this :/. Hmm ... how do you test this?

@DK101010
ignore the first issue, I found the root cause: I upgraded the cloudstack packages but did not make the changes in #4796
for 2nd issue, I use cmk for testing
(1) update host to tag 'tag1,tag1'
(2) create service offering, update host tag to 'tag1,tag2'
(3) create vm with offering in (2)
(4) start vm on the host in (1).
expected result: vm is not started on host (1)
actual result: vm is started on host (1) successfully.
root cause: yo do not consider that host might have a tag multiple times. so you need to change the following sql
    private static final String LIST_HOST_IDS_BY_COMPUTETAGS = "SELECT host_id, COUNT(tag) AS tag_count "
                                                             + "FROM host_tags "
                                                             + "WHERE tag IN(%s) "
                                                             + "GROUP BY host_id "
                                                             + "HAVING tag_count = %s ";

https://github.com/apache/cloudstack/pull/4399/files#diff-ced268870eedefd01befd033d2544228bf010c0dccde9c76ac45f80652e503b8R84-R88

Hi @weizhouapache, You mean the same tag two times? Hmm .... sounds more like a user input error. What do you think about a exception when user add the same tag in host or service offerings or we add here a check for hosts and service offering ?

found two bugs in testing
(1) list hosts response lists only 1 host tag, although hosts have multiple host tags.
for example
(localcloud) SBCM5> > update host id=d9988a7b-7e02-4e90-9c4a-798c588b1cba hosttags=tag1,tag2
{
  "host": {
...
    "hosttags": "tag2",
...
  }
}

(localcloud) SBCM5> > list hosts id=d9988a7b-7e02-4e90-9c4a-798c588b1cba filter=hosttags
{
  "count": 1,
  "host": [
    {
      "hosttags": "tag2"
    }
  ]
}

however in db, host has 2 tags.
mysql> select * from host_tags;
+----+---------+------+
| id | host_id | tag  |
+----+---------+------+
| 29 |       4 | tag1 |
| 30 |       4 | tag2 |
+----+---------+------+
2 rows in set (0.00 sec)

(2) vm can be starteded on a host which does not have all tags.
for example, service offering has host tags "tag1,tag2", and host has host tags "tag1,tag1".
@DK101010 could you please fix the bugs above ?

Hi @weizhouapache, many thanks for testing. I'm a little bit confused, the logic doesn't use the list host method to find the right one. I wrote an sql to check this. Also we use this feature already for a long time without problems and I wrote test for this to get sure of this :/. Hmm ... how do you test this?

@DK101010
ignore the first issue, I found the root cause: I upgraded the cloudstack packages but did not make the changes in #4796
for 2nd issue, I use cmk for testing
(1) update host to tag 'tag1,tag1'
(2) create service offering, update host tag to 'tag1,tag2'
(3) create vm with offering in (2)
(4) start vm on the host in (1).
expected result: vm is not started on host (1)
actual result: vm is started on host (1) successfully.
root cause: yo do not consider that host might have a tag multiple times. so you need to change the following sql
    private static final String LIST_HOST_IDS_BY_COMPUTETAGS = "SELECT host_id, COUNT(tag) AS tag_count "
                                                             + "FROM host_tags "
                                                             + "WHERE tag IN(%s) "
                                                             + "GROUP BY host_id "
                                                             + "HAVING tag_count = %s ";

Hi @weizhouapache, You mean the same tag two times? Hmm .... sounds more like a user input error. What do you think about a exception when user add the same tag in host or service offerings or we add here a check for hosts and service offering ?

@DK101010 yes, I agree it should not be allowed. but, since it is allowed in 4.15 and previous versions, it might already exists in some/few user environments that a host have a same tag multiple times (who knows...).
IMHO options are
(1) check and throw an exception (as you said) or silently ignoring the duplicated tags, and remove duplications in host_tags in next cloudstack upgrade, or
(2) change your sql to take the scenario into consideration.
I would go for (1), but it looks (2) is much easier to you.

@DK101010 yes, I agree it should not be allowed. but, since it is allowed in 4.15 and previous versions, it might already exists in some/few user environments that a host have a same tag multiple times (who knows...).
IMHO options are
(1) check and throw an exception (as you said) or silently ignoring the duplicated tags, and remove duplications in host_tags in next cloudstack upgrade, or
(2) change your sql to take the scenario into consideration.
I would go for (1), but it looks (2) is much easier to you.

@weizhouapache I'm also for (1), it is cleaner. But we need also checks in the frontend for future actions to prevent doubles. Also I think  a DB upgrade is not necessary. In my opinion it is for a user a small thing to fix this mistake. Especially as I can't imagine that there are so many duplicate tags in use.

@DK101010 yes, I agree it should not be allowed. but, since it is allowed in 4.15 and previous versions, it might already exists in some/few user environments that a host have a same tag multiple times (who knows...).
IMHO options are
(1) check and throw an exception (as you said) or silently ignoring the duplicated tags, and remove duplications in host_tags in next cloudstack upgrade, or
(2) change your sql to take the scenario into consideration.
I would go for (1), but it looks (2) is much easier to you.

@weizhouapache I'm also for (1), it is cleaner. But we need also checks in the frontend for future actions to prevent doubles. Also I think a DB upgrade is not necessary. In my opinion it is for a user a small thing to fix this mistake. Especially as I can't imagine that there are so many duplicate tags in use.

@DK101010
if we choose (1), we should fix it in api/java code as well as gui.
IMHO DB upgrade is also required, as we need to remove the duplications in cloudstack upgrade (otherwise it needs user intervention to remove them from DB manually ). for example, we need to remove record with id=62 from below
mysql> select * from host_tags;
+----+---------+------+
| id | host_id | tag  |
+----+---------+------+
| 61 |       4 | tag1 |
| 62 |       4 | tag1 |
+----+---------+------+
2 rows in set (0.00 sec)

it is not a small change. I confirm that we can set same storage tag two times on a primary storage as well.

@DK101010 yes, I agree it should not be allowed. but, since it is allowed in 4.15 and previous versions, it might already exists in some/few user environments that a host have a same tag multiple times (who knows...).
IMHO options are
(1) check and throw an exception (as you said) or silently ignoring the duplicated tags, and remove duplications in host_tags in next cloudstack upgrade, or
(2) change your sql to take the scenario into consideration.
I would go for (1), but it looks (2) is much easier to you.

@weizhouapache I'm also for (1), it is cleaner. But we need also checks in the frontend for future actions to prevent doubles. Also I think a DB upgrade is not necessary. In my opinion it is for a user a small thing to fix this mistake. Especially as I can't imagine that there are so many duplicate tags in use.

@DK101010
if we choose (1), we should fix it in api/java code as well as gui.
IMHO DB upgrade is also required, as we need to remove the duplications in cloudstack upgrade (otherwise it needs user intervention to remove them from DB manually ). for example, we need to remove record with id=62 from below
mysql> select * from host_tags;
+----+---------+------+
| id | host_id | tag  |
+----+---------+------+
| 61 |       4 | tag1 |
| 62 |       4 | tag1 |
+----+---------+------+
2 rows in set (0.00 sec)

it is not a small change. I confirm that we can set same storage tag two times on a primary storage as well.

OK, I thought the user can change the tags over the UI.
So we need additional
- Checks for UI Input  for Host and SO
- Checks for API input for Host and SO
- Exception for findHostByComputeOfferings
- SQL Upgrade script

@DK101010 yes, I agree it should not be allowed. but, since it is allowed in 4.15 and previous versions, it might already exists in some/few user environments that a host have a same tag multiple times (who knows...).
IMHO options are
(1) check and throw an exception (as you said) or silently ignoring the duplicated tags, and remove duplications in host_tags in next cloudstack upgrade, or
(2) change your sql to take the scenario into consideration.
I would go for (1), but it looks (2) is much easier to you.

@weizhouapache I'm also for (1), it is cleaner. But we need also checks in the frontend for future actions to prevent doubles. Also I think a DB upgrade is not necessary. In my opinion it is for a user a small thing to fix this mistake. Especially as I can't imagine that there are so many duplicate tags in use.

@DK101010
if we choose (1), we should fix it in api/java code as well as gui.
IMHO DB upgrade is also required, as we need to remove the duplications in cloudstack upgrade (otherwise it needs user intervention to remove them from DB manually ). for example, we need to remove record with id=62 from below
mysql> select * from host_tags;
+----+---------+------+
| id | host_id | tag  |
+----+---------+------+
| 61 |       4 | tag1 |
| 62 |       4 | tag1 |
+----+---------+------+
2 rows in set (0.00 sec)

it is not a small change. I confirm that we can set same storage tag two times on a primary storage as well.

OK, I thought the user can change the tags over the UI.
So we need additional

Checks for UI Input for Host and SO
Checks for API input for Host and SO
Exception for findHostByComputeOfferings
SQL Upgrade script

@DK101010 yes, it looks a bit complicated. I suggest you to change SQL in this pr as 1st step.

Thanks for start incorporating the suggested changes @DK101010, let us know when it is ready for review

@blueorangutan package

@weizhouapache a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_multiplication_x: el7 :heavy_multiplication_x: el8 :heavy_multiplication_x: debian :heavy_multiplication_x: suse15. SL-JID 740

@DK101010 could you please fix the conflicts ?

@blueorangutan package

@weizhouapache a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian.  I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian. SL-JID 877

@blueorangutan test

@nvazquez a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-1651)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 34086 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr4399-t1651-kvm-centos7.zip
Smoke tests completed. 89 look OK, 0 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File


Can't build - X11/Xlib.h : No such file or directory

Go version : go version go1.20.3 linux/amd64
Hi
I encountered an error while compiling the Aiac program in Go. The error message states that "X11/Xlib.h: No such file or directory" is missing. Can you please help me resolve this issue?
Thank you.
go: downloading golang.design/x/clipboard v0.7.0
go: downloading github.com/fatih/color v1.7.0
go: downloading github.com/rodaine/table v1.1.0
go: downloading github.com/alecthomas/kong v0.7.1
go: downloading github.com/briandowns/spinner v1.19.0
go: downloading github.com/manifoldco/promptui v0.9.0
go: downloading github.com/ido50/requests v1.5.0
go: downloading github.com/mattn/go-isatty v0.0.16
go: downloading github.com/mattn/go-colorable v0.1.2
go: downloading github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e
go: downloading go.uber.org/zap v1.24.0
go: downloading golang.org/x/sys v0.5.0
go: downloading go.uber.org/multierr v1.8.0
go: downloading go.uber.org/atomic v1.10.0
# golang.design/x/clipboard
clipboard_linux.c:15:10: erreur fatale: X11/Xlib.h : No such file or directory
   15 | #include <X11/Xlib.h>
      |          ^~~~~~~~~~~~
compilation terminée.

Hi @QJoly
We just replaced the clipboard package in #54. Can you try again now?

Hi @liavyona
Thanks, the issue is fixed


API Calls Development

Currently, API Calls only support simple GET.
Design and implement a simple JSON interface to support a variety of API calls.
Decide how API keys should be handled.

Decided not to support this feature at this time


On group update, Marathon restarts even unchanged services

This used to be different in <=0.7.5.

:+1:

:+1:


Failed to load Plugin page

Hi Team,
I am not able to load plugins window from browser, it shows internal server error on accessing. It just keeeps loading, any advise helpful.
Thanks,
Jeevan

Hi Jeevan, can you provide the log please?

Same issue.


Revert "add missing spaces & remove blank lines"

Reverts NYTimes/objective-c-style-guide#170

To be clear, this reverts e7562b0 and 80baf99. May I ask why you'd like to see this change?


Update Composer dependencies (2024-07-09-00-10)

Visual regression test passed!
View the visual regression test report


NIFI-10491: Azure Blob Storage should have conflict resolution (overwrite mode)

Summary
NIFI-10491
This adds a three new conflict resolution strategy modes (fail, ignore and replace) – analogous to the PutAzureDataLakeStorage processor.
Note that the default conflict resolution strategy "fail" corresponds to the current behavior.
Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking

[x] Apache NiFi Jira issue created

Pull Request Tracking

[x] Pull Request title starts with Apache NiFi Jira issue number, such as NIFI-00000
[x] Pull Request commit message starts with Apache NiFi Jira issue number, as such NIFI-00000

Pull Request Formatting

[x] Pull Request based on current revision of the main branch
[x] Pull Request refers to a feature branch with one commit containing changes

Verification
Please indicate the verification steps performed prior to pull request creation.
Build

[x] Build completed using mvn clean install -P contrib-check

[x] JDK 8
[ ] JDK 11
[x] JDK 17

Licensing

[ ] New dependencies are compatible with the Apache License 2.0 according to the License Policy
[ ] New dependencies are documented in applicable LICENSE and NOTICE files

Documentation

[ ] Documentation formatting appears as expected in rendered files

Bump

@exceptionfactory this should be all good now.

@malthe, if it is not mandatory, please try to avoid using force push.


Update README.md

First pull request!  For this one I'll just update it at our end and push it out.  For any larger changes we'll need them against master branch.


Split ServerBuilder and Server structs.

This takes a slightly different approach to what you suggested in #33, just wanted to get some quick feedback whether you think this would also be a good solution.
The main idea is to split up the builder from the actual server struct and bundle the server future together with the actually bound address.

I think Option<SocketAddr> solution that you mentioned in #33 is the best approach.
In my opinion, there is no need to introduce a Builder if it can be avoided.

Your call, but this doesn't really introduce a builder, the builder is already present as the Server struct. My PR renames it and splits Server::serve() into two stages:

binding the socket
preparing the server and placing it in a struct

That's motivated by a cleaner separation between setup (currently done via Server::acceptor(), etc.) and runtime (currently Server::serve()). If an Ok(Server) is returned from serve(), the server has been built succesfully and can start serving futures by awaiting it.
It also helps with clarifying the API, currently it's a bit confusing because Server::bind() only configures the builder while the serve() call actually binds the socket, builds the actual server and returns the future to run it.

Good point. I am currently busy though. I will take a look at it later.

See #42.


GUI keyboard shortcuts require an additional press of the ALT key

Hi, I'm having a bit of problems with setting up the gui keyboard shortcuts. I copied the one from the readme, but when I hold ALT, press TAB x times, release ALT, it doesn't switch. I have to press ALT one more time for it to work. Does anyone have the same problem and found a solution? Or is this just the way it works?

Make sure to release alt last, as the switch only gets triggered when releasing alt with no other keys pressed

I'm planning to add keypress capturing to hyprswitch, this would remove the need for a complex config and allow reliable closing when releasing the initial modifier key

Same problem, wish solved early

Can someone please post the exact config and the exact keypresses used?
For me the GUI keyboard example works fine, holding Alt, pressing tab opens and "switches" to the next window, continue holding Alt and pressing tab "switches" to next and next window, releasing executes the switch and closes hyprswitch.

@H3rmt I used the config from the readme:
$hyprswitch = /home/pc/.cargo/bin/hyprswitch
exec-once = $hyprswitch init --show-title &

......

# allows repeated switching with same keypress that starts the submap
binde = $modifier, $key, exec, $hyprswitch gui --do-initial-execute
bind = $modifier, $key, submap, switch

# allows repeated switching with same keypress that starts the submap
binde = $modifier $reverse, $key, exec, $hyprswitch gui --do-initial-execute -r
bind = $modifier $reverse, $key, submap, switch

submap = switch
# allow repeated window switching in submap (same keys as repeating while starting)
binde = $modifier, $key, exec, $hyprswitch gui
binde = $modifier $reverse, $key, exec, $hyprswitch gui -r

# switch to specific window offset (TODO replace with a more dynamic solution)
bind = $modifier, 1, exec, $hyprswitch gui --offset=1
bind = $modifier, 2, exec, $hyprswitch gui --offset=2
bind = $modifier, 3, exec, $hyprswitch gui --offset=3
bind = $modifier, 4, exec, $hyprswitch gui --offset=4
bind = $modifier, 5, exec, $hyprswitch gui --offset=5

bind = $modifier $reverse, 1, exec, $hyprswitch gui --offset=1 -r
bind = $modifier $reverse, 2, exec, $hyprswitch gui --offset=2 -r
bind = $modifier $reverse, 3, exec, $hyprswitch gui --offset=3 -r
bind = $modifier $reverse, 4, exec, $hyprswitch gui --offset=4 -r
bind = $modifier $reverse, 5, exec, $hyprswitch gui --offset=5 -r

# exit submap and stop $hyprswitch
bindrt = $modifier, $modifier_release, exec, $hyprswitch close
bindrt = $modifier, $modifier_release, submap, reset

# if it somehow doesn't close on releasing $switch_release, escape can kill (doesnt switch)
bindr = ,escape, exec, $hyprswitch close --kill
bindr = ,escape, submap, reset
submap = reset

I also reinstalled hyprswitch via cargo today and repasted the config from the readme. The only thing I changed was to declare a variable $hyprswitch = ~/.cargo/bin/hyprswitch because it's not in my PATH and then replace every occurance of hyprswitch with $hyprswitch. This shouldn't break it though, the executable is also found.

@H3rmt I used the config from the readme:
$hyprswitch = /home/pc/.cargo/bin/hyprswitch
exec-once = $hyprswitch init --show-title &

......

# allows repeated switching with same keypress that starts the submap
binde = $modifier, $key, exec, $hyprswitch gui --do-initial-execute
bind = $modifier, $key, submap, switch

# allows repeated switching with same keypress that starts the submap
binde = $modifier $reverse, $key, exec, $hyprswitch gui --do-initial-execute -r
bind = $modifier $reverse, $key, submap, switch

submap = switch
# allow repeated window switching in submap (same keys as repeating while starting)
binde = $modifier, $key, exec, $hyprswitch gui
binde = $modifier $reverse, $key, exec, $hyprswitch gui -r

# switch to specific window offset (TODO replace with a more dynamic solution)
bind = $modifier, 1, exec, $hyprswitch gui --offset=1
bind = $modifier, 2, exec, $hyprswitch gui --offset=2
bind = $modifier, 3, exec, $hyprswitch gui --offset=3
bind = $modifier, 4, exec, $hyprswitch gui --offset=4
bind = $modifier, 5, exec, $hyprswitch gui --offset=5

bind = $modifier $reverse, 1, exec, $hyprswitch gui --offset=1 -r
bind = $modifier $reverse, 2, exec, $hyprswitch gui --offset=2 -r
bind = $modifier $reverse, 3, exec, $hyprswitch gui --offset=3 -r
bind = $modifier $reverse, 4, exec, $hyprswitch gui --offset=4 -r
bind = $modifier $reverse, 5, exec, $hyprswitch gui --offset=5 -r

# exit submap and stop $hyprswitch
bindrt = $modifier, $modifier_release, exec, $hyprswitch close
bindrt = $modifier, $modifier_release, submap, reset

# if it somehow doesn't close on releasing $switch_release, escape can kill (doesnt switch)
bindr = ,escape, exec, $hyprswitch close --kill
bindr = ,escape, submap, reset
submap = reset

I also reinstalled hyprswitch via cargo today and repasted the config from the readme. The only thing I changed was to declare a variable $hyprswitch = ~/.cargo/bin/hyprswitch because it's not in my PATH and then replace every occurance of hyprswitch with $hyprswitch. This shouldn't break it though, the executable is also found.

I have a nearly identical config:
# $bin = /usr/bin/hyprswitch
$bin = /home/enrico/RustroverProjects/hyprswitch/target/release/hyprswitch

exec-once = $bin init &

# -----------------------------------------------------------------------------------------
# keyboard + GUI

$key = TAB
$modifier = ALT
$modifier_release = ALT_L
$reverse = SHIFT

# allows repeated switching with same keypress that starts the submap
binde = $modifier, $key, exec, $bin gui --do-initial-execute
bind = $modifier, $key, submap, switch

# allows repeated switching with same keypress that starts the submap
binde = $modifier $reverse, $key, exec, $bin gui --do-initial-execute -r
bind = $modifier $reverse, $key, submap, switch

submap = switch
# allow repeated window switching in submap (same keys as repeating while starting)
binde = $modifier, $key, exec, $bin gui
binde = $modifier $reverse, $key, exec, $bin gui -r

# switch to specific window offset (TODO replace with a more dynamic solution)
bind = $modifier, 1, exec, $bin gui --offset=1
bind = $modifier, 2, exec, $bin gui --offset=2
bind = $modifier, 3, exec, $bin gui --offset=3
bind = $modifier, 4, exec, $bin gui --offset=4
bind = $modifier, 5, exec, $bin gui --offset=5

bind = $modifier $reverse, 1, exec, $bin gui --offset=1 -r
bind = $modifier $reverse, 2, exec, $bin gui --offset=2 -r
bind = $modifier $reverse, 3, exec, $bin gui --offset=3 -r
bind = $modifier $reverse, 4, exec, $bin gui --offset=4 -r
bind = $modifier $reverse, 5, exec, $bin gui --offset=5 -r

# exit submap and stop hyprswitch
bindrt = $modifier, $modifier_release, exec, $bin close
bindrt = $modifier, $modifier_release, submap, reset

# if it somehow doesn't close on releasing $switch_release, escape can kill
bindr = ,escape, exec, $bin close --kill
bindr = ,escape, submap, reset
submap = reset

# -----------------------------------------------------------------------------------------

It is important to not have any conflicting keybinds with the close bind: (https://wiki.hyprland.org/Configuring/Binds/)
The t modifier (transparent, cannot be shadowed by other binds.) with the r modifier on close are a hacky way to allow for different actions when pressing the key (open gui) and releasing key (close gui) with the same keypress.

please take a look at 3.0.0-alpha.1 (docs in https://github.com/H3rmt/hyprswitch/blob/dev/README.md)
Can be installed via cargo install<EMAIL_ADDRESS>

So i installed the alpha.3 and alpha.4 and  for both I cannot get it working (with the setup from the link you provided). If I execute the keybindings manually in a shell I get this error:
❯ hyprswitch gui --mod-key alt_l --key tab --close mod-key-release && hyprswitch dispatch
Error: Failed to send init command with config Config { ignore_monitors: false, ignore_workspaces: false, sort_recent: false, filter_current_workspace: false, filter_current_monitor: false, filter_same_class: false, include_special_workspaces: false, switch_workspaces: false } and gui_config GuiConfig { max_switch_offset: 5, mod_key: AltL, key: "tab", close: ModKeyRelease, reverse_key: Mod("shift") } to daemon
Caused by:
0: Failed to send init command [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 116, 97, 98, 3, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 115, 104, 105, 102, 116]
1: Command failed

You need to restart the daemon (pkill hyprswitch, hyprswitch -vv init)

When I do that and then execute the command above in another shell, hyprswitch -vv init gives that ouput:

❯ hyprswitch -vv init
DEBUG Checking if daemon is running
DEBUG Daemon not running: Connection refused (os error 111)
INFO Starting daemon
INFO Starting gui
INFO Starting daemon
INFO Starting listener on "/run/user/1000/hyprswitch.sock"
DEBUG Running application
(hyprswitch:6370): Gtk-WARNING **: 17:31:36.432: Theme parser error: gtk.css:96:11-12: Expected a filter
(hyprswitch:6370): Gtk-WARNING **: 17:31:36.441: Theme parser error: gtk.css:93:11-12: Expected a filter
DEBUG Received empty buffer
DEBUG Received command: Init(Config { ignore_monitors: false, ignore_workspaces: false, sort_recent: false, filter_current_workspace: false, filter_current_monitor: false, filter_same_class: false, include_special_workspaces: false, switch_workspaces: false }, GuiConfig { max_switch_offset: 5, mod_key: AltL, key: "tab", close: ModKeyRelease })
INFO Received init command Config { ignore_monitors: false, ignore_workspaces: false, sort_recent: false, filter_current_workspace: false, filter_current_monitor: false, filter_same_class: false, include_special_workspaces: false, switch_workspaces: false } and GuiConfig { max_switch_offset: 5, mod_key: AltL, key: "tab", close: ModKeyRelease }
ERROR Failed to init with config Config { ignore_monitors: false, ignore_workspaces: false, sort_recent: false, filter_current_workspace: false, filter_current_monitor: false, filter_same_class: false, include_special_workspaces: false, switch_workspaces: false } and gui_config GuiConfig { max_switch_offset: 5, mod_key: AltL, key: "tab", close: ModKeyRelease }
Caused by:
0: Failed to collect data with config Config { ignore_monitors: false, ignore_workspaces: false, sort_recent: false, filter_current_workspace: false, filter_current_monitor: false, filter_same_class: false, include_special_workspaces: false, switch_workspaces: false }
1: invalid type: boolean false, expected u8 at line 20 column 23

Hyprland version?

I hope this it what you mean:

❯ hyprctl version
Hyprland, built from branch  at commit fe7b748eb668136dd0558b7c8279bfcd7ab4d759  (props: bump version to 0.39.1).
Date: Tue Apr 16 16:01:03 2024
Tag: v0.39.1, commits: 4460
flags: (if any)

Hyprland changed the fullscreen type for clients some time ago.
The library I use expects the fullscreen type to be the new format, this means it will only work with newer hyprland versions.

Ah ok, I guess I will wait until it is updated in the fedora repo and then try again. Thank you!

https://packages.fedoraproject.org/pkgs/hyprland/hyprland/
Fedora 40 still ships v0.39

I will close this issue as the bug has been fixed in the new 3.0.0 releases

Would be beneficial to add the minimal required hyprland version in the README and also check when starting the daemon

Updated hyprland now and can confirm that it works absolutely great. Thanks a lot! :)


feat: rewrite toolbar reference page for new APIs

Description (required)
Rewrite the toolbar api reference to match new APIs
Related issues & labels (optional)
https://github.com/withastro/astro/pull/10665 & https://github.com/withastro/astro/pull/10667 rework how to make dev toolbar APIs to make it easier to make apps

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

File
Note
Locale

src/content/docs/en/reference/dev-toolbar-app-reference.mdx
Source changed, localizations will be marked as outdated.
en

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.

OK! Looking great @Princesseuh ! See my commit above with some light touches (some of them outside of GitHub's editing area, so easier just to make directly going through the page) and confirm everything I did is correct...and desirable! Also a couple of questions/notes/confirmation left unresolved here! But, very close to good to go, I think!

OK! I made a commit to address those comments, and otherwise this is ready for your approval!
I'll be making a 4.7.0 branch and pointing these two PRs to them so that they are aware of each other. That will fix the failing link in the other one, and allow me to add a link here to the recipe that won't fail.

Merging into 4.7.0 branch for final checks!


Disable stripInternal in TS config

stripInternal is disabled due to it causing
issues in bundles, wherein types marked as
@internal were being elided from the build,
even when other parts of the package depended
upon them.
See: https://github.com/freshgum-bubbles/typedi/issues/146

The long-term solution to this is migrating to api-extractor,
which has been on the backburner for a while now.

Related note: need to set up package testing infra :/


requests header handling

When i send a request with Content-Type: application/json;charset=UTF-8 (it's default for my framework), I get an error: 400: Content-Type should be application/json.
Everything works fine if the header is overridden with Content-Type: application/json

Fixed


update unit test for etl

Coverage decreased (-1.9%) to 61.786% when pulling 9500c35434a4991e0eb8405e83dc15ab3b4317a5 on leslieaula:dev into 9dcaed06a8ebf3d222b2dab7513a87001c3aa123 on danliris:dev.


Radio methods for PTX and PRX

I still need to check some things but I will open this now for possible discussions.

@jamesmunns I think this is ready to merge, but I will leave here in case you want to give some feedback.


openal-soft can't be build

Package: openal-soft:x86-windows
Vcpkg version: 2018.11.23-nohash
Tried this with a fresh pull of vcpkg into a new directory and got the same error.
install-x86-windows-dbg-out.log

PS C:\Users\lobedama\vcpkg> .\vcpkg.exe install openal-soft
The following packages will be built and installed:
openal-soft[core]:x86-windows
Starting package 1/1: openal-soft:x86-windows
Building package openal-soft[core]:x86-windows...
A suitable version of cmake was not found (required v3.12.4). Downloading portable cmake v3.12.4...
Downloading cmake...
https://github.com/Kitware/CMake/releases/download/v3.12.4/cmake-3.12.4-win32-x86.zip -> C:\Users\lobedama\vcpkg\downloads\cmake-3.12.4-win32-x86.zip
Extracting cmake...
A suitable version of 7zip was not found (required v18.1.0). Downloading portable 7zip v18.1.0...
Downloading 7zip...
https://www.nuget.org/api/v2/package/7-Zip.CommandLine/18.1.0 -> C:\Users\lobedama\vcpkg\downloads\7-zip.commandline.18.1.0.nupkg
Extracting 7zip...
A suitable version of nuget was not found (required v4.6.2). Downloading portable nuget v4.6.2...
Downloading nuget...
https://dist.nuget.org/win-x86-commandline/v4.6.2/nuget.exe -> C:\Users\lobedama\vcpkg\downloads\nuget.exe
-- Downloading https://github.com/kcat/openal-soft/archive/openal-soft-1.19.1.tar.gz...
-- Extracting source C:/Users/lobedama/vcpkg/downloads/kcat-openal-soft-openal-soft-1.19.1.tar.gz
-- Applying patch dont-export-symbols-in-static-build.patch
-- Applying patch cmake-3-11.patch
-- Applying patch failed. This is expected if this patch was previously applied.
-- Using source at C:/Users/lobedama/vcpkg/buildtrees/openal-soft/src/oft-1.19.1-6c137ea078
-- Downloading https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-win.zip...
-- Configuring x86-windows
-- Building x86-windows-dbg
CMake Error at scripts/cmake/vcpkg_build_cmake.cmake:175 (message):
Command failed: C:/Users/lobedama/vcpkg/downloads/tools/cmake-3.12.4-windows/cmake-3.12.4-win32-x86/bin/cmake.exe;--build;.;--config;Debug;--target;install;--;-v;-j1
Working Directory: C:/Users/lobedama/vcpkg/buildtrees/openal-soft/x86-windows-dbg
See logs for more information:
C:\Users\lobedama\vcpkg\buildtrees\openal-soft\install-x86-windows-dbg-out.log
Call Stack (most recent call first):
scripts/cmake/vcpkg_install_cmake.cmake:24 (vcpkg_build_cmake)
ports/openal-soft/portfile.cmake:59 (vcpkg_install_cmake)
scripts/ports.cmake:71 (include)

I am sorry, my Installation of Visual Studio 2017 was somehow corrupted. After repairing it, the package compiles as expected.


Feature Request: Be able to choose wine version

It would be cool if you could specify which wine executable to use (provide path to the executable/folder or something)
Could be an option in the config.yaml
Ex: I would like to be able to use the wine-GE-proton  and not my system wine version
Something even crazier would be auto-detection of wine versions you have on your system
by default use system wine

Solved by recent commit , so closing


Half-Life: MMod, crash due to "GameStudioRenderer_StudioCalcAttachments_vftable_index"

MMod causes a crash if you use "Renderer.dll" with it, the crash appears as seen in this picture:

Transcripted:
[Renderer] Could not found: GameStudioRenderer_StudioCalcAttachments_vftable_index
Engine buildnum: 8684
Other than that and BulletPhysics.dll, MetaHook successfully hooks into MMod itself, which at the very least allows me to use MetaAudio.
You can get the game from here:
https://store.steampowered.com/app/1761270/HalfLife_MMod/
Please note that the one in Moddb is outdated.

Download
https://www.mediafire.com/file/5t7dozm7sptcuqj/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Fixed https://github.com/hzqst/MetaHookSv/releases/tag/v20241012g


contains function wrong

as title

Changing order of arguments? does it matter?

it's a bug. you can see the order of contains's arguments and how you pass the arguments in Application.configure

ok, I'm wrong!


Move lua scripts into embedded files

Codecov Report

Merging #3 (6df8c80) into main (36861e5) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main       #3   +/-   ##
=======================================
  Coverage   91.71%   91.71%
=======================================
  Files           6        6
  Lines         181      181
=======================================
  Hits          166      166
  Misses         10       10
  Partials        5        5

Files Changed
Coverage Δ

capped_zset.go
100.00% <ø> (ø)

interval_hash.go
91.17% <ø> (ø)

interval_series.go
88.88% <ø> (ø)

interval_set.go
100.00% <ø> (ø)

locker.go
92.10% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Add support for INTERVAL literal capability

ElasticSearch supports INTERVAL capabilities (https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-functions-datetime.html) but some extra adaptation is needed as it does not work out of the box.

Shelved.


Create Figma for Site

Need to create a Figma for the site so that we can work on designing various elements.

Also create color palette


clg semicolon

Hey, your extension is great, but i have trouble with clg each and every day
When using arrow function and clg snippet, the semicolon at the end introduces syntax error
For example:
i am writing code like this:
fetch('x').then(res => clg)

this creates
fetch('x').then(res => console.log();)

which is obviously syntax error and i have to remove the semicolon
is there any chance the semicolon could be removed from the snippet? Thanks for the answer
Would love to create PR for this issue

@dsznajder
Created PR for this issue #219

@mecirmartin Fixed in v4.3.1


Added eu/ensiie.txt

Added French school ENSIIE https://www.ensiie.fr/

@cscmieu Please provide us with a proof, which shows that the school recognizes the domain you are submitting as an official email domain for the students.
You can provide us with any of the following:

A copy of instruction (a hard-copy or electronic one) given to you by the school that tells you to use an email address in this email domain
An URL of a page at the official school website that says that students use this email domain
A reference to a recognized journal where an article was published by someone from the school, with explicit affiliation to the school, and e-mail address from the email domain
A WHOIS data that link the email domain to the school somehow
A copy of official letter from the school representative saying that the school provides e-mail addresses in this domain to the students
Anything else that can prove this fact in similar way, i.e. can be verified independently.

@cscmieu You might miss my previous comment. Please react.

Hi,
Sorry for replying so late...
On Sun, Oct 1, 2023 at 5:35 AM Philip Torchinsky @.***>
wrote:

@cscmieu https://github.com/cscmieu You might miss my previous comment.
Please react.
—
Reply to this email directly, view it on GitHub
https://github.com/JetBrains/swot/pull/18786#issuecomment-1741943470,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A3PQZBDES2VDK7ZSXSEIDXTX5DQHRANCNFSM6AAAAAA5CXMNSE
.
You are receiving this because you were mentioned.Message ID:
@.***>

@cscmieu No problem. Thank you for answering. However you did not reply the question in my previous comment. Would you please reply the question? If you don't have the proof, you may close the ticket and reopen it when you have the proof.

@cscmieu You might miss my previous comment. Please react.

Sorry, but I don't understand, I added a proof as attachment... Need I to
translate it ? Because it was sent in french.
On Tue, Oct 3, 2023 at 6:51 PM Philip Torchinsky @.***>
wrote:

@cscmieu https://github.com/cscmieu You might miss my previous comment.
Please react.
—
Reply to this email directly, view it on GitHub
https://github.com/JetBrains/swot/pull/18786#issuecomment-1745364390,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A3PQZBAHHPSPFTJF3KG3YRDX5Q7AZAVCNFSM6AAAAAA5CXMNSGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONBVGM3DIMZZGA
.
You are receiving this because you were mentioned.Message ID:
@.***>

@cscmieu Regrettably, the attachment was not actually attached. Could you please upload the proof using your browser, nit by email? Please open the page https://github.com/JetBrains/swot/pull/18786 and upload the proof as a comment there. Translation is not necessary.
GitHub strips out attachments if they are sent by email, thus it might not appear on the request page. Thank you!

Modification_messagerie.pdf


[Request] Please add UI in other languages than Chinese

Thank you a lot for maintaining this.
Since this plugin is not only for Chinese speakers but also Korean & Japanese speakers, it would be great if it had UIs in Korean, Japanese, or English so that non-Chinese speakers can use it without difficulty:pray:

Wow, sorry, I misunderstood. Omnisearch's README says this plugin is needed for searching in CJK, so I thought this plugin is made for CJK. But now I see it's not.

Assuming you are a Japanese speaker, you can open a issue on https://github.com/sonarAIT/cm-japanese-patch, which is a fork of this plugin.


Installation of chart with subcharts is not handled as expected

How to categorize this issue?

/area helm-deployer
/kind bug
/priority 3
What happened:
When installing a chart which has subcharts the landscaper manages to install the main chart successfully, however when the subchart is "disabled" (it should not be installed) it looks like it still tries to render/create (from helm perspective) the resources of the subchart.
What you expected to happen:
I expected only the main chart to be installed and the subchart to not be involved at all.
How to reproduce it (as minimally and precisely as possible):
I have not tried to reproduce the issue with different helm chart from the one of Connectivity Service. It would be hard to navigate you how to install our chart and it would require subaccounts in CF and so on. I am available to help reproduce the issue at any time. Also I can leave a failed installation in the landscaper instance if needed for troubleshooting. Or I guess you could update the installation resource I used and reproduce it.
I am attaching the chart which I am trying to install.
connectivity-proxy-k8s-helm-2.9.0.tgz
Anything else we need to know?:
If I try to install the chart with the subchart enabled it works fine.
Environment:

Landscaper version: v0.40.0
Kubernetes version (use kubectl version): v1.25
Others:

We can now reproduce this issue and are working on a fix.
The actual helm install does indeed skip the disabled sub chart (as desired). But the readiness check afterwards does not ignore them. Therefore, the readiness check waits for a deployment to become ready which has not been deployed. This causes the error.

Nice to hear! Thank you!

@Goshoy
Hi Georgi,
the fix for this issue has now been deployed n the Landscaper CANARY landscape.
Best regards,
Robert


[WIP] Update ChemicalEnvironments SMIRKS parsing

I have updated ChemicalEnvironments to parse more SMIRKS, per issue #106. Please note, I pulled the changes @jchodera made in to ChemicalEnvironments in #86 into this PR. I had pulled that code into my branch after writing issue #100. I haven't addressed issue #100 yet, if we just want to replace things with snake case I should be able to do that fairly easily with find and replace and could add it to this PR. When I wrote that issue I was imagining changing the Get and Set functions to also be more pythonic with @property and setter methods instead. I don't think this will take me very long, but its been REALY low on the priority list with SAMPL and MolSSI deadlines approaching.
So currently this PR addresses only issue #106 which involved more than one bug that I found:

aromatic atom symbols weren't recognized when looking for atoms not in brackets. For example, 'c1ccccc1' is technically a SMIRKS string, but before ChemicalEnvironments would have complained because it didn't know that 'c' was an atom. Now it does.

You can specify rings in recursive SMIRKS such as "[#6X3$(*1-C=C-C1):1]" could be used to look for a butene like group. However, the parsing didn't put the first 1 after the * in the right place before.

While addressing 2, I discovered another bug with recursive SMIRKS. The first atom inside the recursion always refers to the first or "top" atom. In my mind, there are 3 options for what that atom could look like.

* which means there is no additional information "[#6X3$(*~[#7,#8,#9,#17,#35,#53]):1]". These are the most common version of this type of SMIRKS pattern
a "square bracketed atom" such as "[$(#6X3~[#7,#8,#9,#17,#35,#53])]". These aren't that common in human written SMIRKS, but they can appear if you had a replacement string such as "$ewg" where you did the replacement before making the ChemicalEnvironment
Atomic or aromatic symbols that do not require brackets which look like: "[$(c1ccccc1)]". This last type was not handled at all in the parsing, I've added coverage for this scenario.

I've tried to add tests to cover all three of these cases. However, I would like to take this bug as an example of reasons why just "can we put it into a ChemicalEnvironment" is not a sufficient test. Many of these are caught because of type mismatches or because after pulling the SMIRKS into a ChemicalEnvironment we check that SMIRKS created by that environment is actually valid in some other toolkit. I could update the isValid function to check for openeye or rdkit and use which ever is available. That function is the only place ChemicalEnvironments are dependent on OpenEye.
@jchodera or @davidlmobley take a look at this description and let me know if you want me to change things to snake case or address the isValid issue before we merge this.

@bannanc

I could update the isValid function to check for openeye or rdkit and use which ever is available

Thanks for your work on this. I think this would be useful if you can get the RDKit version of it working easily, though if not it would make sense to me to do that in a separate issue/PR later.
I'll have a quick look through your other changes, but I'm fine having the rest of the issues be dealt with separately/later.

@davidlmobley
Otherwise I'm happy to wait on the other pythonic issues for future PRs and merge this. I'm not allowed to merge this because the tests are failing so will you merge it unless.
Did you want me to change this question in the python file?

QUESTION: should we ditch camelCase and go with PEP8 standard snake_case?

Happy to merge, but what about:

Thanks for your work on this. I think this would be useful if you can get the RDKit version of it working easily, though if not it would make sense to me to do that in a separate issue/PR later.

Also can you remove "WIP"?

Mind also disabling the py27 test at the same time, since we're going to keep having problems with that one given that py27 support is going away?

@davidlmobley I tried removing python 2.7 and then the other tests failed... I don't understand why, but that was this commit
I then switched to the conda install for openeye because I thought it made sense for us to switch to that installation. (it is still failing)

I found a discrepancy in openeye and rdkit SMARTS parsing, I updated the test to avoid the corner case and wrote an issue in RDKit's issue tracker: https://github.com/rdkit/rdkit/issues/1842

@davidlmobley This is ready for you to take a look at again, I'm happy to handle the rdkit part differently, but I wanted to make sure I could test it so making it an init option seemed like the easiest way to do that for now.

Looks good to me! Thanks! Update docs in a separate PR to note that py27 may still work but is no longer supported?


Added ceaser cipher fixes #734

Pull Request Template
script name - Ceaser Cipher
Brief about script
A simple implementation of a CLI tool to work with caeser ciphers. The default implementation is ROT-13, but can be adjusted for any offset. Works on files and string arguments passed via CLI.
Issue no.(must) - #734
Self Check(Tick After Making pull Request)

[x] This issue was assigned to me.
[x] One Change in one Pull Request
[x] My file is in proper folder (Name of folder should be in lowercase with no space in between) (E.g. meet_schedular)
[x] I am following clean code and Documentation and my code is well linted with flake8.
[x] I have added README.md and requirements.txt (Include version numbers too e.g. pandas==0.0.1) with my script
[x] I have used REPO README TEAMPLATE (Necessary)

the second commit was just to change "ceaser-cipher" to "caeser-cipher"


File Shares Sync Stack Integration

Description

API change check
API changes are not detected in this pull request.

/azp run java - storage - tests

/azp run java - storage - tests

/check-enforcer override


librespot crashes - main thread panic

 Issue by pwitka2
Monday Jan 22, 2018 at 20:10 GMT
Originally opened as https://github.com/plietar/librespot/issues/273

librespot crashes with such error message:
INFO:librespot::player: Track "Sweet Pea" loaded
thread 'main' panicked at 'Box', core/src/session.rs:83:42
note: Run with RUST_BACKTRACE=1 for a backtrace.
It happened after long idle (paused) time.
I have raspbian wheezy
raspotify 0.9.1~librespot.20171005T125424Z.8971d3a

I can add this happens when connection to the Internet is dropped (router up, but DSL dies).
Would it be at least possible that the process:
pi@raspberrypi:~$ ps aux | grep respot
raspoti+   872  3.5  1.3  33716 12184 ?        Ssl  lut05  75:03 /usr/bin/librespot --name Malina ∏ 3 --backend alsa --bitrate 320 --disable-audio-cache
pi        2049  0.0  0.2   5992  1884 pts/0    S+   22:44   0:00 grep respot

really dies on crash, so systemd could restart it?
If it's fixed, we need to wait for next release of raspotify.

From

https://docs.rs/tokio-core/0.1.12/tokio_core/reactor/struct.Handle.html#method.spawn and
https://docs.rs/tokio-core/0.1.12/tokio_core/reactor/struct.Remote.html#method.spawn:
This method will not catch panics from polling the future f. If the future panics then it's the responsibility of the caller to catch that panic and handle it as appropriate.

Is that done in session.rs? If so, where? If not, where should it be done and what should it do?

I'm not sure where this is implemented exactly, as I haven't looked at the code that handles this, but it's my understanding that the session logic is due for a rewrite to enable handling of things like reconnection, as it has been mentioned several times in the past, most recently by @plietar in Gitter on Feb 8:
Is there a tracking issue for reconnecting automatically when the connection is broken? I had a few ideas for implementation from a while ago I'd like to write down.

Hence, I've created #134 to track suggestions/improvements that can be made to the existing session logic, or in a rewrite of it.

Since this is just a re-connection issue I'm going to close in favour of #134


Discord link is broken

The link under https://github.com/AntonOsika/gpt-engineer#contributing redirects to https://discord.com/invite/4t5vXHhu which shows an invalid invite. It looks like, the correct link is https://discord.com/invite/8tcDQ89Ej2, based on https://github.com/AntonOsika/gpt-engineer#gpt-engineer.

Bummer, we had two links. Should be fixed.


oneOf in schema.json is showing null in generated documentaion

You could probably do this via custom templates for the docs, but I'm not sure I totally know what you want. Could you provide a small-ish sample schema that demonstrates what you mean?

so with a schema.json like the one below, If I execute the doc command i get null for a but b comes as expected
{
"$schema": "http://interagent.github.io/interagent-hyper-schema",
"type": [
"object"
],
"definitions": {
"a": {
"title": "a",
"description": "",
"type": [
"object"
],
"oneOf": [
{
"properties": {
"c": {
"type":"object",
"description":"c element"
}
},
"additionalProperties": false
},
{
"properties": {
"d": {
"type":"object",
"description":"d element"
        }
      },
      "additionalProperties": false
    }
  ],
  "definitions":{
    "identity": {
    }
  },
  "links":[]

},
"b":{
  "title": "a",
  "type":"string",
  "description": "b element",
  "definitions":{
    "identity": {
    }
  },
  "links":[]
}

},
"properties": {
"a": {
"$ref": "#/definitions/a"
},
"b": {
"$ref": "#/definitions/b"
}
},
"links": [
{
"href": "https://xxx.com",
"rel": "self"
}
],
"id": "xxx",
"description":"xxx element",
"title": "",
"additionalProperties": false
}

Ah. I wonder if you might have better luck if you reversed the nesting. So a would have the oneOf inside the properties attribute (instead of having the properties attributes repeated inside). Worth a shot anyway.

I tried that way but it only works when c and d enums .. I had to tweak the schemata.md.erb file to make it work for me. Thanks

@sammyApe thanks for the update, glad to hear you found a workaround. Hopefully we can get this fixed/improved in the future so that wouldn't be needed.


Unable to see Pictures at Blogpost near 'Last Activity [x]h ago'

Describe the bug
It seems that the Profile Pictures are intact, so 'top Participants' at Post and in Profil you can see a Picture, but not in front of the Postowner.
REQUIRED: Include the contents of api/.env and frontend/.env
If you are manually overriding any environment variables when running the package scripts, include those as well.
api/.env
PROSE_DISCOURSE_HOST=https://discourse.fridaysforfuture.me

frontend/.env
MOBILE_PROSE_HOST=https://apid.fridaysforfuture.me

REQUIRED: answer the following questions:

If this is related to your mobile app:

Are you running it through Expo, or did you build it?
-> Running through Expo
Is it running on your mobile device or on a simulator?
-> Mobile device

To Reproduce
Steps to reproduce the behavior:

Go to 'npx expo start'
Scan QR Code

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
@dev:/var/lexicon/frontend# npx expo start
Starting project at /var/lexicon/frontend
Starting Metro Bundler
› Metro waiting on exp://<IP_ADDRESS>:19000
› Scan the QR code above with Expo Go (Android) or the Camera app (iOS)
› Press a │ open Android
› Press w │ open web
› Press j │ open debugger
› Press r │ reload app
› Press m │ toggle menu
› Press ? │ show all commands
Logs for your project will appear below. Press Ctrl+C to exit.
iOS Bundling complete 85032ms
ERROR  Warning: Cannot update a component (PostProvider) while rendering a different component (Home). To locate the bad setState() call inside Home, follow the stack trace as described in https://reactjs.org/link/setstate-in-render
in Home (created by SceneView)
in StaticContainer
in EnsureSingleNavigator (created by SceneView)
in SceneView (created by BottomTabView)
in RCTView (created by View)
in View (created by Screen)
in RCTView (created by View)
in View (created by Background)
in Background (created by Screen)
in Screen (created by BottomTabView)
in RNSScreen (created by AnimatedComponent)
in AnimatedComponent
in AnimatedComponentWrapper (created by InnerScreen)
in Suspender (created by Freeze)
in Suspense (created by Freeze)
in Freeze (created by DelayedFreeze)
in DelayedFreeze (created by InnerScreen)
in InnerScreen (created by Screen)
in Screen (created by MaybeScreen)
in MaybeScreen (created by BottomTabView)
in RNSScreenNavigationContainer (created by ScreenContainer)
in ScreenContainer (created by MaybeScreenContainer)
in MaybeScreenContainer (created by BottomTabView)
in RCTView (created by View)
in View (created by SafeAreaInsetsContext)
in SafeAreaProviderCompat (created by BottomTabView)
in BottomTabView (created by BottomTabNavigator)
in Unknown (created by BottomTabNavigator)
in BottomTabNavigator (created by TabNavigator)
in TabNavigator (created by SceneView)
in StaticContainer
in EnsureSingleNavigator (created by SceneView)
in SceneView (created by CardContainer)
in RCTView (created by View)
in View (created by CardContainer)
in RCTView (created by View)
in View (created by CardContainer)
in RCTView (created by View)
in View
in CardSheet (created by Card)
in RCTView (created by View)
in View (created by AnimatedComponent)
in AnimatedComponent
in AnimatedComponentWrapper (created by PanGestureHandler)
in PanGestureHandler (created by PanGestureHandler)
in PanGestureHandler (created by Card)
in RCTView (created by View)
in View (created by AnimatedComponent)
in AnimatedComponent
in AnimatedComponentWrapper (created by Card)
in RCTView (created by View)
in View (created by Card)
in Card (created by CardContainer)
in CardContainer (created by CardStack)
in RNSScreen (created by AnimatedComponent)
in AnimatedComponent
in AnimatedComponentWrapper (created by InnerScreen)
in Suspender (created by Freeze)
in Suspense (created by Freeze)
in Freeze (created by DelayedFreeze)
in DelayedFreeze (created by InnerScreen)
in InnerScreen (created by Screen)
in Screen (created by MaybeScreen)
in MaybeScreen (created by CardStack)
in RNSScreenContainer (created by ScreenContainer)
in ScreenContainer (created by MaybeScreenContainer)
in MaybeScreenContainer (created by CardStack)
in RCTView (created by View)
in View (created by Background)
in Background (created by CardStack)
in CardStack (created by HeaderShownContext)
in RCTView (created by View)
in View (created by SafeAreaInsetsContext)
in SafeAreaProviderCompat (created by StackView)
in RCTView (created by View)
in View (created by GestureHandlerRootView)
in GestureHandlerRootView (created by StackView)
in StackView (created by StackNavigator)
in Unknown (created by StackNavigator)
in StackNavigator (created by StackNavigator)
in StackNavigator (created by SceneView)
in StaticContainer
in EnsureSingleNavigator (created by SceneView)
in SceneView (created by CardContainer)
in RCTView (created by View)
in View (created by CardContainer)
in RCTView (created by View)
in View (created by CardContainer)
in RCTView (created by View)
in View
in CardSheet (created by Card)
in RCTView (created by View)
in View (created by AnimatedComponent)
in AnimatedComponent
in AnimatedComponentWrapper (created by PanGestureHandler)
in PanGestureHandler (created by PanGestureHandler)
in PanGestureHandler (created by Card)
in RCTView (created by View)
in View (created by AnimatedComponent)
in AnimatedComponent
in AnimatedComponentWrapper (created by Card)
in RCTView (created by View)
in View (created by Card)
in Card (created by CardContainer)
in CardContainer (created by CardStack)
in RNSScreen (created by AnimatedComponent)
in AnimatedComponent
in AnimatedComponentWrapper (created by InnerScreen)
in Suspender (created by Freeze)
in Suspense (created by Freeze)
in Freeze (created by DelayedFreeze)
in DelayedFreeze (created by InnerScreen)
in InnerScreen (created by Screen)
in Screen (created by MaybeScreen)
in MaybeScreen (created by CardStack)
in RNSScreenContainer (created by ScreenContainer)
in ScreenContainer (created by MaybeScreenContainer)
in MaybeScreenContainer (created by CardStack)
in RCTView (created by View)
in View (created by Background)
in Background (created by CardStack)
in CardStack (created by HeaderShownContext)
in RCTView (created by View)
in View (created by SafeAreaInsetsContext)
in SafeAreaProviderCompat (created by StackView)
in RCTView (created by View)
in View (created by GestureHandlerRootView)
in GestureHandlerRootView (created by StackView)
in StackView (created by StackNavigator)
in Unknown (created by StackNavigator)
in StackNavigator (created by RootStackNavigator)
in RootStackNavigator (created by AppNavigator)
in EnsureSingleNavigator
in BaseNavigationContainer
in ThemeProvider
in NavigationContainerInner (created by AppNavigator)
in AppNavigator (created by App)
in UserEventProvider (created by App)
in ModalProvider (created by App)
in PostProvider (created by App)
in ThemeProvider (created by App)
in AppearanceProvider (created by App)
in RNCSafeAreaProvider (created by SafeAreaProvider)
in SafeAreaProvider (created by App)
in StorageProvider (created by App)
in ApolloProvider (created by App)
in App (created by withDevTools(App))
in withDevTools(App)
in RCTView (created by View)
in View (created by AppContainer)
in RCTView (created by View)
in View (created by AppContainer)
in AppContainer
in main(RootComponent)
LOG  VirtualizedList: You have a large list that is slow to update - make sure your renderItem function renders components that follow React performance best practices like PureComponent, shouldComponentUpdate, etc. {"contentLength": 4172.5, "dt": 2368, "prevDt": 2702}
Environments
Desktop (please complete the following information):

Smartphone (please complete the following information):

Device: iPhone 11
OS: iOS16.3.1
Expo Go App IOS

GraphQL API (please complete the following information):
Please indicate where the Prose GraphQL API is running.
Are you only running it locally on your development machine?
-> https://apid.fridaysforfuture.me
Have you deployed it somewhere? If so, what domain or IP address did you deploy it at?
-> https://apid.fridaysforfuture.me
How specifically did you configure the mobile app to connect to the API?

I didn't configure the mobile App only .env in /api and /frontend

Additional context
Another Issue, when iam clicking on the Post, the App crashed...

We did attempt to reproduce this, although we were unable to verify with your particular site since it requires approval to register. However, we suspect this issue may no longer be occurring in the newer release.
The team will be off for the next week or so for a national holiday. But after the break, we're looking to get an alpha branch up on this repo that hopefully does not contain this issue, as well as a few others (such as crashing due to certain upload:// urls).

I thank you for your work and time on the project. Do you think it has something to do with private discourse or were you also able to reproduce the error on a public forum?
I will try it out to narrow down the issue. Thank you and have a great national holiday next week!

Hi @bonsaibauer hope you're doing great!
We wanted to follow up regarding the issue you reported.
We kindly request that you update to the latest stable version v2, and thoroughly test the application. If you encounter any further issues or have any questions, please don't hesitate to reach out to us. We're here to assist you.
In the meantime, we'll consider this ticket closed, assuming that the issue has been resolved. However, if you do experience any problems or need further assistance, please don't hesitate to reopen this ticket, and we'll promptly investigate and address any concerns you may have.
Thank you for your patience and understanding. We value your feedback and are committed to providing the best possible experience with our product.


Why is everything commented out in server.js, oauth.js, index.js?

all source code is commented out!!

Yes, If you go over the Readme you will see why. But I do agree that this should be change. I will work on that to not confuse developers since out of 100% I always get 5-10% of the attendees at a workshop missed the uncomment this section part.

Everything now uncommented and changed the workflow of the tutorial.


Response with status code of HTTPStatus.NO_CONTENT (204) will stop extractor

The following line will raise an exception in the extractor if the request response returns no content because there is no json to read.
https://github.com/cognitedata/python-extractor-utils-rest/blob/5e8c5a6cf62b94fde70457776ad88dc7bbf2a722/cognite/extractorutils/rest/extractor.py#L558
Currently, we have a client that has an API that could return NO CONTENT for a request call. This behavior will throw an exception in the rest extractor.
How should we handle this? The current RetryConfig does not allow specific exception handling to be passed with the get decorators.

@einarmo


docs(Installing on Microsoft Azure) Add instructions for creating a vnet

This is required to ensure that the nodes get a static IP address.  If a virtual network is not used, the nodes get a dynamic private IP address that can change when rebooted.  This causes problems with etcd.

We also need to make sure we update the ARM template with these changes: https://github.com/Azure/azure-quickstart-templates/pull/473

Docs LGTM.

@mdolian could you do git commit --amend and make the subject line more compliant? Like:
docs(azure): add vnet creation instructions

Sorry to nitpick. lgtm otherwise.

I believe that did it?

Could you also rebase it off master? We don't want the merge commit in there. Thanks @mdolian!


add README.md to refer PR

Summary: Add a README.md file for DLRM, referring the current PR
Differential Revision: D24078776

Duplicate copy - already committed. Closing PR.


test(frontend): add sendBtc tests

Motivation
As agreed, before adding changes to a function, I'm covering existing functionality with tests. In this case, it's about sendBtc of btc-send.services.

@peterpeterparker added additional "should throw" tests, please take a look.


When used under ie11, the login status cannot be stored, and the status will disappear after the page is refreshed,

Version 1.2.7
My project is to save and keep the login status when I log in. I found that when I use it under ie11, I can't save the login status. After refreshing the page, the status will disappear.
I set up transpile and it still doesn't work. What should I do?

@wzs28150  Any news about this issue?

It's working with IE(not edge)
please check this example. https://github.com/rubystarashe/nuxt-vuex-localstorage-example


Bump dependencies

Codecov Report

Merging #87 (f211c18) into master (f0c6f36) will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master     #87   +/-   ##
======================================
  Coverage    0.00%   0.00%
======================================
  Files         365     365
  Lines       10082   10082
  Branches      969     969
======================================
  Misses      10082   10082

Impacted Files
Coverage Δ

...n/java/io/github/wykopmobilny/utils/FileUtils.java
0.00% <ø> (ø)

...bilny/utils/textview/BetterLinkMovementMethod.java
0.00% <ø> (ø)

...kopmobilny/utils/textview/EllipsizingTextView.java
0.00% <ø> (ø)

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 f0c6f36...f211c18. Read the comment docs.


Explain that Container Resource Variables currently don't work for localImage containers

The Container Resource Variables section of the YAML Resources doc indicates that they are available in all cases, which is not true.
See this bug report and this feature request.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: ee4ec9d0-e0d5-4fb4-7c3e-b84abfa290c2
Version Independent ID: 3e2b80d9-30e5-0c48-49f0-4fcdfedf5eee
Content: Define YAML resources for Azure Pipelines - Azure Pipelines
Content Source: docs/pipelines/process/resources.md
Service: azure-devops-pipelines
Sub-service: azure-devops-pipelines-process
GitHub Login: @juliakm
Microsoft Alias: jukullam

@joshchngs Thanks for letting us know. I'll make the update today.


Travis build hasn't been green for 9+ months

Cookbook version
2.1.2
Chef-client version
chef-client version: 12.16.42
Platform Details
Worker information
hostname: travis-worker-gce-org-prod4-12:22f9717d-713f-472c-8fb8-cbba3ffc3973
version: v2.5.0 https://github.com/travis-ci/worker/tree/da3a43228dffc0fcca5a46569ca786b22991979f
instance: testing-gce-da39621e-82c3-4dbc-83f4-1c23c5b0bda2:travis-ci-sugilite-trusty-1471824869

Scenario:
A green build of master so that one can submit pull-requests with confidence that the test suite is valid.
Steps to Reproduce:
Submit a PR with no code changes, the build fails:

https://travis-ci.org/chef-cookbooks/homebrew/builds/80106856
https://github.com/chef-cookbooks/homebrew/pull/74

https://github.com/chef-cookbooks/homebrew/pull/74/files

Expected Result:
CI should succeed on master: https://travis-ci.org/chef-cookbooks/homebrew/builds
The last green build of master was: https://travis-ci.org/chef-cookbooks/homebrew/builds/119385581
Actual Result:
Every build in the last 9 months as a PR or on the master branch have failed.
Perhaps the travis CI could be configured to test against macOS: https://docs.travis-ci.com/user/osx-ci-environment/

This is really sad, my issue just reported at https://github.com/chef-cookbooks/homebrew/issues/116 is also clearly visible in the latest travis output. Why was it merged?
Chef, Inc. still does not allocate enough ressources to keep the bare minimum cookbooks in good quality. Sure, one can say: "It's OSS, feel free to fork and fix" but also every new org/person introduced to chef will copy+paste from those broken "template" cookbooks with the great excuse of "even the Chef guys screw it up!".
😡

Is there a reason homebrew is testing against linux? It seems like this should be using macOS since that is the primary target for homebrew.
On https://github.com/pivotal-sprout we use something like the following to run tests on macOS
language: objective-c # force macOS
osx_image: xcode8.2 # force macOS v10.12
rvm: system # use system ruby
install:
  # we expect sprout to provide homebrew so we should ensure it isn't present
  - brew cask list && brew cask zap $(brew cask list)
  - brew list && brew uninstall --force --ignore-dependencies $(brew list)
  - ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)" -- --force
  - rm -rf /usr/local/var/postgres # clear out Travis-installed Postgres

  - for ruby in $(rvm list strings); do rvm uninstall "${ruby}"; done
  - travis_wait rvm implode --force # We are testing installation of Rubies, so should uninstall everything
script:
# test script(s) here

@aramprice The reason we don't test against OS X itself is that homebrew is already installed on those nodes and the OS X infrastructure in Travis is often backed up for multiple hours. We're currently looking at getting our own buildings in house so we can run integration testing on the various cookbooks that support OS X.
As for the state of the builds. They're red right now. No doubt about it. There's an outstanding PR to convert this cookbook over to custom resources and part of that work will include getting the build green. After that we're going to focus on moving any useful resources into core chef itself, which eliminates a good chunk of the need for this cookbook. Expect that during the Chef 13 cycle.

@tas50 thanks for the update. I understand that Travis can be a bit problematic, especially since the pre-install Homebrew on their VMs.
We worked around this in our tests by "imploding" the pre-installed software with an install: stanza in .travis.yml.
Here's an example from one of our cookbooks: https://github.com/pivotal-sprout/sprout-chruby/blob/master/.travis.yml#L5-L13
install:
  # we expect sprout to provide homebrew so we should ensure it isn't present
  - brew cask list && brew cask zap $(brew cask list)
  - brew list && brew uninstall --force --ignore-dependencies $(brew list)
  - ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)" -- --force
  - rm -rf /usr/local/var/postgres # clear out Travis-installed Postgres 9.4 data

  - for ruby in $(rvm list strings); do rvm uninstall "${ruby}"; done
  - travis_wait rvm implode --force # We are testing installation of Rubies, so should uninstall everything
  - ./sprout exec true # use `exec` to install dependencies

We also remove rvm because our cookbooks expect to run on a fresh macOS system using the (very outdated) system ruby.


Fix Readme Link

This fixes #1 😄

Thanks! I've changed the things you flagged up 😄

Wow thanks for doing such a great job!

If you would like to contribute some more, don't hesitate to let me know !


Removed unnecessary step for tags_as_list_of_maps

What
Cleaned up code, removed unnecessary step
Removed provider code for null_resource from versions
Why
Cleaner code
Closes https://github.com/cloudposse/terraform-null-label/issues/82

/codefreh run test

/codefresh run test

/codefresh run test

/codefresh run test


Check if view is being rendered by Android Studio Layout Preview Editor

Rendering warnings:
The following classes could not be instantiated:
- com.github.stkent.amplify.prompt.DefaultLayoutPromptView (Open Class, Show Exception, Clear Cache)
Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE  Exception Details java.lang.IllegalStateException: You must call initSharedInstance before calling getSharedInstance.   at com.github.stkent.amplify.tracking.Amplify.getSharedInstance(Amplify.java:108)   at com.github.stkent.amplify.prompt.BasePromptView.(BasePromptView.java:116)   at
As the AS Layout Preview Editor has no access to the shared preferences it's necessary to check if view is in "edit mode" using the View.isInEditMode() and avoid those kind of calls that are not available when on "edit mode".

Good call, I'll tag this as an enhancement!