Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
pve-manager
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
pve-manager
Commits
2e2bb58a
Commit
2e2bb58a
authored
Aug 13, 2013
by
Dietmar Maurer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add GUI for GlusterFS storage
parent
64e8c228
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
225 additions
and
0 deletions
+225
-0
Makefile
www/manager/Makefile
+1
-0
Utils.js
www/manager/Utils.js
+2
-0
StorageView.js
www/manager/dc/StorageView.js
+11
-0
GlusterFsEdit.js
www/manager/storage/GlusterFsEdit.js
+211
-0
No files found.
www/manager/Makefile
View file @
2e2bb58a
...
@@ -129,6 +129,7 @@ JSSRC= \
...
@@ -129,6 +129,7 @@ JSSRC= \
storage/Browser.js
\
storage/Browser.js
\
storage/DirEdit.js
\
storage/DirEdit.js
\
storage/NFSEdit.js
\
storage/NFSEdit.js
\
storage/GlusterFsEdit.js
\
storage/IScsiEdit.js
\
storage/IScsiEdit.js
\
storage/LVMEdit.js
\
storage/LVMEdit.js
\
storage/RBDEdit.js
\
storage/RBDEdit.js
\
...
...
www/manager/Utils.js
View file @
2e2bb58a
...
@@ -674,6 +674,8 @@ Ext.define('PVE.Utils', { statics: {
...
@@ -674,6 +674,8 @@ Ext.define('PVE.Utils', { statics: {
return
'
Directory
'
;
return
'
Directory
'
;
}
else
if
(
value
===
'
nfs
'
)
{
}
else
if
(
value
===
'
nfs
'
)
{
return
'
NFS
'
;
return
'
NFS
'
;
}
else
if
(
value
===
'
glusterfs
'
)
{
return
'
GlusterFS
'
;
}
else
if
(
value
===
'
lvm
'
)
{
}
else
if
(
value
===
'
lvm
'
)
{
return
'
LVM
'
;
return
'
LVM
'
;
}
else
if
(
value
===
'
iscsi
'
)
{
}
else
if
(
value
===
'
iscsi
'
)
{
...
...
www/manager/dc/StorageView.js
View file @
2e2bb58a
...
@@ -36,6 +36,8 @@ Ext.define('PVE.dc.StorageView', {
...
@@ -36,6 +36,8 @@ Ext.define('PVE.dc.StorageView', {
editor
=
'
PVE.storage.DirEdit
'
;
editor
=
'
PVE.storage.DirEdit
'
;
}
else
if
(
type
===
'
nfs
'
)
{
}
else
if
(
type
===
'
nfs
'
)
{
editor
=
'
PVE.storage.NFSEdit
'
;
editor
=
'
PVE.storage.NFSEdit
'
;
}
else
if
(
type
===
'
glusterfs
'
)
{
editor
=
'
PVE.storage.GlusterFsEdit
'
;
}
else
if
(
type
===
'
lvm
'
)
{
}
else
if
(
type
===
'
lvm
'
)
{
editor
=
'
PVE.storage.LVMEdit
'
;
editor
=
'
PVE.storage.LVMEdit
'
;
}
else
if
(
type
===
'
iscsi
'
)
{
}
else
if
(
type
===
'
iscsi
'
)
{
...
@@ -135,6 +137,15 @@ Ext.define('PVE.dc.StorageView', {
...
@@ -135,6 +137,15 @@ Ext.define('PVE.dc.StorageView', {
win
.
show
();
win
.
show
();
}
}
},
},
{
text
:
'
GlusterFS volume
'
,
iconCls
:
'
pve-itype-icon-node
'
,
handler
:
function
()
{
var
win
=
Ext
.
create
(
'
PVE.storage.GlusterFsEdit
'
,
{});
win
.
on
(
'
destroy
'
,
reload
);
win
.
show
();
}
},
{
{
text
:
'
RBD
'
,
text
:
'
RBD
'
,
iconCls
:
'
pve-itype-icon-node
'
,
iconCls
:
'
pve-itype-icon-node
'
,
...
...
www/manager/storage/GlusterFsEdit.js
0 → 100644
View file @
2e2bb58a
Ext
.
define
(
'
PVE.storage.GlusterFsScan
'
,
{
extend
:
'
Ext.form.field.ComboBox
'
,
alias
:
'
widget.pveGlusterFsScan
'
,
queryParam
:
'
server
'
,
doRawQuery
:
function
()
{
},
onTriggerClick
:
function
()
{
var
me
=
this
;
if
(
!
me
.
queryCaching
||
me
.
lastQuery
!==
me
.
glusterServer
)
{
me
.
store
.
removeAll
();
}
me
.
allQuery
=
me
.
glusterServer
;
me
.
callParent
();
},
setServer
:
function
(
server
)
{
var
me
=
this
;
me
.
glusterServer
=
server
;
},
initComponent
:
function
()
{
var
me
=
this
;
if
(
!
me
.
nodename
)
{
me
.
nodename
=
'
localhost
'
;
}
var
store
=
Ext
.
create
(
'
Ext.data.Store
'
,
{
fields
:
[
'
volname
'
],
proxy
:
{
type
:
'
pve
'
,
url
:
'
/api2/json/nodes/
'
+
me
.
nodename
+
'
/scan/glusterfs
'
}
});
Ext
.
apply
(
me
,
{
store
:
store
,
valueField
:
'
volname
'
,
displayField
:
'
volname
'
,
matchFieldWidth
:
false
,
listConfig
:
{
loadingText
:
'
Scanning...
'
,
listeners
:
{
// hack: call setHeight to show scroll bars correctly
refresh
:
function
(
list
)
{
var
lh
=
PVE
.
Utils
.
gridLineHeigh
();
var
count
=
store
.
getCount
();
list
.
setHeight
(
lh
*
((
count
>
10
)
?
10
:
count
));
}
},
width
:
350
}
});
me
.
callParent
();
}
});
Ext
.
define
(
'
PVE.storage.GlusterFsInputPanel
'
,
{
extend
:
'
PVE.panel.InputPanel
'
,
onGetValues
:
function
(
values
)
{
var
me
=
this
;
if
(
me
.
create
)
{
values
.
type
=
'
glusterfs
'
;
}
else
{
delete
values
.
storage
;
}
values
.
disable
=
values
.
enable
?
0
:
1
;
delete
values
.
enable
;
return
values
;
},
initComponent
:
function
()
{
var
me
=
this
;
me
.
column1
=
[
{
xtype
:
me
.
create
?
'
textfield
'
:
'
displayfield
'
,
name
:
'
storage
'
,
height
:
22
,
// hack: set same height as text fields
value
:
me
.
storageId
||
''
,
fieldLabel
:
'
ID
'
,
vtype
:
'
StorageId
'
,
allowBlank
:
false
},
{
xtype
:
me
.
create
?
'
textfield
'
:
'
displayfield
'
,
height
:
22
,
// hack: set same height as text fields
name
:
'
server
'
,
value
:
''
,
fieldLabel
:
gettext
(
'
Server
'
),
allowBlank
:
false
,
listeners
:
{
change
:
function
(
f
,
value
)
{
if
(
me
.
create
)
{
var
volumeField
=
me
.
down
(
'
field[name=volume]
'
);
volumeField
.
setServer
(
value
);
volumeField
.
setValue
(
''
);
}
}
}
},
{
xtype
:
me
.
create
?
'
pveGlusterFsScan
'
:
'
displayfield
'
,
height
:
22
,
// hack: set same height as text fields
name
:
'
volume
'
,
value
:
''
,
fieldLabel
:
'
Volume name
'
,
allowBlank
:
false
},
{
xtype
:
'
pveContentTypeSelector
'
,
name
:
'
content
'
,
value
:
'
images
'
,
multiSelect
:
true
,
fieldLabel
:
gettext
(
'
Content
'
),
allowBlank
:
false
}
];
me
.
column2
=
[
{
xtype
:
'
PVE.form.NodeSelector
'
,
name
:
'
nodes
'
,
fieldLabel
:
gettext
(
'
Nodes
'
),
emptyText
:
gettext
(
'
All
'
)
+
'
(
'
+
gettext
(
'
No restrictions
'
)
+
'
)
'
,
multiSelect
:
true
,
autoSelect
:
false
},
{
xtype
:
'
pvecheckbox
'
,
name
:
'
enable
'
,
checked
:
true
,
uncheckedValue
:
0
,
fieldLabel
:
gettext
(
'
Enable
'
)
},
{
xtype
:
'
numberfield
'
,
fieldLabel
:
gettext
(
'
Max Backups
'
),
name
:
'
maxfiles
'
,
minValue
:
0
,
maxValue
:
365
,
value
:
me
.
create
?
'
1
'
:
undefined
,
allowBlank
:
false
}
];
me
.
callParent
();
}
});
Ext
.
define
(
'
PVE.storage.GlusterFsEdit
'
,
{
extend
:
'
PVE.window.Edit
'
,
initComponent
:
function
()
{
var
me
=
this
;
me
.
create
=
!
me
.
storageId
;
if
(
me
.
create
)
{
me
.
url
=
'
/api2/extjs/storage
'
;
me
.
method
=
'
POST
'
;
}
else
{
me
.
url
=
'
/api2/extjs/storage/
'
+
me
.
storageId
;
me
.
method
=
'
PUT
'
;
}
var
ipanel
=
Ext
.
create
(
'
PVE.storage.GlusterFsInputPanel
'
,
{
create
:
me
.
create
,
storageId
:
me
.
storageId
});
Ext
.
apply
(
me
,
{
subject
:
'
GlusterFS Volume
'
,
isAdd
:
true
,
items
:
[
ipanel
]
});
me
.
callParent
();
if
(
!
me
.
create
)
{
me
.
load
({
success
:
function
(
response
,
options
)
{
var
values
=
response
.
result
.
data
;
var
ctypes
=
values
.
content
||
''
;
values
.
content
=
ctypes
.
split
(
'
,
'
);
if
(
values
.
nodes
)
{
values
.
nodes
=
values
.
nodes
.
split
(
'
,
'
);
}
values
.
enable
=
values
.
disable
?
0
:
1
;
ipanel
.
setValues
(
values
);
}
});
}
}
});
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment