on all call sites, we assume $cfg->{domains} is a hash, but if we do not
have any domains configured, that fails with
'Can't use an undefined value as a HASH reference at ...'
so always make domains a hash to avoid this
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
It's not 100% true, but for the user more understandable. IF we
actually change such that this detail matters we can still go for a
"Better" solution then, as it will need UI updates anyway..
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
We have 4 call sites of that, one had a fallback - the other three
was totally unchecked and triggered already exceptions on panel
render ... -.-
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This is basically a complete rework of the ACME grid.
Instead of having an ObjectGrid, we now have a normal
GridPanel which allows us to show a row for each Domain.
But to achieve this, we need to manually fill the store with data
from the 'acme' and 'acmedomainX' entries of the node config.
We also add an AccountSelector to the tbar and a link to the
datacenter->acme panel (when there is no account)
this also removes the 'register account' and 'view account' buttons,
since those are now available in datacenter->acme
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
which expects a nodeconfig (for digest and domaincount)
and for the edit case, the parsed 'domain' object
this editwindow has three fields:
* type selector (standalone/dns)
* domain
* plugin (only for dns)
if the user chooses dns but there are already the maximum count of
acmedomainX entries, the type field gets invalid (with a error tooltip)
the onGetValues method is non-trivial, because of the mixing of
acmedomainX and acme.domain values, so we have to be careful
that we delete/edit the correct entry
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
to convieniently add and remove domains from a parsed ACME object
they also make domains unique in the array
also add the count of configureable acmedomainX entries
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
since we decode the domain list in parseACME into an array, we
have to join them again to a string when printing
otherwise printPropertyString attaches them just with ',' which
does not work here
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
filter the plugins by type === 'dns'
and add a convenience method for ACMEAccountSelector to check if there
are any accounts
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
to clean service directories as well as disable and stop Ceph services.
Addtionally provide the option to remove crash and log information.
This patch is also in addtion to #2607, as the current cleanup doesn't
allow to re-configure Ceph, without manual steps during purge.
Signed-off-by: Alwin Antreich <a.antreich@proxmox.com>
There's no graphs on screen, so no reason to collapse the notes to save
space. Besides, it looked a bit funky expanding the notes on smaller
screens, since they always jumped to the bottom to fill the space...
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
Previously, the blank '' would be passed along and lead to a
parameter verfication failure.
For LXC the default behavior in the backend is to use 'local', so
disallow blank and auto-select the first storage supporting'rootdir'
instead.
For QEMU the default behavior in the backend is to use the
original layout from the backup configuration file, which
makes sense to use as the default in the GUI as well.
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
this unifies the logic into a single place instead of all over this
module and the plugins.
it also fixes tons of 'uninitialized value' warnings when backing up
with --dumpdir but no --storage set, since the existing conditions for
PBS targets are missing a definedness check.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
fit's more the style used in PVE, where west-center layouts are
normally just used if there's some data relation between west and
center.
Make it more similar to panels like the HA overview, CephFS, ...
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
to show the list of accounts and defined plugins
for now we ignore 'standalone' plugins here and only show 'dns' ones
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this is a rather complex edit window, because we dynamically create form
fields according to the schema we get from the api
to do this properly we have to handle a few things:
* we have to properly set the values on edit
* we have to properly track the original values
* we have to merge and split with/from the generic 'data' field
(so that if a plugin has some extra fields that we did not include in
the schema the user can still enter them)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
which return all api types from /cluster/acme/challengeschema
and has a convenience method for getting the schema of the current value
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
so that we can create multiple accounts, but leave it empty and set the
emptyText to the default name 'default'
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
which returns a list of challenge api types with the schema of their
required data (if it exists)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
[ Thomas: adapt to my changes from proxmox-acme schema def and change
path from challengeschema to challenge-schema ]
Instead of the old 'ring_addr' property (which is kept for
compatibility), we also encode the link numbers into the new peerLinks
structure. This allows us to display which IP is assigned to which link
on the cluster in the join dialog, helping a user identify which link
should receive which interface on the new node.
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
CorosyncLinkEdit is a Panel that contains between one and 8
CorosyncLinkSelectors. These can be added or removed with according
buttons.
Values submitted to the API are calculated by each
ProxmoxNetworkSelector itself. This works because ExtJS searches
recursively through all child components for ones with a value to be
submitted, i.e. the CorosyncLinkEdit and CorosyncLinkSelector components
are not part of data submission at all.
Change ClusterEdit.js to use the new component for cluster join and
create. To make space in layout, move 'password' field to the side
(where the network-selector previously was) and use 'hbox' panel for
horizontal layouting to avoid spacing issues with languages where the
fieldLabel doesn't fit on one line.
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>