Project Revision form

On the edit form — is it necessary to have the submit button disabled if no fields have been changed? This is an expensive ask with very little benefit. Not sure how to accomplish this without javascript. Maybe instead before sending/mailing a revision request to Chuck upon submission — we could have a check in rails to see if any metadata for the project has been changed?
Additionally — If valid changes have been made, then clicking the "Submit" button advances the user to a confirmation message
ref #275
ref #493

This should be added to the Feature Refinement agenda and slotted into a sprint if it is deemed workable.

User can click "submit" without changing anything.  If nothing has changed, it a) does not kick off other workflows, and b) displays a message saying "nothing has changed"


LDAP admin right after first login

When using LDAP with admin filter gogs will create a "local clone" LDAP user with admin parameter (modules/login.go:296) but if the user is not in the admin group at the time of the first login he/she is created without admin privileges.
But if you add that user later in admin group in LDAP, gogs will check if user is in admin group but it will not sync the data, so user will never be admin even if you add it in LDAP later.
Now this is a common case in big companies, first you create an user in LDAP, and then admin rights are added later per managers approval.

This is indeed a problem. The admin filter should be applied on-demand meaning every time a user logs in. That's a typical use case for accessing a directory service as its optimized for read access.

Partially my pull request #3062 that does sync users with LDAP fixes it

I have checked the LDAP logs when authenticating. It actually makes a query with the admin filter at the time of every login. But does not appear to use that result.

@JonLundy good point..!

That's a real problem which confused me too. Seems like there are currently only to ways to work around this bug:

Manually add the admin permission. An acceptable workaround, but make the great LDAP filter for this relatively useless, since you have to change permissions on two places. This can result in errors, when someone forget it.
Deleting the user in gogs: Not a real solution at all, since the user is already using Gogs

This is claimed to be fixed by merging #4405, please help test on develop branch.

Is this working for anyone?
When i add an admin filter it always returns this error:

[ERROR] [...kg/auth/ldap/ldap.go:304 SearchEntry()] LDAP: Admin search failed: 0 entries

This even happens when the admin filter is the same as the user filter
User filter works, admin does not
user: (&(uid=%s)(memberOf=cn=users,cn=groups,cn=accounts,dc=EXAMPLE,dc=COM))
admin: (&(uid=%s)(memberOf=cn=admins,cn=groups,cn=accounts,dc=EXAMPLE,dc=COM))

@matthijsvdr hi, based on the https://gogs.io/docs/features/authentication, I think currently admin filter does not recognize %s placeholder.


[WIP][ZEPPELIN-1594] Personalized mode

What is this PR for?
Support personalized mode in multi user environments.
What type of PR is it?
[Feature]
Todos

[x] - Add the method to send the result to specific user
[ ] - Add the UI to toggle "personlized mode" in a note

What is the Jira issue?

https://issues.apache.org/jira/browse/ZEPPELIN-1594

How should this be tested?

Apply this patch
Enable shiro
note.config.personalizedMode = true in a note.json to be tested

Screenshots (if appropriate)
Questions:

Does the licenses files need update? No
Is there breaking changes for older versions? No
Does this needs documentation? Yes

This covers the first Todo only. @cloverhearts @1ambda Can you help me implement in a front-side?

@cloverhearts @1ambda Can you help me? :-)

@jongyoul
Sure, What part are you helping me with?

I think we need to implement the second todo item.

@1ambda
hmm.. But, this PR does not seem to have an implementation for the personalization toggle.
This PR seems to be implemented only in the context of the per user send when personalization mode.
hmm... I'm sorry.
(perhaps).. i did missing part?

@jongyoul thanks for starting work on it! one more question. with current implementation in case of refreshing the page, user will get last run note right? so for example, if  user2 runs note and user1 refreshes, he'll still get results of user1.  any roadmap on that?

@jongyoul Could you describe more about the personalized mode?  I don't think current implementation is anywhere close to personalized mode discussed in https://issues.apache.org/jira/browse/ZEPPELIN-1236.
I think Personalized mode should be

Keep boardcast every changes to every users who open the same note
Zeppelin personalize parts of the Note, which is

paragraph.result (output)
paragraph.config.graph (graph selections)
paragraph.settings (dynamic form)

So, every changes, like paragraph addition, deletion, change the code, change width,
everything is broadcasted, but only result / graph selection / dynamic form is personalized.
Current implementation will have following limitations

Once user refresh the page, user will see the other result.
Once two users changes note at the same time (i.e. update paragraph code, change paragraph order,  etc), the result is undefined.
Chart selection, dynamic form value is not personalized, which is major pain point that personalized mode try to resolve, i think.

What do you think?

@Leemoonsoo As we discussed before, the first version of personalized mode is to avoid changing note simultaneously while two user see a same note. I think this version fits it. one user want to change a paragraph or run a paragraph, and he has a proper permission, he can change it but the others doesn't see his change until they refresh their browser. but they refresh it, the newest one is adopted. Isn't it the first version of personalized mode?

@Leemoonsoo I've not tested the graph. If you mean a dynamic change of graph, I'll check it.

@jongyoul I think key requirement of personalized mode is two or more different user want to keep their own dynamic form input and the output of paragraph. How can this be done without let user run paragraph?

@Leemoonsoo Yes, I haven't check the front-side. I'll fix it


Example recipes documentation

In #1827 we added documentation for the example python recipe. It would be nice to also add documentation for some other example recipes, especially for the NCL, R and Julia examples. Then, we could also group them together in a separate 'examples' section.
Would you be able to help out?
Maybe in a few months.

Added documentation for recipe_extract_shape.yml too in #1880.


Campaign Dashboard-Details: IOPs

Context
This is part of EPIC: MI Workflow Redesign #270
This issue covers the associated IOPs of a campaign deployment

IOP stands for Intensive Operation Period an individual time frame, within a deployment that signifies a highly focused effort by investigation scientists and staff.
There may be one or more IOPs within a single deployment.
Though similar in design, there are separate issues for Significant Events, and CDPIs

Current

https://admgstaging.nasa-impact.net/campaigns/7671b7c9-5031-4803-b527-a594283f33b8

New
Only see one version of the same IOP at a time whether published or in-progress

https://www.figma.com/file/zY7BS9fR1huZ0CieHf3Dm8/MI-Workflow-Change?node-id=437%3A25982

IOP accordion title: IOPs (X Published). The count here is the total # of published IOPs, not all the drafts associated with an IOP. By default, the IOP accordion is open.

Each IOP includes the Status, IOP Name, Last Published date, Lasted Edited date

All published IOPs allow user to View. Unpublished IOP and updates allow users to Edit

Unpublished Flow

If no IOPs, show empty state message There are no IOPs yet
Selecting New will bring up a new draft page. https://www.figma.com/file/zY7BS9fR1huZ0CieHf3Dm8/MI-Workflow-Change?node-id=182%3A20724
Once a IOP is created, users can edit the Create draft https://www.figma.com/file/zY7BS9fR1huZ0CieHf3Dm8/MI-Workflow-Change?node-id=264%3A24885
When saved, draft moves to In Progress
When saved, draft moves to In Review
When requested, draft moves to In Admin Review
When approved, IOP is published, and users are brought back to the Details page with the new published version shown. https://www.figma.com/file/zY7BS9fR1huZ0CieHf3Dm8/MI-Workflow-Change?node-id=279%3A27057
Users can View a published IOP https://www.figma.com/file/zY7BS9fR1huZ0CieHf3Dm8/MI-Workflow-Change?node-id=182%3A21530

Published Flow

If a user wants to edit a published IOP, they first need to view it and then click Edit.
Once an Edit is created, the diff view create draft is shown https://www.figma.com/file/zY7BS9fR1huZ0CieHf3Dm8/MI-Workflow-Change?node-id=279%3A30776
When saved, draft moves to In Progress diff view
When saved, draft moves to In Review diff view
When requested, draft moves to In Admin Review diff view
When approved, IOP is published, and users are brought back to the Details page with the new published date. https://www.figma.com/file/zY7BS9fR1huZ0CieHf3Dm8/MI-Workflow-Change?node-id=279%3A26400

Closing this issue as we have released the new MI workflow and do not plan to make these additional changes.


Broken view with the new suggestions in the original app.

The whole chat window goes off-screen to the left, hidden behind the list of chats. Only the prompt box is left on the screen. I attempted reinstalling the plugin but it didn't fix the issue.

I have the same problem

any workarounds? i am facing the same problem too
i reinstalled to no avail, logged in and logged out of chatgpt and still face the same issue

i downloaded the 3.3.1 version from github and manually installed it and its ok.

same issue.

seems to work in firefox, but not edge or chrome

Confirmed bug in Edge


[add-resource] New Theme

I would like to add my new theme to the Grav Repository.
Here are the project details: https://github.com/AkazieIT/grav-theme-akazie-wood

Added to GPM for next update


Add global panic interceptor

In some apps, panics carry meaningful information and should be nicely reported on exit. User, of course, always has the option to defer a recovery block in the Action call back. However, in applications with many sub-commands and, correspondingly, Action call backs this results in excessive proliferation of the boilerplate code.
Considering that mov.cli already has some panic handling mechanics, may it be possible to add a global call back to an App object, which will receive, as its argument, a panic value propagating from whatever invoked subcommand and will have an option to either handle the panic or let it propagate further (by returning a bool value, perhaps)?

Hi @oakad.
Wouldn't the usual panic recovery technic be enough ?
defer func() {
	if r := recover(); r != nil {
		fmt.Printf("recovered: %s\n", r)
	}
}()
app.Run(os.Args)

The problem is with reporting.
Presently, mow.cli adds several stack frames on top of the propagating panic stack trace. This pollutes the logs and adds extra effort to troubleshooting (instead of problematic stack frame being somewhere near the top of the dump it is covered by meaningless mow.cli frames).
Consider the below example - the actual error I would like to see on top (exception.OnError) is burried below 5 frames of mow.cli stuff. If it was possible to somehow extract the object propagated by panic and its stack trace before mow.cli adds those frames the ergonomics of application troubleshooting will be considerably improved.
It may not sound like much, but those extra frames really make all the errors look the same and are very annoying.

xx/vendor/github.com/jawher/mow%2ecli.(*step).run(0xc0422024e0, 0x9dc440, 0xc042206270)
/yy/src/xx/vendor/github.com/jawher/mow.cli/flow.go:28 +0xdd
xx/vendor/github.com/jawher/mow%2ecli.(*step).run(0xc042202540, 0x9dc440, 0xc042206270)
/yy/src/xx/vendor/github.com/jawher/mow.cli/flow.go:20 +0xc5
xx/vendor/github.com/jawher/mow%2ecli.(*step).run(0xc042202630, 0x9dc440, 0xc042206270)
/yy/src/xx/vendor/github.com/jawher/mow.cli/flow.go:20 +0xc5
xx/vendor/github.com/jawher/mow%2ecli.(*step).run(0xc042202c90, 0x9dc440, 0xc042206270)
/yy/src/xx/vendor/github.com/jawher/mow.cli/flow.go:20 +0xc5
xx/vendor/github.com/jawher/mow%2ecli.(*step).callDo.func1(0xc042202cc0, 0x0, 0x0)
/yy/src/xx/vendor/github.com/jawher/mow.cli/flow.go:41 +0x53
panic(0x9dc440, 0xc042206270)
D:/Go/src/runtime/panic.go:505 +0x237
xx/loadtest/lib/exception.OnError(0xb5c360, 0xc04207a510)

I understand.
I'll need to think a bit on how to go about implementing this: If I want want to keep the original panic stack, I'll have to find another way to implement the before/after execution flow without using recover().


How to render Time (datavalue type)

The Time datavalue type has "precision", which affects how the time is interpreted or rendered.
The following example is taken from the comments in qwikidata/datavalue.py
That is, 1988-07-13T00:00:00 with
      precision 8 (decade) will be interpreted as 198?-??-?? and rendered as "1980s".

However, the Time class does not seem to have a method to render the time value in such way according to its precision. The __str__() method simply prints the precision, while the get_parsed_datetime_dict() method ignores the precision.
Am I missing anything? Thanks.

I don't think you are missing anything, but maybe this will help clarify ... the comments in the code are taken from the Wikidata description of the fields so the "render" there refers to Wikidata's rendering of that information not qwikidata's rendering.  You are correct in your understanding that qwikidata does not provide a way to do this rendering but does provide access to the precision data.
The relevant Wikidata docs are,

https://www.wikidata.org/wiki/Help:Dates
https://www.mediawiki.org/wiki/Wikibase/DataModel/JSON#time

By looking at the talk page, it appears that there has been some discussion and editing since I wrote these qwikidata docs,
https://www.mediawiki.org/wiki/Talk:Wikibase/DataModel/JSON (in the "Disputed interpretation" section).  If you come up with a string rendering that incorporates precision that you are happy with, I'm happy to take a look at a pull request.
best,
-G


Feature request: Adding mission currencies (ZMW)

Hi, Love you app!
Would it be possible to add ZMW to the list of supported currencies? Not sure if any other currency are missing.
Have checked that ZMW is supported by openexchangerates.org.
But thanks for a sweet app! Use it a lot through Alfred.

Just did some more testing and these are the currencies that do not work. These currencies are supported by https://oxr.readme.io/docs/supported-currencies
Hope that helps, some of them are working with capital-letters
BYR | Belarusian Ruble (pre-2016)
CNH | Chinese Yuan (Offshore)
CUC | Cuban Convertible Peso
CUP | Cuban Peso [capitals works]
EEK | Estonian Kroon
GGP | Guernsey Pound
IMP | Manx pound
JEP | Jersey Pound
KMF | Comorian Franc [capitals works]
MRU | Mauritanian Ouguiya
STN | São Tomé and Príncipe Dobra
UZS | Uzbekistan Som [capitals works]
XAG | Silver (troy ounce)
XAU | Gold (troy ounce)
XDR | Special Drawing Rights
XPD | Palladium Ounce
XPT | Platinum Ounce
ZMK | Zambian Kwacha (pre-2013)
ZMW | Zambian Kwacha [capitals works]


Hover option in the footer categories section

Description

Category

[ ] Documentation
[ ] Resource Addition
[ ] Codebase
[ ] User Interface
[ x] Feature Request

Related Issue

This pullrequest resolves the Issue 241 raised by thesri under jwoc 2024
Fixes #XX
Checklist

[x ] I have gone through the CONTRIBUTING guide
[] The name of the resource is spelled correctly (if applicable)
[ ] The link to the resource is working (if applicable)
[x] The resource is added in the correct format (if applicable)
[x] I have tested changes on my local computer (if applicable)

The hover color looks good. Just remove 'text-decoration: underline' from all pages.

The hover color looks good. Just remove 'text-decoration: underline' from all pages.

okay


trying to use charba in GWT Elemento

Hi
I am trying to use charba in GWT Elemento , https://github.com/hal/elemento
but they are not using widgets , where as charba is working lke this
BarChart chart = new BarChart();
is there a way i can get element to use in elemento and no the widget

@junaidp I have to say that I don't know Elemento. Apologize.
Nevertheless a Charba chart is a widget with 1 root element (DIV) which contains all needed element.
I have seen that there is an helper which can transform a widget into a element.
I think the following code should work:
BarChart chart = new BarChart();
// configure the chart programmatically
....
HTMLElement elementoElement = Widgets.asElement(chart);
// add it wherever you want

Let me know if works.

@stockiNail Thank You for the guide , yeah you correct ,
I just made a simple Label widget and did like this and it displayed ..
BUT , if i put the chart in same way , it just giving  nothing (an empty canvas only)
(then i also try to show the chart in a POPUP and it Displayed fine )
             BarChart chart = new BarChart();
	chart.getOptions().setResponsive(true);
	chart.getOptions().getLegend().setPosition( Position.top);
	chart.getOptions().getTitle().setDisplay(true);
	chart.getOptions().getTitle().setText("Charba Bar Chart3");

	BarDataset dataset1 = chart.newDataset();
	dataset1.setLabel("-");

	IsColor color1 = Colors.ALL[0];

	dataset1.setBackgroundColor(color1.alpha(0.2));
	dataset1.setBorderColor(color1);

	dataset1.setData(getFixedDigits(months));

	chart.getData().setLabels(getLabels());
	chart.getData().setDatasets(dataset1);

	element = Widgets.asElement( chart );

	//Label lbl = new Label("test");
	//element = Widgets.asElement( lbl );
	//PopupPanel pop = new PopupPanel(  );
	//pop.setWidget( chart );  CHART DISPLAYED IN POPUP
	//pop.center();

@junaidp I used your code (adding the size of popup panel), having a button to show the popup and one to hide it (if showing) :
PopupPanel pop = new PopupPanel();

@UiHandler("showPopup")
protected void handleShowPopup(ClickEvent event) {
    BarChart chart = new BarChart();
	chart.getOptions().setResponsive(true);
	chart.getOptions().getLegend().setPosition(Position.top);
	chart.getOptions().getTitle().setDisplay(true);
	chart.getOptions().getTitle().setText("Charba Bar Chart3");

	BarDataset dataset1 = chart.newDataset();
	dataset1.setLabel("-");

	IsColor color1 = Colors.ALL[0];
	dataset1.setBackgroundColor(color1.alpha(0.2));
	dataset1.setBorderColor(color1);

	dataset1.setData(getFixedDigits(months));

	chart.getData().setLabels(getLabels());
	chart.getData().setDatasets(dataset1);
	pop.setWidget(chart);
	//
	// added size
	//

	pop.setPixelSize(600, 300);

	//
	// or in alternative
	// chart.setPixelSize(600, 300);
	//

	pop.center();
}

@UiHandler("hidePopup")
protected void handleHidePopup(ClickEvent event) {
	if (pop.isShowing()) {
		pop.hide();
	}
}

Here is the result:

About the usage by elements, be aware that Charba is drawing (by default) the chart by onAttach method and destroy it by onDetach (GWT Widget methods).
If these methods are not called for whatever reason, you should perform the drawing (and destroying) of the chart programmatically, by chart.draw() (and chart.destroy).

thanks , yeah in popup , i was also having the chart , the problem was in that element for GWT elemento , but let me try this chart.draw() .. and will update you

but is it possible that I use charba without having the widgets ? , We started with charba because of its jsinterop feature, i assumed That i will be able to use Jsinterop in charba to get the javascript charts and display (without dealing with Widgets)
but now as i understand , the JSinterop is Only Used to convert the JS charts into widgets , so that Users(like me) can simply use that widgets in our GWT app..
but may be i can access somehow directly the javascript behind the charba charts to display as elements in app
may be :  If i can try to refactor a bit the charba lib to try to decouple the charts from the widgets

but is it possible that I use charba without having the widgets ?

The ONLY widget used in Charba is SimplePanel and Canvas

We started with charba because of its jsinterop feature, i assumed That i will be able to use Jsinterop in charba to get the javascript charts and display (without dealing with Widgets)
but now as i understand , the JSinterop is Only Used to convert the JS charts into widgets , so that Users(like me) can simply use that widgets in our GWT app.

JSInterop is a way to map javascript objects in Java ones. There is not any relation with GWT Widgets or elements.  Charba doesn't map ONLY the CHART.JS javascript but implements a set of java functionalities to use it easily (or at least I think so...), in java style.

but may be i can access somehow directly the javascript behind the charba charts to display as elements in app
may be : If i can try to refactor a bit the charba lib to try to decouple the charts from the widgets

If you agree I can try to do some tests using DOM elements and let me back to you with further info. I n my opinion it should work as well.

right , Yeah DOM elements would be a good approach  , Yes please if you can test and come up with some thing , let me know.
thanks

@junaidp I had a look to Elemento and honestly in my opinion it does not make sense to decouple Charba and chart javascript because you can use Charba inside Elemento without any issue or refactoring.
Said that, I've created a sample GWT application with Elemento (0.9.0 for GWT2) and Charba (2.0).
I've created 2 classes. EntryPoint:
public class Main implements EntryPoint {

    @Override
    public void onModuleLoad() {
        ChartElement application = new ChartElement();

        Elements.body().add(application);

    }
}

And my element with chart instance, adding the observer for onAttach and onDetach:
class ChartElement implements IsElement<HTMLElement> {

    private final HTMLElement root;

    ChartElement() {

	BarChart chart = new BarChart();
	chart.getOptions().setResponsive(true);
	chart.getOptions().getLegend().setPosition(Position.top);
	chart.getOptions().getTitle().setDisplay(true);
	chart.getOptions().getTitle().setText("Charba Bar Chart3");

	BarDataset dataset1 = chart.newDataset();
	dataset1.setLabel("-");

	dataset1.setBackgroundColor(HtmlColor.Blue.alpha(0.2));
	dataset1.setBorderColor(HtmlColor.Blue);

	dataset1.setData(10, 45, 50, 25, 30, 5);

	chart.getData().setLabels("1","2","3","4","5","6");
	chart.getData().setDatasets(dataset1);

	chart.setPixelSize(600, 300);

        this.root = div().add(Widgets.element(chart)).get();

        Elements.onAttach(root, new ObserverCallback() {

			@Override
			public void onObserved(MutationRecord mutationRecord) {
				chart.draw();
			}
		});
         Elements.onDetach(root, new ObserverCallback() {

			@Override
			public void onObserved(MutationRecord mutationRecord) {
				chart.destroy();
			}
		});
    }

    @Override
    public HTMLElement element() {
        return root;
    }
}

This is the result:

As you can see, it works perfectly!!

perfect , thank you , mainly this chart.draw thing was missing ,
I used your code and yes , its working!
Thank you very much .

@junaidp Very good! The previous code wasn't so clean! For instance, you don't need the root element (as DIV) because this ChartElement can return directly the Charba one.
The following code is more cleaner (and maybe it could be a starting point to become an GWT Elemento abstract wrapper of Charba charts):
class ChartElement implements IsElement<HTMLElement> {

	private final HTMLElement chartElement;

	ChartElement() {

		BarChart chart = new BarChart();
		chart.getOptions().setResponsive(true);
		chart.getOptions().getLegend().setPosition(Position.top);
		chart.getOptions().getTitle().setDisplay(true);
		chart.getOptions().getTitle().setText("Charba Bar Chart3");

		BarDataset dataset1 = chart.newDataset();
		dataset1.setLabel("-");

		dataset1.setBackgroundColor(HtmlColor.Blue.alpha(0.2));
		dataset1.setBorderColor(HtmlColor.Blue);

		dataset1.setData(10, 45, 50, 25, 30, 5);

		chart.getData().setLabels("1", "2", "3", "4", "5", "6");
		chart.getData().setDatasets(dataset1);

		chart.setPixelSize(600, 300);

		this.chartElement = Widgets.element(chart);

		Elements.onAttach(chartElement, new ObserverCallback() {

			@Override
			public void onObserved(MutationRecord mutationRecord) {
				chart.draw();
			}
		});
		Elements.onDetach(chartElement, new ObserverCallback() {

			@Override
			public void onObserved(MutationRecord mutationRecord) {
				chart.destroy();
			}
		});
	}

	@Override
	public HTMLElement element() {
		return chartElement;
	}
}

correct, thanks

If you don't want to create "wrappers" of chart instance, you can also "extend" charts. In the version 2.0 all charts classes are not final. This is the example for BAR chart. You should create all elements for charts classes of Charba (LineChartElement, PieChartElement, ...).
public class BarChartElement extends BarChart implements IsElement<HTMLElement> {

	private final HTMLElement chartElement;

	BarChartElement() {

		super();

		this.chartElement = Widgets.element(this);

		Elements.onAttach(chartElement, new ObserverCallback() {

			@Override
			public void onObserved(MutationRecord mutationRecord) {
				draw();
			}
		});
		Elements.onDetach(chartElement, new ObserverCallback() {

			@Override
			public void onObserved(MutationRecord mutationRecord) {
				destroy();
			}
		});
	}

	@Override
	public HTMLElement element() {
		return chartElement;
	}
}

@junaidp this is better than previous sample because you invoke onAttach and onDetach methods of chart instead of draw and destroy. In this way, you can follow the right logic of a Charba chart.
class BarChartElement extends BarChart implements IsElement<HTMLElement> {

	private final HTMLElement chartElement;

	BarChartElement() {

		super();

		this.chartElement = Widgets.element(this);

		Elements.onAttach(chartElement, new ObserverCallback() {

			@Override
			public void onObserved(MutationRecord mutationRecord) {
				onAttach();
			}
		});
		Elements.onDetach(chartElement, new ObserverCallback() {

			@Override
			public void onObserved(MutationRecord mutationRecord) {
				onDetach();
			}
		});
	}

	@Override
	public HTMLElement element() {
		return chartElement;
	}
}

ah thats nice  , thanks

@junaidp we are going to new version of Charaba and reviewing this issue, about the integration with GWT Elemento, I'd like to ask you if are you still interested in using Charba?
If yes, we could prepare all available charts for GWT Elemento in order you don't have to maintain that code, starting from above code.
What do you think?

@stockiNail Thanks for this. I am experimenting with domino and got my pie chart working with this. I still need to figure out the PieceLabels since the change to version 2, but I see there is some mention in the wiki.

@ruzkant Very good!
Since vesion 2.1, the CHART.JS plugin LABELS (former PieceLabels) is provided as Charba extension that means that is available without any injection of javascript or configuration classes. All possible configurations are supported (callbacks included).
Here is the wiki page how to use it.
Here is the source code of pie chart with Labels plugin (from Showcase).
Let me also say that I don't know if that Labels plugin is still maintained because last commit was on Dec 9, 2018.
Since the same version when Labels plugin was embedded, there is another embedded plugin, Datalabels that is well maintained by Chart.JS community and fully supported in Charba.
Here is the source code of doughnut chart with DataLabels plugin (from Showcase).
To see more use cases, you can go to Charba Showcase --> Extensions --> Datalabels plugin (Labels plugin use cases are located there)

@stockiNail Thanks for the info I'll have a look

@stockiNail Thanks! Datalabels plugin working well for my pie chart...

@junaidp @ruzkant FYI if you would like, have a llok to issue #53.
Finally we are providing Charba as J2CL and GWT library which can address the above observation about the integration with GWT Elemento and elemental2.
That means that you could use Charba by elements, without any widgets and dependency with GWT.
Better late than never.


404 for "sitemap.xml"

We get an error with http status code 404 whenever we navigate to /sitemap.xml. The sitemap is generated successfully. We host our solution in Azure and use Azure Front Door. When we use the url for the azurewebsite directly, the sitemap is shown, but with the incorrect host url.

Any news on this? I upgraded to 3.1.2 and it stopped working with this error.

Could you share how you configured your site URLs in the admin mode and your sitemap URL? Could you take a look at these unit tests to see if your scenario is covered? => https://github.com/Geta/SEO.Sitemaps/blob/master/test/Geta.SEO.Sitemaps.Tests/SitemapRepositoryTests.cs#L107

Not really anything special with the configuration. This is how I have it configured for local development.

What about your site URLs under managed websites (admin mode)? How is that configured.

Thanks, I'll try to reproduce this.

@JasonRodman I was able to reproduce the problem, thanks for reporting the bug.
I opened a pull request to solve this problem: https://github.com/Geta/SEO.Sitemaps/pull/133
Once it's reviewed and merged I'll submit the package to Episerver so they can publish a new version of the package.

Version 3.1.4 is submitted to Episerver for review.


Move to elasticsearch with heatmap support

[x] Test heatmap works via api
[x] Test heatmap in OL3
[ ] Fix tests

@JorgeMartinezG to fix tests you will first have to uncomment them. I believe @panchicore commented them all I but I am not sure why.

Travis tests won't pass because this version of elasticsearch has permission issues when the docker image is run on Linux environments. I tested in Ubuntu 16.04 with this ouput.
elasticsearch_1     | ERROR: bootstrap checks failed
elasticsearch_1     | max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
elasticsearch_1     | [2016-10-12T16:22:18,306][INFO ][o.e.n.Node               ] [h5-37br] stopping ...
elasticsearch_1     | 2016-10-12 16:22:18,315 pool-1-thread-1 ERROR Unable to unregister MBeans java.security.AccessControlException: access denied ("javax.management.MBeanServerPermission" "createMBeanServer")
elasticsearch_1     | 	at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
elasticsearch_1     | 	at java.security.AccessController.checkPermission(AccessController.java:884)
elasticsearch_1     | 	at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
elasticsearch_1     | 	at java.lang.management.ManagementFactory.getPlatformMBeanServer(ManagementFactory.java:465)
elasticsearch_1     | 	at org.apache.logging.log4j.core.jmx.Server.unregisterLoggerContext(Server.java:246)
elasticsearch_1     | 	at org.apache.logging.log4j.core.LoggerContext.stop(LoggerContext.java:300)
elasticsearch_1     | 	at org.apache.logging.log4j.core.LoggerContext$1.run(LoggerContext.java:265)
elasticsearch_1     | 	at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry$RegisteredCancellable.run(DefaultShutdownCallbackRegistry.java:102)
elasticsearch_1     | 	at org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry.run(DefaultShutdownCallbackRegistry.java:72)
elasticsearch_1     | 	at java.lang.Thread.run(Thread.java:745)
elasticsearch_1     |
elasticsearch_1     |
elasticsearch_1     | Exception: java.security.AccessControlException thrown from the UncaughtExceptionHandler in thread "Thread-2"

Checking in the forums....they recommend to grant permissions. Any thoughts? @ingenieroariel @sstults

Can you run the tests with the official 5.0.0 image [0] and then use that Dockerfile as the basis for this one? [1]
[0] https://github.com/docker-library/elasticsearch/blob/master/5.0/Dockerfile
[1] Switch to the following image: elasticsearch:5.0.0-rc1 from https://hub.docker.com/_/elasticsearch/

It's a good idea. However, that elasticsearch version won't have the gridlevel support, because the current dockerfile pulls from this repo:
https://github.com/sstults/elasticsearch/

Right - what I mean is building that elastic search exactly like the official one. Or using the official one and then just replacing the artifacts with ones compiled from the branch

Virtual memory map area in Linux, comes with a small value. This causes elasticsearch to stop execution on its container, making travis fail. Fix is already sent in PR with tests passed
https://github.com/cga-harvard/HHypermap/pull/231

Heatmap test is failing executing one assertion. The test was created to assert if a returning value is None. However, in solr, the returned value is an empty list. For elasticsearch, is a list of empty lists.
https://github.com/cga-harvard/HHypermap/blob/issue_230/hypermap/search_api/tests.py#L346

ES_JAVA_OPTS="-Xms512m -Xmx512m" ./elasticsearch/bin Solves the problem for me

@JorgeMartinezG @ingenieroariel can this be closed?


isDirty is true after save()?

Not sure if this is by design or not, but after updating a belongsTo relationship and calling save() on the model, the isDirty property is still set to true after successful request, unlike the default Ember behavior with hasDirtyAttributes.
Is there a method that needs to be called manually to use the new state as a "clean" state? I tried with saveChanges() on successful save, but to no effect.

that is good question .. your using the isDirty computed property .. hmmm .. let me round up the tests and see if I can duplicate that ( and fix it )

Updated the package, didn't notice any change. Here's my code:
// organizationUser model
export default DS.Model.extend({
    changeTracker: { enableIsDirty: true },
    isAdministrative: DS.attr('boolean'),
    organization: DS.belongsTo('organization'),
    user: DS.belongsTo('user')
});

// action that changes organization relationship on some organizationUser models
setOrganization(organization) {
    this.get('user.organizationUsers').forEach(function(organizationUser) {
        organizationUser.startTrack();
        organizationUser.set('organization', organization);
    });
}

// line in task that saves all dirty organizationUser models
yield user.get('organizationUsers').filterBy('isDirty').invoke('save');

The config you see in model is the only config present, so not using auto save and manually calling startTrack() before changing relationship.
isDirty behaves as expected before and after setOrganization executes, and only dirty models do get saved. But after invoking save() on all models models are still left with isDirty and hasDirtyRelationships set to true (observed via computed property for isDirty and Ember Inspector for hasDirtyRelationships).

ok .. fair enough.  I actually did not test for manual tracking like you are doing, so let me test for that and make sure it is working

ok .. try the latest 0.5.4 .. I can guarantee that this will fix the issue, if not reopen this

Thanks @danielspaniel for prompt replies and updates!
I can confirm it now works for my use case, but only if I manually call model.saveChanges() after invoking save on the model.
However, if I add auto: true to model configuration then the computed properties behave correctly after invoking save, without any manual calls.
Not sure if this still behaves as you intended for a non-auto approach, but it does solve my issue so I won't be reopening this.
Thanks again!

wait.
I tested this and if you are using v0.5.4 ( the very latest )
you should NOT have to call model.saveChanges()
after save.
In the code I check to see if you are using enableIsDirty:true
and if so the computed properties are reset
If you have to call this manually ( saveChanges ) then something is wrong ..
and I should fix it.

Ok, I tested again without auto: true and calling just startTrack() and it works. Didn't have to call saveChanges(). Not sure what I did to not make it work the first time, but I now double checked and it looks good.

great .. glad to hear .. thanks for confirming!
On Wednesday, March 29, 2017 9:57 PM, Martin Vrkljan<EMAIL_ADDRESS>wrote:

Ok, I tested again without auto: true and calling just startTrack() and it works. Didn't have to call saveChanges(). Not sure what I did to not make it work the first time, but I now double checked and it looks good.—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


Can you add a feature for repeating alarms on the same day? For example, you want to repeat on every Monday only.

I want to do a repeat alarm for every Monday, can you add that feature? For the last updated version, when the alarm has sounded, the schedule is lost.

Duplicated #47


Filter VMs step of wizard: revisit unintuitive VM count badges in tree view

See comment here: https://github.com/konveyor/forklift-ui/pull/675#discussion_r675110043
The numbers of VMs in the badges we show in the tree represent the count of ALL VMs from any selected descendants of that node, which means any direct VM children count towards the numbers on all their ancestors. This weird accumulation makes it seem like the math is wrong: you'll get 5 total VMs when you have two badges that say 5; at first glance you'd think there were 10 VMs, but it's just the same 5 VMs represented at two depths.
Possible solutions include better descriptions on the labels/badges, only including badges on leaf nodes (where the VMs actually come from -- possibly have an exception for collapsed nodes?), or maybe even getting rid of the badges except the one on the root node.
cc @vconzola let's chat about this some time. Not at all a priority.

Related note: in the folder tree, nodes that can contain direct VM children but are not presented as leaf nodes are selectable even if all their children are deselected. This is a weird and inconsistent experience, but it's because there can be uncategorized VMs that don't fit it any of their children. Maybe we can display an "uncategorized" folder/node or something similar so every selectable node is presented as a leaf.

@mturley I thought we discussed this ad nauseum a while ago and came up with a solution we agreed to? What's changed? No need to discuss now. Let's talk about it when you're ready to work on this issue.

Yeah, we did. I just toured all this code with Spaxman and tried to explain it all and he raised the same questions :) maybe we can just call it done. I guess I didn't do a great job explaining the reasoning behind the decisions.

Sorry bout that - just a new guy asking old questions 😅

There was never going to be a perfect solution, I think we just got tired of discussing it and landed on something that was good enough for 2.0 😆


Drop Python 2 support

Does anyone mind if we do that?

We could. Projects using this library will most likely be new and started using Python 3, so dropping 2 wouldn't affect much users. Do you want to make a pull request for it.

Ok so for now we have only one branch for python 2 (dict.items vs iteritems) and dropping it isn't worth it but being open to this decision is good and when it gets more complicated we can do it.

Is this done?

I didn't actively drop python 2 support but I also might have introduced some python 3 code unknowingly, if we actively want to drop this we can put an assert somewhere and clean up the little Python 2 code which is around to give people a good reason not to start writing their bot in python 2.

Oh no...
I'm ready to use your chatbot for my python2.7 project.
I will tell you if i'm encountering any problem in the integration.
Elsewhere i will try to port my big django project in python 3+

Alright well let's try to keep Python 2 instead!

Thanks, i hope i will help you quickly :D


TrustyAI Service Client

Goal
Create a rest client to simplify sending / receiving data to the TrustyAI service
Dependency issue

#1001
#1151

Itemized goals

Create a rest client for the TrustyAI service
Create type definitions for Trusty request / response data
Update existing phase 0 work to use new type definitions

Aspects continued elsewhere
No response
Mocks
No mocks, non-visual feature
Linked TrustyAI issues:

RHODS-8824 - Add endpoint to list all metrics requests

PR: https://github.com/trustyai-explainability/trustyai-explainability/pull/181

RHODS-8871 - Remove redundant type hints from metric requests

I've asked the TrustyAI team to look into removing unnecessary type hints  that are required when submitting scheduled metric requests to their service in order to simplify the code needed for the frontend:
Tracking: https://issues.redhat.com/browse/RHODS-8871

The TrustyAI team have raised a PR for RHODS-8871 here: https://github.com/trustyai-explainability/trustyai-explainability/pull/186
Once this has been merged, I'll update the API facing code covered in this issue.


Update WASM retrieval tutorial JavaScript code

I had to derive this bit when helping someone in https://github.com/stellar/js-soroban-client/issues/166 and realized that there was some unnecessary verbosity in this code. To summarize:

bodyType isn't a thing anymore
hex contract IDs aren't a thing anymore
the ScContractInstance can be parsed out of the fetched LedgerEntryData directly
the wasmHash is part of the instance, no need to recreate it

Preview is available here:http://soroban-docs-pr627.previews.kube001.services.stellar-ops.com/


Adds Authors and Tags to CFGOV Model and to the import-data script for Events

This adds the tags and authors members to the CFGOVPage for use in the Promote panel of all page models that inherit from CFGOVPage. It also adds them in the Event's import-data script.
This is so we can set up the filterable list in the view logic for the Event template logic conversion for this sprints' hypotheses.
Test
Run the import-data command for events to see if they convert the tags and authors correctly. Note, there's only one author of these events.
@kave
@rosskarchner

:+1:

:+1:


Suppport readyState in renderFectched callback

https://facebook.github.io/relay/docs/guides-root-container.html#force-fetching
<Relay.RootContainer
  Component={ProfilePicture}
  route={profileRoute}
  forceFetch={true}
  renderFetched={function(data, readyState) {
    var isRefreshing = readyState.stale;
    return (
      <ScrollView>
        <Spinner style={{display: isRefreshing ? 'block' : 'none' }}
        <ProfilePicture {...data} />
      </ScrollView>
    );
  }}
/>

+1

What should this mean/do without forceFetch support?

@taion  Will forceFetch be removed in futrue release of relay ?

No, the issue is that react-router-relay does not currently support forceFetch.


fix: options behaviour in findAPortNotInUse and findAPortInUse

@laggingreflex
Include:

Fix options behaviour in findAPortNotInUse and findAPortInUse
Improve tests and increase coverage (99.07%)
Update async to latest (import perf)

@laggingreflex also i can rewrite tests using jest (in next PR), it is allow mocking and do tests more simple and stable

/cc @laggingreflex repo is abadoned?

I tested it on *nix and the tests are passing. I also tested against browser-sync whose tests are passing too. So this should be good to release.
Sorry about the delay again.

Merged, 2.2.0 released.


New Metadata

Please add the following tags: LABEL (recordLabel), TRACKTOTAL (trackCount), UPC (upc). Thank you in advance.

For the TRACKTOTAL (trackCount) tag, you can add this piece of code under the attributes object:
json_select "trackCount"
OutputTo "TOTALTRACKS"
SayNextNumber
Say "|"

You can place this code after the copyright code or anywhere in this area. I chose not to put this code in the Apple Music script because the number that it gets doesn't account for when an album has multiple discs, unlike the iTunes Store script.
For the LABEL (recordLabel) and UPC (upc) tags, I don't think it's possible to get the metadata for them. You could go to the forum page on Mp3tag Community and ask people there if it's possible to get these tags using the Apple Music API.

Oops, I take that back.
Record Label Code:
json_select "recordLabel"
OutputTo "LABEL"
SayRest
Say "|"

UPC Code:
json_select "upc"
OutputTo "UPC"
SayRest
Say "|"

I'll add all three of these codes in the Apple Music script, but I'll comment them out. You'll have to remove the # symbols if you want to use these codes.


Working towards a more reproductible release process

@ianrrees and I have recently had multiple conversations about the CI/CD pipeline, more specifically about the way we release crates. There are a few things we want to improve. Not everything has to be addressed immediately, but I wanted to document it here before it gets lost in the Matrix sauce.

The first thing is that we are currently publishing BSPs is in batches. ie, we try to shotgun-publish all BSPs at once, and just ignore the ones which already are published in crates.io. This obviously isn't great. The BSP publishing process should go according to these rules:

Tier 1 BSPs should all be published together
Since the BSPs reexport atsamd-hal, any release of the HAL should trigger a re-release of the Tier 1 BSPs with the same bump level (patch, minor or major).
Tier 2 BSPs should be published individually (or through a user-provided list of crates to publish)
Ideally, we'd like to reuse the "publish an individual crate" script and simply pass it a list of BSPs to cover all use cases

Tier 1 BSPs specify a path dependency. However, their crates.io published counterparts use the crates.io version of the HAL. Therefore we'd like to test build the BSPs against the crates.io atsamd-hal version before publishing them. Turns out this is somewhat tricky as there's no nice way to tell Cargo to ignore path dependencies through CLI options, so we'd need to mess with the crates' Cargo.toml using sed or something similar.

Closed via #762.


error due to animation.setUpAnimation()

My app crash because of that function(EXC_BAD_ACCESS):
animation.setUpAnimation(in: layer, size: animationRect.size, color: color);
in NVActivityIndicatorView.swift line 456.
No logs.

Found solution: REMOVE first uppercase of type names.

Finally, it doesn't solve the problem...

@stealdre: Could you provide more context of usage? (like code snippet, where using it). Since the example going the library is still working fine, the problem perhaps caused by other reason.

I tried to use it with both ways: storyboard and code. I created a view (50px50px) with the class NVActivityIndicatorView in the storyboard and with animation type and color. Then I start animating with:activityIndicatorView.startAnimating() and stop with activityIndicatorView.stopAnimating(). Not working. I also tried with the second way: code. I created a view with: NVActivityIndicatorView(frame: frame, type: type, color: color, padding: padding): not working. Same error for both ways: it makes crash the app. Then I tried the UI blocker  which works perfectly. I did what is written in your Usage guide.

@stealdre: How about the following simplest use?
let aiView = NVActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))

aiView.color = .black
aiView.startAnimating()
view.addSubview(aiView)

This is working, try to update your guide.

@stealdre: What's your suggestion for the better guide? PR is welcome.

Try first to create a guide that work! The current guide is not working like I said. I did exactly what it says. Then u give me a more easy way that works. Why not put this way in your guide?

Hope people understand this...

no its not, absolutely doesn't work, can't you just make it work without providing the frame? too much hassle, I tried other framework, work out of the box unlike this one


ValueError: Only callable can be used as callback in DataFrame Creation

I encountered an issue when attempting to execute the code due to a "ValueError: Only callable can be used as a callback" error in the "parser.py" file at line number 28. Specifically, the problem arose when I tried to create a DataFrame using the pandas library with the provided column names. Here is the code snippet that triggered the error:
df = pd.DataFrame(columns=[DATASET, ORIGIN, PAIR_ID, ID1, ID2, TEXT1, TEXT2, PARAPHRASE, PARAPHRASE_TYPE, SPLIT])

I kindly request your assistance in resolving this issue.

Hello. I can not reproduce the issue.
Do you have the correct pandas version installed? (1.4.2)
Ideally, please do a fresh install of the dependencies using the requirements.txt file and completely restart your python session.


Fixed Conv1D deprecated arguments

Fixed

Updated deprecated data_format in Conv1D from {NCHW, NHWC}, to {NCW, NWC} to fit the new tensorflow api

We need to stay compatible with the old behavior.

