Skip to content

Commit 9efd831

Browse files
committed
[Feature: appcenter]
1 parent 35b5e16 commit 9efd831

98 files changed

Lines changed: 5265 additions & 25 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

build/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,11 @@
261261
<artifactId>cloudformation</artifactId>
262262
<version>${project.version}</version>
263263
</dependency>
264+
<dependency>
265+
<groupId>org.zstack</groupId>
266+
<artifactId>appcenter</artifactId>
267+
<version>${project.version}</version>
268+
</dependency>
264269
<dependency>
265270
<groupId>org.zstack</groupId>
266271
<artifactId>hybrid</artifactId>

compute/src/main/java/org/zstack/compute/host/HostBase.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -548,6 +548,8 @@ protected void handleLocalMessage(Message msg) {
548548
handle((ChangeHostConnectionStateMsg) msg);
549549
} else if (msg instanceof PingHostMsg) {
550550
handle((PingHostMsg) msg);
551+
} else if (msg instanceof ScanVmPortMsg) {
552+
handle((ScanVmPortMsg) msg);
551553
} else if (msg instanceof UpdateHostOSMsg) {
552554
handle((UpdateHostOSMsg) msg);
553555
} else {
@@ -603,7 +605,17 @@ public String getName() {
603605
});
604606
}
605607

606-
private void doPingHost(PingHostMsg msg, ReturnValueCompletion<PingHostReply> completion) {
608+
protected void scanVmPorts(final ScanVmPortMsg msg) {
609+
ScanVmPortReply reply = new ScanVmPortReply();
610+
reply.setSupportScan(false);
611+
bus.reply(msg, reply);
612+
}
613+
614+
private void handle(final ScanVmPortMsg msg) {
615+
scanVmPorts(msg);
616+
}
617+
618+
private void doPingHost(final PingHostMsg msg, ReturnValueCompletion<PingHostReply> completion) {
607619
final PingHostReply reply = new PingHostReply();
608620
if (self.getStatus() == HostStatus.Connecting) {
609621
completion.fail(operr("host is connecting, ping failed"));

compute/src/main/java/org/zstack/compute/vm/VmSystemTags.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,6 @@ public class VmSystemTags {
127127
);
128128

129129
public static PatternedSystemTag PACKER_BUILD = new PatternedSystemTag("packer", VmInstanceVO.class);
130-
131130
public static final String VM_PRIORITY_TOKEN = "vmPriority";
132131
public static PatternedSystemTag VM_PRIORITY = new PatternedSystemTag(String.format("vmPriority::{%s}", VM_PRIORITY_TOKEN), VmInstanceVO.class
133132
);
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
CREATE TABLE IF NOT EXISTS `AppBuildSystemVO` (
2+
`uuid` VARCHAR(32) NOT NULL UNIQUE,
3+
`name` VARCHAR(255) NOT NULL,
4+
`description` VARCHAR(2048) DEFAULT NULL,
5+
`storageType` VARCHAR(32) NOT NULL,
6+
`url` VARCHAR(1024) NOT NULL,
7+
`hostname` VARCHAR(255) NOT NULL,
8+
`username` VARCHAR(255) NOT NULL,
9+
`password` VARCHAR(255) NOT NULL,
10+
`sshPort` int unsigned NOT NULL,
11+
`status` varchar(32) NOT NULL,
12+
`state` varchar(32) NOT NULL,
13+
`totalCapacity` bigint unsigned DEFAULT 0,
14+
`availableCapacity` bigint unsigned DEFAULT 0,
15+
`lastOpDate` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
16+
`createDate` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
17+
PRIMARY KEY (`uuid`)
18+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
19+
20+
CREATE TABLE IF NOT EXISTS `AppBuildSystemZoneRefVO` (
21+
`id` bigint unsigned NOT NULL UNIQUE AUTO_INCREMENT,
22+
`buildSystemUuid` varchar(32) NOT NULL,
23+
`zoneUuid` varchar(32) NOT NULL,
24+
`lastOpDate` timestamp ON UPDATE CURRENT_TIMESTAMP,
25+
`createDate` timestamp,
26+
PRIMARY KEY (`id`),
27+
CONSTRAINT `fkAppBuildSystemZoneRefVOZoneEO` FOREIGN KEY (`zoneUuid`) REFERENCES ZoneEO (`uuid`) ON DELETE CASCADE,
28+
CONSTRAINT `fkAppBuildSystemZoneRefVOAppBuildSystemVO` FOREIGN KEY (`buildSystemUuid`) REFERENCES AppBuildSystemVO (`uuid`) ON DELETE CASCADE
29+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
30+
31+
CREATE TABLE IF NOT EXISTS `BuildApplicationVO` (
32+
`uuid` VARCHAR(32) NOT NULL UNIQUE,
33+
`name` VARCHAR(255) NOT NULL,
34+
`description` VARCHAR(2048) DEFAULT NULL,
35+
`buildSystemUuid` varchar(32) DEFAULT NULL,
36+
`templateContent` mediumtext NOT NULL,
37+
`appMetaData` mediumtext NOT NULL,
38+
`appId` varchar(255) NOT NULL,
39+
`version` varchar(127) NOT NULL,
40+
`installPath` varchar(1024) DEFAULT NULL,
41+
`status` varchar(32) NOT NULL,
42+
`lastOpDate` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
43+
`createDate` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
44+
PRIMARY KEY (`uuid`),
45+
CONSTRAINT `fkBuildApplicationVOAppBuildSystemVO` FOREIGN KEY (`buildSystemUuid`) REFERENCES AppBuildSystemVO (`uuid`) ON DELETE RESTRICT
46+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
47+
48+
CREATE TABLE IF NOT EXISTS `BuildAppExportHistoryVO` (
49+
`id` bigint unsigned NOT NULL UNIQUE AUTO_INCREMENT,
50+
`buildAppUuid` VARCHAR(32) NOT NULL,
51+
`name` VARCHAR(255) DEFAULT NULL,
52+
`path` VARCHAR(2048) DEFAULT NULL,
53+
`size` bigint unsigned DEFAULT 0,
54+
`md5Sum` varchar(255) NOT NULL,
55+
`version` varchar(127) NOT NULL,
56+
`status` varchar(32) NOT NULL,
57+
`lastOpDate` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
58+
`createDate` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
59+
PRIMARY KEY (`id`)
60+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
61+
CREATE INDEX idxBuildAppExportHistoryVObuildAppUuid ON BuildAppExportHistoryVO (buildAppUuid);
62+
CREATE INDEX idxBuildAppExportHistoryVOname ON BuildAppExportHistoryVO (name);
63+
64+
CREATE TABLE IF NOT EXISTS `BuildAppImageRefVO` (
65+
`id` bigint unsigned NOT NULL UNIQUE AUTO_INCREMENT,
66+
`imageUuid` varchar(32) NOT NULL,
67+
`imageName` varchar(255) NOT NULL,
68+
`buildAppUuid` varchar(32) NOT NULL,
69+
`backupStorageUuid` varchar(32) NOT NULL,
70+
`lastOpDate` timestamp ON UPDATE CURRENT_TIMESTAMP,
71+
`createDate` timestamp,
72+
PRIMARY KEY (`id`),
73+
CONSTRAINT `fkBuildAppImageRefVOImageVO` FOREIGN KEY (`imageUuid`) REFERENCES ImageEO (`uuid`) ON DELETE RESTRICT,
74+
CONSTRAINT `fkBuildAppImageRefVOBackupStorageEO` FOREIGN KEY (`backupStorageUuid`) REFERENCES BackupStorageEO (`uuid`) ON DELETE RESTRICT,
75+
CONSTRAINT `fkBuildAppImageRefVOBuildApplicationVO` FOREIGN KEY (`buildAppUuid`) REFERENCES BuildApplicationVO (`uuid`) ON DELETE CASCADE
76+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
77+
78+
CREATE TABLE IF NOT EXISTS `PublishAppVO` (
79+
`uuid` VARCHAR(32) NOT NULL UNIQUE,
80+
`name` VARCHAR(255) NOT NULL,
81+
`description` VARCHAR(2048) DEFAULT NULL,
82+
`buildAppUuid` varchar(32) DEFAULT NULL,
83+
`templateContent` mediumtext NOT NULL,
84+
`appMetaData` mediumtext NOT NULL,
85+
`preParams` text DEFAULT NULL,
86+
`appId` varchar(255) NOT NULL,
87+
`version` varchar(127) NOT NULL,
88+
`type` varchar(32) NOT NULL,
89+
`status` varchar(32) NOT NULL,
90+
`lastOpDate` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
91+
`createDate` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
92+
PRIMARY KEY (`uuid`),
93+
CONSTRAINT `fkPublishAppVOBuildApplicationVO` FOREIGN KEY (`buildAppUuid`) REFERENCES BuildApplicationVO (`uuid`) ON DELETE SET NULL
94+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
95+
96+
CREATE TABLE IF NOT EXISTS `PublishAppResourceRefVO` (
97+
`id` bigint unsigned NOT NULL UNIQUE AUTO_INCREMENT,
98+
`appUuid` VARCHAR(32) NOT NULL,
99+
`resourceUuid` VARCHAR(32) NOT NULL,
100+
`resourceType` VARCHAR(255) NOT NULL,
101+
`lastOpDate` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
102+
`createDate` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
103+
CONSTRAINT `fkPublishAppResourceRefVOPublishAppVO` FOREIGN KEY (`appUuid`) REFERENCES PublishAppVO (`uuid`) ON DELETE CASCADE,
104+
CONSTRAINT `fkPublishAppResourceRefVOResourceVO` FOREIGN KEY (`resourceUuid`) REFERENCES ResourceVO (`uuid`) ON DELETE CASCADE,
105+
PRIMARY KEY (`id`)
106+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
107+
108+
ALTER TABLE CloudFormationStackResourceRefVO ADD COLUMN resourceName VARCHAR(255) DEFAULT NULL;
109+
110+
ALTER TABLE PublishAppVO ADD COLUMN vmRelationship text DEFAULT NULL;
111+
112+
CREATE TABLE IF NOT EXISTS `ResourceStackVmPortRefVO` (
113+
`id` bigint unsigned NOT NULL UNIQUE AUTO_INCREMENT,
114+
`stackUuid` VARCHAR(32) NOT NULL,
115+
`vmInstanceUuid` VARCHAR(32) NOT NULL,
116+
`port` int unsigned NOT NULL,
117+
`status` VARCHAR(64) NOT NULL,
118+
`lastOpDate` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
119+
`createDate` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
120+
CONSTRAINT `fkResourceStackVmPortRefVOResourceStackVO` FOREIGN KEY (`stackUuid`) REFERENCES ResourceStackVO (`uuid`) ON DELETE CASCADE,
121+
CONSTRAINT `fkResourceStackVmPortRefVOVmInstanceVO` FOREIGN KEY (`vmInstanceUuid`) REFERENCES VmInstanceEO (`uuid`) ON DELETE CASCADE,
122+
PRIMARY KEY (`id`)
123+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
124+
125+
ALTER TABLE ResourceStackVO ADD COLUMN outputs text DEFAULT NULL;
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package org.zstack.header.host;
2+
3+
import org.zstack.header.message.NeedReplyMessage;
4+
5+
/**
6+
* Created by mingjian.deng on 2019/11/25.
7+
*/
8+
public class ScanVmPortMsg extends NeedReplyMessage implements HostMessage {
9+
private String ip;
10+
private String brName;
11+
private int port;
12+
private String hostUuid;
13+
14+
public String getIp() {
15+
return ip;
16+
}
17+
18+
public void setIp(String ip) {
19+
this.ip = ip;
20+
}
21+
22+
public String getBrName() {
23+
return brName;
24+
}
25+
26+
public void setBrName(String brName) {
27+
this.brName = brName;
28+
}
29+
30+
public int getPort() {
31+
return port;
32+
}
33+
34+
public void setPort(int port) {
35+
this.port = port;
36+
}
37+
38+
@Override
39+
public String getHostUuid() {
40+
return hostUuid;
41+
}
42+
43+
public void setHostUuid(String hostUuid) {
44+
this.hostUuid = hostUuid;
45+
}
46+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package org.zstack.header.host;
2+
3+
import org.zstack.header.message.MessageReply;
4+
5+
import java.util.HashMap;
6+
import java.util.Map;
7+
8+
/**
9+
* Created by mingjian.deng on 2019/11/25.
10+
*/
11+
public class ScanVmPortReply extends MessageReply {
12+
Map<String, String> status = new HashMap<>();
13+
private boolean supportScan;
14+
15+
public Map<String, String> getStatus() {
16+
return status;
17+
}
18+
19+
public void setStatus(Map<String, String> status) {
20+
this.status = status;
21+
}
22+
23+
public boolean isSupportScan() {
24+
return supportScan;
25+
}
26+
27+
public void setSupportScan(boolean supportScan) {
28+
this.supportScan = supportScan;
29+
}
30+
}

header/src/main/java/org/zstack/header/image/APICreateRootVolumeTemplateFromRootVolumeMsg.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.util.concurrent.TimeUnit;
1515

1616
@Action(category = ImageConstant.ACTION_CATEGORY)
17+
@TagResourceType(ImageVO.class)
1718
@RestRequest(
1819
path = "/images/root-volume-templates/from/volumes/{rootVolumeUuid}",
1920
method = HttpMethod.POST,

header/src/main/java/org/zstack/header/query/APIQueryMessage.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public abstract class APIQueryMessage extends APISyncCallMessage {
1414
private boolean count;
1515
private String groupBy;
1616
private boolean replyWithCount;
17+
private String filterName;
1718
private String sortBy;
1819
@APIParam(required = false, validValues = {"asc", "desc"})
1920
private String sortDirection = "asc";
@@ -121,4 +122,12 @@ public boolean isCount() {
121122
public void setCount(boolean count) {
122123
this.count = count;
123124
}
125+
126+
public String getFilterName() {
127+
return filterName;
128+
}
129+
130+
public void setFilterName(String filterName) {
131+
this.filterName = filterName;
132+
}
124133
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package org.zstack.header.query;
2+
3+
import java.util.List;
4+
5+
/**
6+
* Created by mingjian.deng on 2020/3/6.
7+
*/
8+
public interface QueryBelongFilter {
9+
String filterName();
10+
void filter(List result, String condition);
11+
}

image/src/main/java/org/zstack/image/ImageSystemTags.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,11 @@ public class ImageSystemTags {
3737
public static PatternedSystemTag IMAGE_CREATED_BY_SYSTEM =
3838
new PatternedSystemTag(String.format("%s", IMAGE_CREATED_BY_SYSTEM_TOKEN), ImageVO.class);
3939

40-
public static PatternedSystemTag PACKER_BUILD = new PatternedSystemTag("packer", ImageVO.class);
41-
4240
public static String IMAGE_GUEST_TOOLS_VERSION_TOKEN = "guestToolsVersion";
4341
public static PatternedSystemTag IMAGE_GUEST_TOOLS =
4442
new PatternedSystemTag(String.format("GuestTools::{%s}", IMAGE_GUEST_TOOLS_VERSION_TOKEN), ImageVO.class);
43+
public static String APPCENTER_BUILD_TOKEN = "buildapp";
44+
public static PatternedSystemTag APPCENTER_BUILD = new PatternedSystemTag(String.format("buildapp::{%s}", APPCENTER_BUILD_TOKEN), ImageVO.class);
45+
46+
public static PatternedSystemTag PACKER_BUILD = new PatternedSystemTag("packer", ImageVO.class);
4547
}

0 commit comments

Comments
 (0)