From ff7a632abaef0bdfd97efda340bf072d5978cbbc Mon Sep 17 00:00:00 2001 From: Robin Shen Date: Fri, 13 Dec 2019 15:47:08 +0800 Subject: [PATCH] Some minor enhancements Highlight reference links among normal links Detect primary ip address when run out side of docker/k8s --- .../main/java/io/onedev/server/OneDev.java | 24 ++++++++++++++++--- .../java/io/onedev/server/model/Role.java | 2 +- .../AutoDiscoveredJobExecutor.java | 2 ++ .../model/support/role/JobPrivilege.java | 2 +- .../io/onedev/server/web/page/base/base.css | 7 +++++- .../server/web/util/ReferenceTransformer.java | 6 ++--- .../server/plugin/docker/DockerModule.java | 1 + .../kubernetes/KubernetesExecutor.java | 2 +- .../executor/kubernetes/KubernetesModule.java | 1 + .../java/io/onedev/server/product/Test.java | 1 - 10 files changed, 37 insertions(+), 11 deletions(-) diff --git a/server-core/src/main/java/io/onedev/server/OneDev.java b/server-core/src/main/java/io/onedev/server/OneDev.java index 21b6f553a6..de060ba9a4 100644 --- a/server-core/src/main/java/io/onedev/server/OneDev.java +++ b/server-core/src/main/java/io/onedev/server/OneDev.java @@ -2,7 +2,10 @@ package io.onedev.server; import java.io.ObjectStreamException; import java.io.Serializable; +import java.net.DatagramSocket; import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.net.Socket; import java.net.UnknownHostException; import java.util.List; import java.util.Set; @@ -14,6 +17,7 @@ import javax.annotation.Nullable; import javax.inject.Inject; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.SystemUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -213,9 +217,23 @@ public class OneDev extends AbstractPlugin implements Serializable { if (ipRef.get() == null) { try { - ipRef.set(InetAddress.getLocalHost().getHostName()); - } catch (UnknownHostException e) { - throw new RuntimeException(e); + if (SystemUtils.IS_OS_MAC_OSX) { + try (Socket socket = new Socket()) { + socket.connect(new InetSocketAddress("microsoft.com", 80)); + ipRef.set(StringUtils.stripStart(socket.getLocalAddress().toString(), "/")); + } + } else { + try (DatagramSocket socket = new DatagramSocket()) { + socket.connect(InetAddress.getByName("8.8.8.8"), 10002); + ipRef.set(socket.getLocalAddress().getHostAddress()); + } + } + } catch (Exception e) { + try { + ipRef.set(InetAddress.getLocalHost().getHostName()); + } catch (UnknownHostException e2) { + throw new RuntimeException(e2); + } } } diff --git a/server-core/src/main/java/io/onedev/server/model/Role.java b/server-core/src/main/java/io/onedev/server/model/Role.java index dc9a505c47..ea9bbca717 100644 --- a/server-core/src/main/java/io/onedev/server/model/Role.java +++ b/server-core/src/main/java/io/onedev/server/model/Role.java @@ -89,7 +89,7 @@ public class Role extends AbstractEntity implements Permission { @OneToMany(mappedBy="role", cascade=CascadeType.REMOVE) private Collection groupAuthorizations = new ArrayList<>(); - @Editable(order=100, description="Specify name of the role. NOTE: " + @Editable(order=100, description="Specify name of the role. NOTE: " + "Permission to view issues will be granted implicitly even if no other permissions " + "are specified here") @NotEmpty diff --git a/server-core/src/main/java/io/onedev/server/model/support/administration/jobexecutor/AutoDiscoveredJobExecutor.java b/server-core/src/main/java/io/onedev/server/model/support/administration/jobexecutor/AutoDiscoveredJobExecutor.java index d7d6af05c9..c198d087f2 100644 --- a/server-core/src/main/java/io/onedev/server/model/support/administration/jobexecutor/AutoDiscoveredJobExecutor.java +++ b/server-core/src/main/java/io/onedev/server/model/support/administration/jobexecutor/AutoDiscoveredJobExecutor.java @@ -38,6 +38,8 @@ public class AutoDiscoveredJobExecutor extends JobExecutor { }); JobExecutor jobExecutor = jobExecutors.iterator().next(); + context.getLogger().log("Discovered job executor type: " + + EditableUtils.getDisplayName(jobExecutor.getClass())); jobExecutor.setName(getName()); jobExecutor.setApplicableBranches(getApplicableBranches()); jobExecutor.setCacheTTL(getCacheTTL()); diff --git a/server-core/src/main/java/io/onedev/server/model/support/role/JobPrivilege.java b/server-core/src/main/java/io/onedev/server/model/support/role/JobPrivilege.java index 3413d5810e..329978a0e0 100644 --- a/server-core/src/main/java/io/onedev/server/model/support/role/JobPrivilege.java +++ b/server-core/src/main/java/io/onedev/server/model/support/role/JobPrivilege.java @@ -34,7 +34,7 @@ public class JobPrivilege implements Serializable { private String accessibleReports; @Editable(order=100, description="Specify space-separated jobs. Use * or ? for wildcard match. " - + "NOTE: Permission to access build artifacts will be granted " + + "NOTE: Permission to access build artifacts will be granted " + "implicitly in matched jobs even if no other permissions are specified here") @Patterns(suggester = "suggestJobNames") @NotEmpty diff --git a/server-core/src/main/java/io/onedev/server/web/page/base/base.css b/server-core/src/main/java/io/onedev/server/web/page/base/base.css index 5dbd069bcb..f29dabdd7e 100644 --- a/server-core/src/main/java/io/onedev/server/web/page/base/base.css +++ b/server-core/src/main/java/io/onedev/server/web/page/base/base.css @@ -6,7 +6,9 @@ body { a { color: #1f3b7b; } - +a.embedded-reference { + color: #0d87e9; +} .pointer { cursor: pointer; } @@ -19,6 +21,9 @@ a { -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); } +.red { + color: red; +} /* FEEDBACK */ #session-feedback { diff --git a/server-core/src/main/java/io/onedev/server/web/util/ReferenceTransformer.java b/server-core/src/main/java/io/onedev/server/web/util/ReferenceTransformer.java index e2dd48b03d..df53e5b8a3 100644 --- a/server-core/src/main/java/io/onedev/server/web/util/ReferenceTransformer.java +++ b/server-core/src/main/java/io/onedev/server/web/util/ReferenceTransformer.java @@ -43,7 +43,7 @@ public class ReferenceTransformer implements Function { @Override protected String toHtml(Issue referenceable, String referenceText) { - return "" + referenceText + ""; } @@ -61,7 +61,7 @@ public class ReferenceTransformer implements Function { @Override protected String toHtml(PullRequest referenceable, String referenceText) { - return "" + referenceText + ""; } @@ -79,7 +79,7 @@ public class ReferenceTransformer implements Function { @Override protected String toHtml(Build referenceable, String referenceText) { - return "" + referenceText + ""; } diff --git a/server-plugin/server-plugin-executor-docker/src/main/java/io/onedev/server/plugin/docker/DockerModule.java b/server-plugin/server-plugin-executor-docker/src/main/java/io/onedev/server/plugin/docker/DockerModule.java index 76aee8ea75..f2e83e621a 100644 --- a/server-plugin/server-plugin-executor-docker/src/main/java/io/onedev/server/plugin/docker/DockerModule.java +++ b/server-plugin/server-plugin-executor-docker/src/main/java/io/onedev/server/plugin/docker/DockerModule.java @@ -56,6 +56,7 @@ public class DockerModule extends AbstractPluginModule { } }).checkReturnCode(); + return new DockerExecutor(); } catch (Exception e) { return null; diff --git a/server-plugin/server-plugin-executor-kubernetes/src/main/java/io/onedev/server/plugin/executor/kubernetes/KubernetesExecutor.java b/server-plugin/server-plugin-executor-kubernetes/src/main/java/io/onedev/server/plugin/executor/kubernetes/KubernetesExecutor.java index be23ee679a..bfdc7311c2 100644 --- a/server-plugin/server-plugin-executor-kubernetes/src/main/java/io/onedev/server/plugin/executor/kubernetes/KubernetesExecutor.java +++ b/server-plugin/server-plugin-executor-kubernetes/src/main/java/io/onedev/server/plugin/executor/kubernetes/KubernetesExecutor.java @@ -67,7 +67,7 @@ import io.onedev.server.web.editable.annotation.OmitName; import io.onedev.server.web.util.Testable; @Editable(order=100, description="This executor runs build jobs as pods in a kubernetes cluster. " - + "Note: Make sure server url is specified correctly in system " + + "Note: Make sure server url is specified correctly in system " + "setting as job pods need to access it to download source and artifacts") @Horizontal public class KubernetesExecutor extends JobExecutor implements Testable { diff --git a/server-plugin/server-plugin-executor-kubernetes/src/main/java/io/onedev/server/plugin/executor/kubernetes/KubernetesModule.java b/server-plugin/server-plugin-executor-kubernetes/src/main/java/io/onedev/server/plugin/executor/kubernetes/KubernetesModule.java index fba59ec478..b870ed1cda 100644 --- a/server-plugin/server-plugin-executor-kubernetes/src/main/java/io/onedev/server/plugin/executor/kubernetes/KubernetesModule.java +++ b/server-plugin/server-plugin-executor-kubernetes/src/main/java/io/onedev/server/plugin/executor/kubernetes/KubernetesModule.java @@ -58,6 +58,7 @@ public class KubernetesModule extends AbstractPluginModule { } }).checkReturnCode(); + return new KubernetesExecutor(); } catch (Exception e) { return null; diff --git a/server-product/src/test/java/io/onedev/server/product/Test.java b/server-product/src/test/java/io/onedev/server/product/Test.java index a96bf27a34..ea126ea925 100644 --- a/server-product/src/test/java/io/onedev/server/product/Test.java +++ b/server-product/src/test/java/io/onedev/server/product/Test.java @@ -5,5 +5,4 @@ public class Test { @org.junit.Test public void test() { } - } \ No newline at end of file