Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
9f0983a4
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
9f0983a4
编写于
12月 20, 2018
作者:
M
Mike Greiling
提交者:
Kushal Pandya
12月 20, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Resolve "Hide cluster features that don't work yet with Group Clusters"
上级
70ba4ba2
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
106 addition
and
19 deletion
+106
-19
app/assets/javascripts/environments/components/environment_item.vue
.../javascripts/environments/components/environment_item.vue
+11
-0
app/assets/javascripts/environments/components/environment_terminal_button.vue
...s/environments/components/environment_terminal_button.vue
+6
-0
app/models/environment.rb
app/models/environment.rb
+4
-1
app/serializers/environment_entity.rb
app/serializers/environment_entity.rb
+16
-0
changelogs/unreleased/55103-hide-group-cluster-features.yml
changelogs/unreleased/55103-hide-group-cluster-features.yml
+5
-0
spec/javascripts/environments/environment_terminal_button_spec.js
...ascripts/environments/environment_terminal_button_spec.js
+32
-16
spec/lib/gitlab/prometheus/query_variables_spec.rb
spec/lib/gitlab/prometheus/query_variables_spec.rb
+2
-2
spec/serializers/environment_entity_spec.rb
spec/serializers/environment_entity_spec.rb
+30
-0
未找到文件。
app/assets/javascripts/environments/components/environment_item.vue
浏览文件 @
9f0983a4
...
...
@@ -14,6 +14,7 @@ import MonitoringButtonComponent from './environment_monitoring.vue';
import
CommitComponent
from
'
../../vue_shared/components/commit.vue
'
;
import
eventHub
from
'
../event_hub
'
;
import
{
convertObjectPropsToCamelCase
}
from
'
~/lib/utils/common_utils
'
;
import
{
CLUSTER_TYPE
}
from
'
~/clusters/constants
'
;
/**
* Environment Item Component
...
...
@@ -84,6 +85,15 @@ export default {
return
this
.
model
&&
this
.
model
.
is_protected
;
},
/**
* Hide group cluster features which are not currently implemented.
*
* @returns {Boolean}
*/
disableGroupClusterFeatures
()
{
return
this
.
model
&&
this
.
model
.
cluster_type
===
CLUSTER_TYPE
.
GROUP
;
},
/**
* Returns whether the environment can be stopped.
*
...
...
@@ -547,6 +557,7 @@ export default {
<terminal-button-component
v-if=
"model && model.terminal_path"
:terminal-path=
"model.terminal_path"
:disabled=
"disableGroupClusterFeatures"
/>
<rollback-component
...
...
app/assets/javascripts/environments/components/environment_terminal_button.vue
浏览文件 @
9f0983a4
...
...
@@ -19,6 +19,11 @@ export default {
required
:
false
,
default
:
''
,
},
disabled
:
{
type
:
Boolean
,
required
:
false
,
default
:
false
,
},
},
computed
:
{
title
()
{
...
...
@@ -33,6 +38,7 @@ export default {
:title=
"title"
:aria-label=
"title"
:href=
"terminalPath"
:class=
"
{ disabled: disabled }"
class="btn terminal-button d-none d-sm-none d-md-block"
>
<icon
name=
"terminal"
/>
...
...
app/models/environment.rb
浏览文件 @
9f0983a4
# frozen_string_literal: true
class
Environment
<
ActiveRecord
::
Base
include
Gitlab
::
Utils
::
StrongMemoize
# Used to generate random suffixes for the slug
LETTERS
=
'a'
..
'z'
NUMBERS
=
'0'
..
'9'
...
...
@@ -231,7 +232,9 @@ class Environment < ActiveRecord::Base
end
def
deployment_platform
project
.
deployment_platform
(
environment:
self
.
name
)
strong_memoize
(
:deployment_platform
)
do
project
.
deployment_platform
(
environment:
self
.
name
)
end
end
private
...
...
app/serializers/environment_entity.rb
浏览文件 @
9f0983a4
...
...
@@ -23,6 +23,10 @@ class EnvironmentEntity < Grape::Entity
stop_project_environment_path
(
environment
.
project
,
environment
)
end
expose
:cluster_type
,
if:
->
(
environment
,
_
)
{
cluster_platform_kubernetes?
}
do
|
environment
|
cluster
.
cluster_type
end
expose
:terminal_path
,
if:
->
(
*
)
{
environment
.
has_terminals?
&&
can_access_terminal?
}
do
|
environment
|
terminal_project_environment_path
(
environment
.
project
,
environment
)
end
...
...
@@ -48,4 +52,16 @@ class EnvironmentEntity < Grape::Entity
def
can_access_terminal?
can?
(
request
.
current_user
,
:create_environment_terminal
,
environment
)
end
def
cluster_platform_kubernetes?
deployment_platform
&&
deployment_platform
.
is_a?
(
Clusters
::
Platforms
::
Kubernetes
)
end
def
deployment_platform
environment
.
deployment_platform
end
def
cluster
deployment_platform
.
cluster
end
end
changelogs/unreleased/55103-hide-group-cluster-features.yml
0 → 100644
浏览文件 @
9f0983a4
---
title
:
Hide cluster features that don't work yet with Group Clusters
merge_request
:
23935
author
:
type
:
fixed
spec/javascripts/environments/environment_terminal_button_spec.js
浏览文件 @
9f0983a4
...
...
@@ -2,30 +2,46 @@ import Vue from 'vue';
import
terminalComp
from
'
~/environments/components/environment_terminal_button.vue
'
;
describe
(
'
Stop Component
'
,
()
=>
{
let
TerminalComponent
;
let
component
;
const
terminalPath
=
'
/path
'
;
beforeEach
(()
=>
{
TerminalComponent
=
Vue
.
extend
(
terminalComp
);
const
mountWithProps
=
props
=>
{
const
TerminalComponent
=
Vue
.
extend
(
terminalComp
);
component
=
new
TerminalComponent
({
propsData
:
{
terminalPath
,
},
propsData
:
props
,
}).
$mount
();
});
};
describe
(
'
enabled
'
,
()
=>
{
beforeEach
(()
=>
{
mountWithProps
({
terminalPath
});
});
describe
(
'
computed
'
,
()
=>
{
it
(
'
title
'
,
()
=>
{
expect
(
component
.
title
).
toEqual
(
'
Terminal
'
);
});
});
describe
(
'
computed
'
,
()
=>
{
it
(
'
title
'
,
()
=>
{
expect
(
component
.
title
).
toEqual
(
'
Terminal
'
);
it
(
'
should render a link to open a web terminal with the provided path
'
,
()
=>
{
expect
(
component
.
$el
.
tagName
).
toEqual
(
'
A
'
);
expect
(
component
.
$el
.
getAttribute
(
'
data-original-title
'
)).
toEqual
(
'
Terminal
'
);
expect
(
component
.
$el
.
getAttribute
(
'
aria-label
'
)).
toEqual
(
'
Terminal
'
);
expect
(
component
.
$el
.
getAttribute
(
'
href
'
)).
toEqual
(
terminalPath
);
});
it
(
'
should render a non-disabled button
'
,
()
=>
{
expect
(
component
.
$el
.
classList
).
not
.
toContain
(
'
disabled
'
);
});
});
it
(
'
should render a link to open a web terminal with the provided path
'
,
()
=>
{
expect
(
component
.
$el
.
tagName
).
toEqual
(
'
A
'
);
expect
(
component
.
$el
.
getAttribute
(
'
data-original-title
'
)).
toEqual
(
'
Terminal
'
);
expect
(
component
.
$el
.
getAttribute
(
'
aria-label
'
)).
toEqual
(
'
Terminal
'
);
expect
(
component
.
$el
.
getAttribute
(
'
href
'
)).
toEqual
(
terminalPath
);
describe
(
'
disabled
'
,
()
=>
{
beforeEach
(()
=>
{
mountWithProps
({
terminalPath
,
disabled
:
true
});
});
it
(
'
should render a disabled button
'
,
()
=>
{
expect
(
component
.
$el
.
classList
).
toContain
(
'
disabled
'
);
});
});
});
spec/lib/gitlab/prometheus/query_variables_spec.rb
浏览文件 @
9f0983a4
...
...
@@ -4,7 +4,7 @@ require 'spec_helper'
describe
Gitlab
::
Prometheus
::
QueryVariables
do
describe
'.call'
do
s
et
(
:environment
)
{
create
(
:environment
)
}
l
et
(
:environment
)
{
create
(
:environment
)
}
let
(
:slug
)
{
environment
.
slug
}
subject
{
described_class
.
call
(
environment
)
}
...
...
@@ -20,7 +20,7 @@ describe Gitlab::Prometheus::QueryVariables do
it
{
is_expected
.
to
include
(
kube_namespace:
''
)
}
end
context
'with depl
yo
ment platform'
do
context
'with depl
oy
ment platform'
do
let
(
:kube_namespace
)
{
environment
.
deployment_platform
.
actual_namespace
}
before
do
...
...
spec/serializers/environment_entity_spec.rb
浏览文件 @
9f0983a4
...
...
@@ -40,4 +40,34 @@ describe EnvironmentEntity do
expect
(
subject
).
to
include
(
:metrics_path
)
end
end
context
'with deployment platform'
do
let
(
:project
)
{
create
(
:project
,
:repository
)
}
let
(
:environment
)
{
create
(
:environment
,
project:
project
)
}
context
'when deployment platform is a cluster'
do
before
do
create
(
:cluster
,
:provided_by_gcp
,
:project
,
environment_scope:
'*'
,
projects:
[
project
])
end
it
'should include cluster_type'
do
expect
(
subject
).
to
include
(
:cluster_type
)
expect
(
subject
[
:cluster_type
]).
to
eq
(
'project_type'
)
end
end
context
'when deployment platform is a Kubernetes Service'
do
before
do
create
(
:kubernetes_service
,
project:
project
)
end
it
'should not include cluster_type'
do
expect
(
subject
).
not_to
include
(
:cluster_type
)
end
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录