(Basically, we shouldn't break people who are using a slightly older TF version)

So I'm looking deeper into the code and I'm wondering if this function is ever called in when calling K.conv1d?
https://github.com/keras-team/keras/blob/24e7ac0756aeba06ce1cf7f7e72219a11b14b101/keras/backend/tensorflow_backend.py#L3398-L3439
So it seems that K.conv1d is using the new API, however, I am still getting a warning from tensorflow which is warning that data_format is using the old api.
WARNING:tensorflow:From /usr/local/lib/python2.7/site-packages/tensorflow/python/util/deprecation.py:497: calling conv1d (from tensorflow.python.ops.nn_ops) with data_format=NHWC is deprecated and will be removed in a future version.
Instructions for updating:
`NHWC` for data_format is deprecated, use `NWC` instead

I am currently running Keras 2.1.4 and Tensorflow 1.7.0

Thank you for the PR @jjangsangy. The _preprocess_conv1d_input is used for calling tf.nn.separable_conv2d in `separable_conv1d. It is correct not to modify. When does the warning occur exactly?

Oh that is interesting. I'm training a mobilenet model which uses tf.nn.separable_conv2d

@jjangsangy, The MobileNet and the MobileNetV2 don't call K.conv1d. It is hard to know why you got such a warning.

I've actually had to fix this in a recent commit (while adding support for the data_format argument in Conv1D. Regardless, thanks for the PR!


Fix warning: BOOST_CLANG is not defined, evaluates to 0

The diagnostic is issued when compiled with GCC/clang flag -Wundef.
Although in case BOOST_CLANG is not defined, ie. is not a macro and BOOST_CLANG identifier is considered to be zero, the #ifdef directive makes the intention clearer.

Wouldn't
#if defined(BOOST_CLANG) && (BOOST_CLANG == 1)

be safer? I updated the branch topic/PR-151-BOOST_CLANG-define accordingly.

Or, BOOST_CLANG != 0. Sure, why not.

Merged to next.

Thanks, merged to develop

Thanks!


Proof request template updater (v1)

Description of feature / user story
Currently, BC Wallet needs to be deployed every time a new use case using the mobile verifier requires a different proof request. This is not scaleable.
As a developer, I want to update the proof request templates without having to deploy the wallet so that use cases are not delayed until a release is available
NOT IN SCOPE
As a verifier, I want to be able to create my own templates so that I don't need to rely on a different team/organizations to create my templates and I have more control.
Acceptance Criteria

proof request templates can be updated and accessed in BC Wallet without having to release a new version

Wireframes or relevant image assets / links

Proof request templates can now be updated from a github branch


Add java.time.Period encoder/decoder

Current coverage is 82.73% (diff: 100%)

Merging #550 into master will increase coverage by 0.06%

@@             master       #550   diff @@
==========================================
  Files            72         72
  Lines          1997       2004     +7
  Methods        1849       1856     +7
  Messages          0          0
  Branches        147        147
==========================================
+ Hits           1651       1658     +7
  Misses          346        346
  Partials          0          0

Powered by Codecov. Last update 9371cb8...6d8c8da

👍, thanks @cakper! Unfortunately one of the drawbacks of the new TimeInstances trait is that we can't add methods without breaking binary compatibility, so this will have to wait for 0.8.0.

@travisbrown sure, no worries - I've included this code in my project for now anyway, so it's not a blocker :)


Feature/add use voucher send email

@abbesBenayache can you add sendEmail({useVoucher: true}) test cases?

@abbesBenayache can you add sendEmail({useVoucher: true}) test cases?

@PierreJeanjacquot , you can find them in the test file [tests/e2e/sendEmail.test.ts] at lines [438, 472, 516, 560, 601]. let me know if you need any further changes or additional test cases. 😊


Use release actual state instead of CR state

Towards https://github.com/giantswarm/giantswarm/issues/4326

@giantswarm/team-batman i'm gonna need a pointer on how to deploy this. just merge? just merge and update the chart version? another thing?

Please check my comment here https://github.com/giantswarm/giantswarm/issues/4326#issuecomment-440343977

This looks like it should start to make use of the exporterkit collector set.

@kopiczko answered in the main issue. we can discuss there if needed.
@xh3b4sd totally agree. it's in the refactoring list (https://github.com/giantswarm/giantswarm/issues/4462), and I'm happy to take it next. i'm strapped for time this week, so I wanted to fix the PM first, before taking on that work.

Is this what we want? Everything that uses the tiller which chart-operator uses will be caught by this. That also means that at the very least on host cluster we will cover all deployments with this. It feels weird to me to have chart-operator report metrics on helm charts it doesn't manage.

Good comment from @MarcelMue. I understand reasoning in your comment in the issue @JosephSalisbury but I still would use ChartConfig status myself.

That's a good point, I forgot about chart-operator on the control plane. I'll have a think.

It could in theory also happen if a customer uses the tiller inside the giantswarm namespace in guest clusters. I don't think anyone does this currently though.


feat(storybook): add adapter for babel and webpack

Summary
Add babel and webpack adapter so storybook addon can be easier to use
Details

🤖 Generated by Copilot at fb9a072

Add support for storybook addons to the @modern-js/storybook-builder package (link, link, link, link)
Create a markdown file in the .changeset folder to document the new features (link)
Import PluginItem, applyOptionsChain, and logger from @modern-js/utils in core.ts (link)
Call addonAdapter function in getCompiler function to apply addon modifications to the builder configuration and options (link)
Define addonAdapter function in core.ts to merge babel plugins and overrides and apply webpack modifications from addons (link)
Add an empty line to core.ts for readability (link)

Related Issue

Checklist

[x] I have added changeset via pnpm run change.
[ ] I have updated the documentation.
[ ] I have added tests to cover my changes.

!canary

!canary


Does dynalite support TTL?

I couldn't figure this out by reading docs or scanning through the code, does dynalite support TimeToLiveSpecificaiton a.k.a. TTL ?

No, it doesn't

A PR for TTL support https://github.com/mhart/dynalite/pull/144


Remove sensitive logs, irrelevant info logs

remove some sensitive debug logs
convert non-essential info level to debug

needed for only specific/detailed debugging
non-meaningful logs

have checked all info, error, warn level logs. There is no other sensitive info logs. except for this, not sure if the sub field in jwt is very sensitive or not https://github.com/datakaveri/iudx-file-server/blob/7e94058e3387185aa131531292f4f4769f46b35b/src/main/java/iudx/file/server/databroker/DataBrokerVerticle.java#L126

sub field is just userid - needed to identify the user. and can be in info


Adding RAK Miner 2.0 - Error message

I have added my first RAK minter V2 to Helium network but two days later I have received the following error on the helium app.
Failed Transaction
Unable to Assert Location for Fast Syrup Goat for reason {Invalid, Insufficient_balance}
Please help what should I do to correct this issue.
Thanks,
Jey

This looks related to #1077
thanks for filing. we're going to close this and track this in the other issue.

@jselvanayagam looks like you got the location asserted, did it end up working for you or was there a work around?

Yes sir, I have to open the TCP port on my firewall, thank you.

My rak hotspot is saying it’s being Relayed, how can I fix it.

@jselvanayagam https://docs.helium.com/troubleshooting/network-troubleshooting/ if you just forwarded TCP port 44158 it may take some time to update the relayed status

Thank you, if I need to install an antenna what I have to do? Do I to have pay?  Please advise

Does anyone have any solutions for this?
I have a brand new Rak V2 hotspot, right out of the box. Trying to set it up. Every time I get "Unable to Add Hotspot Abundant Pewter Spider for reason: {invalid,insufficient_balance}" followed by "Unable to Assert Location for Abundant Pewter Spider for reason: {invalid,insufficient_balance}"
Tried 3 times, rebooting and power cycling. This is not second hand, straight from CalChip Connect.


Better method to append view information

If I understand correctly, the code currently append the view information at the end of the text prompt which is generally not good from my experience. Instead, I append it at the beginning like this "overhead view of a squirrel playing piano".
This is the result with the prompt "a squirrel playing piano, overheadview"

This is the result with the prompt "overheadview of a squirrel playing piano"

Also, in the paper author state that only when the angle of camera view less than 60 that they append overhead view. But in the code seem like you append it all the time ?

@thuanz123 Hi, thanks for the insight!

This is worth trying, but they also append something like "a DSLR photo of" before the prompt, maybe this also needs some tests.
I think no? you can check the get_view_direction function in provider.py, we assign a dir label to each camera pose, and overhead is only appended if thetas <= 30. (The angle notation is a little different, I used [0, 180] for the elevation where 0 is the top view...)

Ah OK thanks, I missed that piece of code. Close this issue then


CameraReadout.to_table is not FITS compatible

CameraReadout.to_table().write("readout.fits") creates a HIERARC keyword in the output FITS file, since the REF_WIDTH header is > 8 characters.  Suggest changing it to REFWIDTH.   Or we just deal with the strange data model (it's fine for other formats like HDF5 and ECSV, just not FITS).

Let's use REFWIDTH. I think it was meant to be fits compatible but miscounted, otherwise a more explicit name would have been appropriate.


(archlinux) build fails after commit 3b4c76a

After commit 3b4c76aa6f99275dbd625fc5050998d566117ee9 the build fails with this error.
[ 1172s] g++ -c -pipe -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -Wall -W -D_REENTRANT -fPIC -DPREFIX=QString\(\"/usr\"\) -DL_ETCDIR=QString\(\"/etc\"\) -DL_SHAREDIR=QString\(\"/usr/share\"\) -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_WIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../../core/libLumina -I/usr/include/qt -I/usr -I/usr/include -I/usr/src/packages/BUILD/lumina-desktop-git/src/lumina-desktop-git-20161231.fab6d29/src-qt5/desktop-utils/lumina-archiver -I/usr/include/qt/QtSvg -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtMultimedia -I/usr/include/qt/QtGui -I/usr/include/qt/QtConcurrent -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I. -I. -I/usr/lib/qt/mkspecs/linux-g++ -o imgDialog.o imgDialog.cpp
[ 1174s] imgDialog.cpp: In member function 'void imgDialog::getProcStatus()':
[ 1174s] imgDialog.cpp:136:31: error: 'SIGINFO' was not declared in this scope
[ 1174s]    if(BSD_signal){ ::kill(pid, SIGINFO); } //On BSD systems, the INFO signal is used to poke dd for status updates
[ 1174s]                                ^~~~~~~
[ 1175s] make[3]: *** [Makefile:536: imgDialog.o] Error 1

yea Linux doesnt have SIGINFO
I guess we could
#ifdef __Linux__ #ifdef __FreeBSD__
and then in the body
#ifdef __Linux__ ::kill(pid, SIGUSR1); #endif
#ifdef __FreeBSD__ ::kill(pid, SIGINFO); #endif
but I'll let Ken make the decision in on that.

Fixed!
Thanks for reporting this!
https://github.com/trueos/lumina/commit/9f98c7dcba441d9b9c9215b57bd67c28bc637652


Use ARM architecture to run Keycloak

Description
OpenShift with hosted control planes now supports ARM workers. Using such workers would be in-line with our company strategy.
Discussion
No response
Motivation
Save cloud costs both for us and our users
Details
No response

The following worked succcessfully:
Create an ARM worker pool:
rosa create machinepool -c gh-keycloak-a --instance-type m6g.4xlarge --max-replicas 10 --min-replicas 1 --name scaling-arm --enable-autoscaling --autorepair

Add a scheduling to the keycloak.yaml to start Keycloak on the ARM workers:
  scheduling:
    affinity:
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
            - matchExpressions:
                - key: kubernetes.io/arch
                  operator: In
                  values:
                    - arm64
      podAffinity:
        preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 10
            podAffinityTerm:
              labelSelector:
                matchLabels:
                  app: keycloak
                  app.kubernetes.io/component: server
                  app.kubernetes.io/instance: keycloak
                  app.kubernetes.io/managed-by: keycloak-operator
              topologyKey: topology.kubernetes.io/zone
      podAntiAffinity:
        preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 50
            podAffinityTerm:
              labelSelector:
                matchLabels:
                  app: keycloak
                  app.kubernetes.io/component: server
                  app.kubernetes.io/instance: keycloak
                  app.kubernetes.io/managed-by: keycloak-operator
              topologyKey: kubernetes.io/hostname

I might have needed to kill a previously running pod. After that Keycloak started on the ARM pod.
Next steps:

See what happens if we only have ARM workers in our cluster. Which services start? Do we then still need the schedule settings for Keycloak?
We are building the image with the JDBC driver for AWS. How can we build such an image for ARM? Maybe adding a node selector for the build might be required to force the node - if source-to-image supports that.  nodeSelector
    kubernetes.io/arch: arm64


Add myself to the CONTRIBUTORS file and fix a few issues.

I've added myself to the CONTRIBUTORS file and fixed a couple of issues I encountered when trying to run the unittests.
The first of these issues was that the blescan module was not correctly configured, and would display a bunch of mockito-related errors followed by errors caused by not being able to find the UriBeacon and ConfigUriBeacon classes.
The second unit test issue that failed was the assert that BluetoothLeScannerCompatProvider.getBluetoothLeScannerCompat(...) should return null if there is no ALARM_SERVICE available, which is not the case on my device with LOLLIPOP on it.

Hi!
The CLA should be signed for my company which is "Opera Software ASA".
Br,
Tommy
On Wed, Jun 17, 2015 at 2:06 PM, googlebot<EMAIL_ADDRESS>wrote:

Thanks for your pull request. It looks like this may be your first
contribution to a Google open source project, in which case you'll need to
sign a Contributor License Agreement (CLA).
[image: :memo:] Please visit https://cla.developers.google.com/
https://cla.developers.google.com/ to sign.
Once you've signed, please reply here (e.g. I signed it!) and we'll
verify. Thanks.

If you've already signed a CLA, it's possible we don't have your
GitHub username or you're using a different email address. Check your
existing CLA data https://cla.developers.google.com/clas and verify
that your email is set on your git commits
https://help.github.com/articles/setting-your-email-in-git/.
If you signed the CLA as a corporation, please let us know the
company's name.

—
Reply to this email directly or view it on GitHub
https://github.com/google/uribeacon/pull/248#issuecomment-112774115.

Thank you Tommy, we very much appreciate (and want) your contribution! We have the CLA for opera already, you are correct. The last step is that you need to go through the CLA but only in a very simple way, just do it and say that you are an employee of Opera. That should only take you a few seconds. That way we have on record that you are an opera employee.
Thanks again for the pull request!

Hi Scott, and thanks for the quick reply.
I'm not quite sure what it is I need to do, though. Do I need to go through the form at https://cla.developers.google.com/? There doesn't seem to be a "simple way" to do that -- only the difficult way, which involves selecting "You plan to submit contributions on behalf of: Your employer" and "You plan to submit contributions to: Any other Google project" and then filling out the form on the next page.
If that is indeed what I need to do, I'm probably able to do that, but then I need to figure out who exactly is the "Primary Point of Contact" and "Authorized Signer" for my company.

Sorry for the confusion. I'm not an expert on the cla, let me ask someone here and get back to you quickly

OK, there are two choices: 1) you can join as an individual or 2) as a member of Opera. It appears your contact is Daniel Bratell (Core Linköping Manager) if that makes things easier for you to sign up.

Thanks Scott! That's really helpful. It's getting late here now, but I will get this sorted out tomorrow.
Sent from my Samsung device
-------- Original message --------
From: scottjenson<EMAIL_ADDRESS>Date: 17/06/2015  20:56  (GMT+01:00)
To: google/uribeacon<EMAIL_ADDRESS>Cc: Tommy Thorsen<EMAIL_ADDRESS>Subject: Re: [uribeacon] Add myself to the CONTRIBUTORS file and fix a few
issues. (#248)
OK, there are two choices: 1) you can join as an individual or 2) as a member of Opera. It appears your contact is Daniel Bratell (Core Linköping Manager) if that makes things easier for you to sign up.
—
Reply to this email directly or view it on GitHub.

Seems the problem was that I was a bit too vigilant in trying to hide my email address from the evil spammers. I've rewritten the commits with my opera email address, and the bot seems a lot happier now.

So, if anyone has any comments or complaints about my changes, don't hesitate to let me know. I'm more than happy to change things around if they're not quite right.
I do actually have a few more (more interesting) changes sitting around, but since they sort of depend on these, I'm going to hold on to those until we have these ones sorted out.
Have a nice weekend!

Hi Tommy,
We have here an  Internet Of Things ("IoT") lab, and we are willing to be a test hub for your versions.
Kind regards,
Dr. Nissim Zur
Bluetooth Smart, IoT expert
http://www.elinistech.com/ CTO Elinistech
Tel          0544 500635
Tel          03 5716699
Skype      callto:nissim.test nissim.test
Follow     http://lnkd.in/TTnsGz Linkedin  http://lnkd.in/TTnsGz
Email<EMAIL_ADDRESS><EMAIL_ADDRESS>http://www.vitelix.com/ ViTELiX |   http://www.usbphone.com/ USBphone |  http://www.elinistech.com/ Elinistech
From: Tommy Thorsen<EMAIL_ADDRESS>Sent: Friday, June 26, 2015 2:08 PM
To: google/uribeacon
Subject: Re: [uribeacon] Add myself to the CONTRIBUTORS file and fix a few issues. (#248)
So, if anyone has any comments or complaints about my changes, don't hesitate to let me know. I'm more than happy to change things around if they're not quite right.
I do actually have a few more (more interesting) changes sitting around, but since they sort of depend on these, I'm going to hold on to those until we have these ones sorted out.
Have a nice weekend!
—
Reply to this email directly or view it on GitHub https://github.com/google/uribeacon/pull/248#issuecomment-115648748 .  https://github.com/notifications/beacon/ADgORwFDOwJWgcpWgkX_GM_cuwQZ2ROyks5oXSoZgaJpZM4FFSXL.gif

Hey. Sorry I haven't been able to look at your changes. I was waiting for the CLA to clear out. Thanks for the ping.

Looks good. Sorry for the delay.

And... wrong order. But it is now merged.


Some minor changes and fixes

Changes:

Fixes avalon containers getting a double underscore before CON suffix.
Ensure AVALON_CONTAINERS are always added to the global namespace, even when currently working inside a namespace.
Fix get_representation_path docstring
Fix an issue where cbloader would open without the silo tabs loaded correctly when use_context is True.
Fix #290
Add a descriptive header to creator tool, see:

For this descriptive header this Creator class is used:
class CreateSetDress(avalon.maya.Creator):
    """A grouped package of loaded content"""

    name = "setdress"
    label = "Set Dress"
    family = "colorbleed.setdress"
    icon = "cubes" # a font-awesome icon name

Note that the docstring will be added as the description label at the top. It's recommended therefore to keep the docstring short and concise.
Also note that some of these commits are currently already in avalon's core master branch, as such they won't be visual changes in the "file changes" overview in github. For example I believe this is already live: https://github.com/getavalon/core/pull/292/commits/b7a5569f2c60b503efa578e2ead4ee6764ce02b5

Sorry for the slightly mixed commits here.

Whop whop! Looks great.

Add a descriptive header to creator tool, see:

I couldn't spot where the docstring is being fetched, but ensure you only fetch the first line of it. That way you can still use a longer docstring for the class itself, and won't run into the risk of a huge docstring in the GUI.

Would that be something like this?

Try finding the first line. Some people prefer having their second line be the first line.
E.g.
class Class(...):
  """
  My first line
  """

It'd show up as splitlines()[1].

Good point. I'll do this:
class A():
    """A long

    docstring"""
    pass

class B():
    """
    C long line
    docstring 2
    """
    pass

import inspect
print inspect.getdoc(A).splitlines()[0]
print inspect.getdoc(B).splitlines()[0]
# A long
# C long line

Ok, @mottosso this seems to solve it. Unfortunately I can't find how to get Pycharm to linter this correctly for me so the hound will probably go off again.

That's allright, just have a look at what the hound says and see what you can do.

The "woof" should be silenced.

Looking good!


Unable to connect to urls through domains

Environment

OS: Ubuntu 20.04.4
Kubernetes/K3s: 1.22.7+k3sl
AWX Operator: 1.1.3 (Recently upgraded from 0.x.x)

Description

Unable to make requests to urls with domains (trying to sync projects through git).
getting Failed to connect to git.example.com port 80: Connection timed out
git.example.com is not actually that, its just changed. Locally there is a dns server that resolves it to the correct ip.
i have also tried github.com repo with the same error
If i use the local ip instead of the domain name then it connects just fine but errors after when it tries to query ansible galaxy with this:
'https://galaxy.ansible.com/api/': <urlopen error timed out>
Step to Reproduce

Dont think there are any steps to reproduce, i am just looking for some help to try debug this instead of having to re install
Logs

I have also tried nsenter to (what i believe i was doing) lokup the dns entry from the container
sudo nsenter -t 4550 -n dig git.example.com @<IP_ADDRESS>

; <<>> DiG 9.16.1-Ubuntu <<>> git.example.com @<IP_ADDRESS>
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30274
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 15278d6cfcbad4ef (echoed)
;; QUESTION SECTION:
;git.example.com.          IN      A

;; ANSWER SECTION:
git.example.com.   30      IN      A       <IP_ADDRESS>

;; Query time: 0 msec
;; SERVER: <IP_ADDRESS>#53(<IP_ADDRESS>)
;; WHEN: Wed Jan 25 08:25:32 UTC 2023
;; MSG SIZE  rcvd: 97

Not sure if its related but my pods look odd ever since i checked while updating
klutzybubbles@awx:~/awx-operator$ kubectl -n awx get all
NAME                                                   READY   STATUS                   RESTARTS        AGE
pod/awx-6c645b554-h5zm5                                0/4     Error                    104             315d
pod/awx-6c645b554-mc5xd                                0/4     ContainerStatusUnknown   4 (217d ago)    223d
pod/awx-6c645b554-8cjpt                                0/4     Error                    4               217d
pod/awx-6c645b554-x2c8x                                0/4     Error                    8               204d
pod/awx-6c645b554-v9zpq                                0/4     Error                    8               192d
pod/awx-6c645b554-f29dj                                0/4     Error                    4               186d
pod/awx-6c645b554-whcxh                                0/4     Error                    28              181d
pod/awx-6c645b554-24z45                                0/4     Error                    8               172d
pod/awx-6c645b554-qgrz8                                0/4     Error                    8               165d
pod/awx-6c645b554-vj8m4                                0/4     Error                    12              152d
pod/awx-6c645b554-dql9v                                0/4     Error                    24              138d
pod/awx-6c645b554-vwdpf                                0/4     ContainerStatusUnknown   8 (5d13h ago)   95d
pod/awx-postgres-13-0                                  1/1     Running                  1 (9h ago)      26h
pod/awx-operator-controller-manager-5cbfb95968-tx4nb   2/2     Running                  6 (9h ago)      46h
pod/awx-5c8659c488-28s9s                               4/4     Running                  4 (9h ago)      26h

NAME                                                      TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/awx-operator-controller-manager-metrics-service   ClusterIP   <IP_ADDRESS>   <none>        8443/TCP   315d
service/awx-postgres-13                                   ClusterIP   None            <none>        5432/TCP   46h
service/awx-service                                       ClusterIP   <IP_ADDRESS>   <none>        80/TCP     315d

NAME                                              READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/awx-operator-controller-manager   1/1     1            1           315d
deployment.apps/awx                               1/1     1            1           315d

NAME                                                         DESIRED   CURRENT   READY   AGE
replicaset.apps/awx-operator-controller-manager-5ddf49cc4f   0         0         0       315d
replicaset.apps/awx-6c645b554                                0         0         0       315d
replicaset.apps/awx-operator-controller-manager-5cbfb95968   1         1         1       46h
replicaset.apps/awx-5c8659c488                               1         1         1       46h

NAME                               READY   AGE
statefulset.apps/awx-postgres-13   1/1     46h

Sorry if i am not providing enough information, i am fairly new to kubernetes, this was only meant to be a setup so i could learn / test awx but awx required kuberentes and the default minikube option didnt work.
Please let me know what information i should include if i have (most definitely) missed anything.

@KlutzyBubbles
To determine if it is a dns-related issue, ensure domain names can be resolved inside the pod. Could you please share your output of following commands?
kubectl -n kube-system get pods -o wide

kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- cat /etc/resolv.conf
kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- wget https://galaxy.ansible.com/

kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- nslookup git.example.com
kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- nslookup galaxy.ansible.com

If the domain names can be resolved, I guess your AWX has been placed behind the HTTP proxy.
You can add HTTP_PROXY, HTTPS_PROXY, NO_PROXY through AWX's GUI. Refer my guide about proxy: https://github.com/kurokobo/awx-on-k3s/blob/main/tips/use-http-proxy.md#add-proxy-settings-to-awx

@KlutzyBubbles To determine if it is a dns-related issue, ensure domain names can be resolved inside the pod. Could you please share your output of following commands?
kubectl -n kube-system get pods -o wide

kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- cat /etc/resolv.conf
kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- wget https://galaxy.ansible.com/

kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- nslookup git.example.com
kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- nslookup galaxy.ansible.com

If the domain names can be resolved, I guess your AWX has been placed behind the HTTP proxy. You can add HTTP_PROXY, HTTPS_PROXY, NO_PROXY through AWX's GUI. Refer my guide about proxy: https://github.com/kurokobo/awx-on-k3s/blob/main/tips/use-http-proxy.md#add-proxy-settings-to-awx
If the domain names cannot be resolved, there might be dns-related issue. Try restaring CoreDNS pod first,
kubectl -n kube-system delete pod -l k8s-app=kube-dns

If the issue still exists, you can explicitly specify dns server to be used by following step 3 to 6 of this guide: https://github.com/kurokobo/awx-on-k3s/blob/main/tips/expose-hosts.md

TLDR; https://github.com/kurokobo/awx-on-k3s/blob/main/tips/expose-hosts.md steps 3-6 solved the issue.
But for anyone that may find this in searching in the future, I had initially thought my DNS servers were setup fine because i had already used the busybox image to make requests with no issues. However for whatever reason explicitly specifying the dns server fixed it.
Not sure if there is any point, thought i should include it anyway, i am still a bit confused on how the outputs from the commands stayed the same even after the dns change
klutzybubbles@awx:~$ kubectl -n kube-system get pods -o wide
NAME                                      READY   STATUS      RESTARTS         AGE    IP            NODE                   NOMINATED NODE   READINESS GATES
helm-install-traefik-crd--1-9wm78         0/1     Completed   0                316d   <IP_ADDRESS>     awx.klutzybubbles.me   <none>           <none>
helm-install-traefik--1-wxm74             0/1     Completed   2                316d   <IP_ADDRESS>     awx.klutzybubbles.me   <none>           <none>
local-path-provisioner-84bb864455-q6pwv   1/1     Running     62 (121m ago)    316d   <IP_ADDRESS>   awx.klutzybubbles.me   <none>           <none>
svclb-traefik-n2z5b                       2/2     Running     131 (121m ago)   316d   <IP_ADDRESS>   awx.klutzybubbles.me   <none>           <none>
coredns-96cc4f57d-dkjnl                   1/1     Running     62 (121m ago)    316d   <IP_ADDRESS>   awx.klutzybubbles.me   <none>           <none>
traefik-56c4b88c4b-zkrs4                  1/1     Running     62 (121m ago)    316d   <IP_ADDRESS>   awx.klutzybubbles.me   <none>           <none>
metrics-server-ff9dbcb6c-tq6pd            1/1     Running     62 (121m ago)    316d   <IP_ADDRESS>   awx.klutzybubbles.me   <none>           <none>
klutzybubbles@awx:~$ kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- cat /etc/resolv.conf
search default.svc.cluster.local svc.cluster.local cluster.local klutzybubbles.me
nameserver <IP_ADDRESS>
options ndots:5
pod "busybox" deleted
klutzybubbles@awx:~$ kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- wget https://galaxy.ansible.com/
Connecting to galaxy.ansible.com (<IP_ADDRESS>:443)
index.html           100% |*******************************|  2275   0:00:00 ETA
pod "busybox" deleted
klutzybubbles@awx:~$ kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- nslookup git.klutzybubbles.me
Server:    <IP_ADDRESS>
Address 1: <IP_ADDRESS> kube-dns.kube-system.svc.cluster.local

Name:      git.klutzybubbles.me
Address 1: <IP_ADDRESS> git.klutzybubbles.me
pod "busybox" deleted
klutzybubbles@awx:~$ kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- nslookup galaxy.ansible.com
If you dont see a command prompt, try pressing enter.
Address 1: 2606:4700:20::681a:ea
Address 2: 2606:4700:20::681a:1ea
Address 3: 2606:4700:20::ac43:44fb
Address 4: <IP_ADDRESS>
Address 5: <IP_ADDRESS>
Address 6: <IP_ADDRESS>
pod "busybox" deleted
klutzybubbles@awxkubectl -n kube-system delete pod -l k8s-app=kube-dns
pod "coredns-96cc4f57d-r9rp6" deleted
klutzybubbles@awx:~$ kubectl -n kube-system get pods -o wide
NAME                                      READY   STATUS      RESTARTS         AGE    IP            NODE                   NOMINATED NODE   READINESS GATES
local-path-provisioner-84bb864455-q6pwv   1/1     Running     62 (3h1m ago)    316d   <IP_ADDRESS>   awx.klutzybubbles.me   <none>           <none>
svclb-traefik-n2z5b                       2/2     Running     131 (3h1m ago)   316d   <IP_ADDRESS>   awx.klutzybubbles.me   <none>           <none>
traefik-56c4b88c4b-zkrs4                  1/1     Running     62 (3h1m ago)    316d   <IP_ADDRESS>   awx.klutzybubbles.me   <none>           <none>
metrics-server-ff9dbcb6c-tq6pd            1/1     Running     62 (3h1m ago)    316d   <IP_ADDRESS>   awx.klutzybubbles.me   <none>           <none>
helm-install-traefik-crd--1-wqxd8         0/1     Completed   0                15m    <IP_ADDRESS>   awx.klutzybubbles.me   <none>           <none>
helm-install-traefik--1-p92sr             0/1     Completed   0                15m    <IP_ADDRESS>   awx.klutzybubbles.me   <none>           <none>
coredns-96cc4f57d-rr2bh                   1/1     Running     0                15m    <IP_ADDRESS>   awx.klutzybubbles.me   <none>           <none>

But like i said the issue has been solved, thank you for the help :)


Ldap errors in puppet build

resolution_fixed   |    by<EMAIL_ADDRESS>
Currently 'puppet apply' is run twice when we build the VM, since there are errors accessing LDAP on the first run through. This needs to be investigated at some point.

Issue migrated from trac:22 at 2024-01-31 17:09:40 +1100

<EMAIL_ADDRESS>changed owner from `` to saw562

<EMAIL_ADDRESS>changed status from new to assigned

<EMAIL_ADDRESS>commented

Puppet bug - instead need to use uid or gid

ibc599 commented

Also, need to add timeout =>0 value to yum_groupinstall to improve speed for spinning up VM's.
From Chris,
"
However, due to the timeouts
that occurred during the group install in the first run it may have
redownloaded them a second time.  To avoid this, add the following
parameter to the "exec" block in "yum_groupinstall":
timeout => 0,
"

ibc599 commented

From Chris,
"I think we may have touched on this at the workshop, but the reason puppet fails in the first pass is due to the design of nsswitch in Linux.  When LDAP is configured, it's too late for Puppet since it's already running at that point.  Hence we call it a second time and then everything that depends on LDAP now succeeds."

<EMAIL_ADDRESS>changed owner from saw562 to bje900

ibc599 changed _comment0 which not transferred by tractive

<EMAIL_ADDRESS>commented

Possibility: Set up LDAP before running puppet in the user-data script - see authconfig http://linux.die.net/man/8/authconfig

<EMAIL_ADDRESS>commented

authconfig --updateall --enableldap --enableldapauth --ldapserver='ldaps://sfldap0.anu.edu.au/' --ldapbasedn='dc=apac,dc=edu,dc=au' --ldaploadcacert='file:///etc/puppet/modules/ldap/files/client/openldap/certs/CA/apac_nf_ca.pem' --enableldaptls --enablesssd

is working (needs sssd package installed) - fix is in branch source:/puppet@saw562/ldap

<EMAIL_ADDRESS>commented

Should be able to use a command similar to
authconfig --update --enableldap --enableldapauth --ldapserver='ldaps://sfldap0.anu.edu.au/' --ldapbasedn='dc=apac,dc=edu,dc=au' --ldaploadcacert='file:///etc/puppet/modules/ldap/files/client/openldap/certs/CA/apac_nf_ca.pem'

to set up ldap before running puppet

<EMAIL_ADDRESS>changed _comment0 which not transferred by tractive

<EMAIL_ADDRESS>commented

See #53 for Yum groupinstall errors

<EMAIL_ADDRESS>commented

As noted in comment:4, this is really just a cosmetic issue since in the second Puppet run during bootstrap any tasks that failed in the first run now succeed.  By configuring LDAP outside of Puppet you're going to introduce duplication and potential conflict with the baseline environment.  So the cure may be worse than the problem you're trying to solve.

<EMAIL_ADDRESS>commented

Milestone Future deleted

<EMAIL_ADDRESS>commented

You may be right - both ways are an ugly hack though I'd prefer not to have a stream of errors coming from Puppet's first pass so that real errors are easier to identify.

<EMAIL_ADDRESS>changed priority from major to minor

<EMAIL_ADDRESS>changed owner from bje900 to cma900

<EMAIL_ADDRESS>removed milestone (was Future)

<EMAIL_ADDRESS>changed status from assigned to closed

<EMAIL_ADDRESS>changed resolution from `` to fixed


fix: new proposal

Scope
Work Done
Steps to Test
Screenshots

@gsSuper Can you check the conflicts here