Commit 7d2740f0 authored by Alishan Ladhani's avatar Alishan Ladhani

Fix fetching of description for Knative 0.7 functions

parent 7e65fe67
......@@ -44,28 +44,52 @@ module Projects
end
expose :url do |service|
service.dig('status', 'url') || "http://#{service.dig('status', 'domain')}"
knative_06_07_url(service) || knative_05_url(service)
end
expose :description do |service|
knative_07_description(service) || knative_05_06_description(service)
end
expose :image do |service|
service.dig(
'spec',
'runLatest',
'configuration',
'revisionTemplate',
'build',
'template',
'name')
end
private
def knative_07_description(service)
service.dig(
'spec',
'template',
'metadata',
'annotations',
'Description')
'Description'
)
end
expose :image do |service|
def knative_05_url(service)
"http://#{service.dig('status', 'domain')}"
end
def knative_06_07_url(service)
service.dig('status', 'url')
end
def knative_05_06_description(service)
service.dig(
'spec',
'runLatest',
'configuration',
'build',
'template',
'name')
'revisionTemplate',
'metadata',
'annotations',
'Description')
end
end
end
......
......@@ -13,6 +13,10 @@ describe Projects::Serverless::FunctionsController do
let(:environment) { create(:environment, project: project) }
let!(:deployment) { create(:deployment, :success, environment: environment, cluster: cluster) }
let(:knative_services_finder) { environment.knative_services_finder }
let(:function_description) { 'A serverless function' }
let(:knative_stub_options) do
{ namespace: namespace.namespace, name: cluster.project.name, description: function_description }
end
let(:namespace) do
create(:cluster_kubernetes_namespace,
......@@ -114,16 +118,17 @@ describe Projects::Serverless::FunctionsController do
expect(response).to have_gitlab_http_status(200)
expect(json_response).to include(
"name" => project.name,
"url" => "http://#{project.name}.#{namespace.namespace}.example.com",
"podcount" => 1
'name' => project.name,
'url' => "http://#{project.name}.#{namespace.namespace}.example.com",
'description' => function_description,
'podcount' => 1
)
end
end
context 'on Knative 0.5.0' do
before do
prepare_knative_stubs('0.5.0', namespace: namespace.namespace, name: cluster.project.name)
prepare_knative_stubs(knative_05_service(knative_stub_options))
end
include_examples 'GET #show with valid data'
......@@ -131,7 +136,7 @@ describe Projects::Serverless::FunctionsController do
context 'on Knative 0.6.0' do
before do
prepare_knative_stubs('0.6.0', namespace: namespace.namespace, name: cluster.project.name)
prepare_knative_stubs(knative_06_service(knative_stub_options))
end
include_examples 'GET #show with valid data'
......@@ -139,7 +144,7 @@ describe Projects::Serverless::FunctionsController do
context 'on Knative 0.7.0' do
before do
prepare_knative_stubs('0.7.0', namespace: namespace.namespace, name: cluster.project.name)
prepare_knative_stubs(knative_07_service(knative_stub_options))
end
include_examples 'GET #show with valid data'
......@@ -164,11 +169,12 @@ describe Projects::Serverless::FunctionsController do
expect(response).to have_gitlab_http_status(200)
expect(json_response).to match({
"knative_installed" => "checking",
"functions" => [
'knative_installed' => 'checking',
'functions' => [
a_hash_including(
"name" => project.name,
"url" => "http://#{project.name}.#{namespace.namespace}.example.com"
'name' => project.name,
'url' => "http://#{project.name}.#{namespace.namespace}.example.com",
'description' => function_description
)
]
})
......@@ -183,7 +189,7 @@ describe Projects::Serverless::FunctionsController do
context 'on Knative 0.5.0' do
before do
prepare_knative_stubs('0.5.0', namespace: namespace.namespace, name: cluster.project.name)
prepare_knative_stubs(knative_05_service(knative_stub_options))
end
include_examples 'GET #index with data'
......@@ -191,7 +197,7 @@ describe Projects::Serverless::FunctionsController do
context 'on Knative 0.6.0' do
before do
prepare_knative_stubs('0.6.0', namespace: namespace.namespace, name: cluster.project.name)
prepare_knative_stubs(knative_06_service(knative_stub_options))
end
include_examples 'GET #index with data'
......@@ -199,24 +205,14 @@ describe Projects::Serverless::FunctionsController do
context 'on Knative 0.7.0' do
before do
prepare_knative_stubs('0.7.0', namespace: namespace.namespace, name: cluster.project.name)
prepare_knative_stubs(knative_07_service(knative_stub_options))
end
include_examples 'GET #index with data'
end
end
def prepare_knative_stubs(version, options)
knative_service =
case version
when '0.7.0'
knative_07_service(options)
when '0.6.0'
knative_06_service(options)
when '0.5.0'
knative_05_service(options)
end
def prepare_knative_stubs(knative_service)
stub_kubeclient_service_pods
stub_reactive_cache(knative_services_finder,
{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment