mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
ui: cleanup and name changes
Drop the name Primate Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
parent
b07816b730
commit
d6558d9151
28
pom.xml
28
pom.xml
@ -1005,33 +1005,7 @@
|
||||
<exclude>tools/ngui/static/bootstrap/*</exclude>
|
||||
<exclude>tools/ngui/static/js/lib/*</exclude>
|
||||
<exclude>tools/transifex/.tx/config</exclude>
|
||||
<exclude>ui/legacy/css/src/scss/components/token-input-facebook.scss</exclude>
|
||||
<exclude>ui/l10n/*</exclude>
|
||||
<exclude>ui/legacy/lib/flot/jquery.colorhelpers.js</exclude>
|
||||
<exclude>ui/legacy/lib/flot/jquery.flot.crosshair.js</exclude>
|
||||
<exclude>ui/legacy/lib/flot/jquery.flot.fillbetween.js</exclude>
|
||||
<exclude>ui/legacy/lib/flot/jquery.flot.image.js</exclude>
|
||||
<exclude>ui/legacy/lib/flot/jquery.flot.js</exclude>
|
||||
<exclude>ui/legacy/lib/flot/jquery.flot.navigate.js</exclude>
|
||||
<exclude>ui/legacy/lib/flot/jquery.flot.pie.js</exclude>
|
||||
<exclude>ui/legacy/lib/flot/jquery.flot.resize.js</exclude>
|
||||
<exclude>ui/legacy/lib/flot/jquery.flot.selection.js</exclude>
|
||||
<exclude>ui/legacy/lib/flot/jquery.flot.stack.js</exclude>
|
||||
<exclude>ui/legacy/lib/flot/jquery.flot.symbol.js</exclude>
|
||||
<exclude>ui/legacy/lib/flot/jquery.flot.threshold.js</exclude>
|
||||
<exclude>ui/legacy/lib/jquery-ui/css/jquery-ui.css</exclude>
|
||||
<exclude>ui/legacy/lib/jquery-ui/index.html</exclude>
|
||||
<exclude>ui/legacy/lib/jquery-ui/js/jquery-ui.js</exclude>
|
||||
<exclude>ui/legacy/lib/jquery.cookies.js</exclude>
|
||||
<exclude>ui/legacy/lib/jquery.easing.js</exclude>
|
||||
<exclude>ui/legacy/lib/jquery.js</exclude>
|
||||
<exclude>ui/legacy/lib/jquery.md5.js</exclude>
|
||||
<exclude>ui/legacy/lib/jquery.validate.js</exclude>
|
||||
<exclude>ui/legacy/lib/jquery.tokeninput.js</exclude>
|
||||
<exclude>ui/legacy/lib/qunit/qunit.css</exclude>
|
||||
<exclude>ui/legacy/lib/qunit/qunit.js</exclude>
|
||||
<exclude>ui/legacy/lib/reset.css</exclude>
|
||||
<exclude>ui/legacy/lib/require.js</exclude>
|
||||
<exclude>ui/*</exclude>
|
||||
<exclude>utils/testsmallfileinactive</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
|
||||
18
ui/.gitignore
vendored
18
ui/.gitignore
vendored
@ -1,5 +1,23 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
.DS_Store
|
||||
node_modules
|
||||
coverage
|
||||
/dist
|
||||
|
||||
# local env files
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
# Contributing to Primate
|
||||
# Contributing to CloudStack UI
|
||||
|
||||
## Summary
|
||||
|
||||
This document covers how to contribute to the Primate project. Primate uses Github PRs to manage code contributions.
|
||||
This document covers how to contribute to the UI project. It uses Github PRs to manage code contributions.
|
||||
These instructions assume you have a GitHub.com account, so if you don't have one you will have to create one.
|
||||
Your proposed code changes will be published to your own fork of the Primate project and you will submit a Pull Request for your changes to be added.
|
||||
Your proposed code changes will be published to your own fork of the project and you will submit a Pull Request for your changes to be added.
|
||||
|
||||
Please refer to project [docs](docs) for reference on standard way of component
|
||||
configuration, development, usage, extension and testing.
|
||||
@ -27,18 +27,18 @@ No back porting / cherry-picking features to existing branches!
|
||||
|
||||
## Forking
|
||||
|
||||
In your browser, navigate to: [https://github.com/apache/cloudstack-primate](https://github.com/apache/cloudstack-primate)
|
||||
In your browser, navigate to: [https://github.com/apache/cloudstack](https://github.com/apache/cloudstack)
|
||||
|
||||
Fork the repository by clicking on the 'Fork' button on the top right hand side.
|
||||
The fork will happen and you will be taken to your own fork of the repository.
|
||||
Copy the Git repository URL by clicking on the clipboard next to the URL on the right hand side of the page under '**HTTPS** clone URL'. You will paste this URL when doing the following `git clone` command.
|
||||
|
||||
On your workstation, follow these steps to setup a local repository for working on Primate:
|
||||
On your workstation, follow these steps to setup a local repository for working on UI:
|
||||
|
||||
``` bash
|
||||
$ git clone https://github.com/YOUR_ACCOUNT/primate.git
|
||||
$ cd primate
|
||||
$ git remote add upstream https://github.com/apache/cloudstack-primate.git
|
||||
$ git clone https://github.com/YOUR_ACCOUNT/cloudstack.git
|
||||
$ cd cloudstack/ui
|
||||
$ git remote add upstream https://github.com/apache/cloudstack.git
|
||||
$ git checkout master
|
||||
$ git fetch upstream
|
||||
$ git rebase upstream/master
|
||||
@ -48,7 +48,7 @@ $ git rebase upstream/master
|
||||
|
||||
|
||||
It is important that you create a new branch to make changes on and that you do not change the `master` branch (other than to rebase in changes from `upstream/master`). In this example I will assume you will be making your changes to a branch called `feature_x`.
|
||||
This `feature_x` branch will be created on your local repository and will be pushed to your forked repository on GitHub. Once this branch is on your fork you will create a Pull Request for the changes to be added to the Primate project.
|
||||
This `feature_x` branch will be created on your local repository and will be pushed to your forked repository on GitHub. Once this branch is on your fork you will create a Pull Request for the changes to be added to the UI project.
|
||||
|
||||
It is best practice to create a new branch each time you want to contribute to the project and only track the changes for that pull request in this branch.
|
||||
|
||||
@ -101,7 +101,7 @@ Now that the `feature_x` branch has been pushed to your GitHub repository, you c
|
||||
|
||||
To initiate the pull request, do the following:
|
||||
|
||||
1. In your browser, navigate to your forked repository: [https://github.com/YOUR_ACCOUNT/primate](https://github.com/YOUR_ACCOUNT/primate)
|
||||
1. In your browser, navigate to your forked repository: [https://github.com/YOUR_ACCOUNT/cloudstack](https://github.com/YOUR_ACCOUNT/cloudstack)
|
||||
2. Click the new button called '**Compare & pull request**' that showed up just above the main area in your forked repository
|
||||
3. Validate the pull request will be into the upstream `master` and will be from your `feature_x` branch
|
||||
4. Enter a detailed description of the work you have done and then click '**Send pull request**'
|
||||
|
||||
@ -15,12 +15,12 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
# Build example: docker build -t apache/cloudstack-primate:latest .
|
||||
# Build example: docker build -t <name> .
|
||||
|
||||
FROM node:lts-stretch AS build
|
||||
|
||||
MAINTAINER "Apache CloudStack" <dev@cloudstack.apache.org>
|
||||
LABEL Description="Apache CloudStack Primate; Modern role-base progressive UI for Apache CloudStack"
|
||||
LABEL Description="Apache CloudStack UI; Modern role-base progressive UI for Apache CloudStack"
|
||||
LABEL Vendor="Apache.org"
|
||||
LABEL License=ApacheV2
|
||||
LABEL Version=0.5.0
|
||||
@ -35,12 +35,12 @@ RUN npm run build
|
||||
|
||||
FROM nginx:alpine AS runtime
|
||||
|
||||
LABEL org.opencontainers.image.title="Apache CloudStack Primate" \
|
||||
LABEL org.opencontainers.image.title="Apache CloudStack UI" \
|
||||
org.opencontainers.image.description="A modern role-based progressive CloudStack UI" \
|
||||
org.opencontainers.image.authors="Apache CloudStack Contributors" \
|
||||
org.opencontainers.image.url="https://github.com/apache/cloudstack-primate" \
|
||||
org.opencontainers.image.documentation="https://github.com/apache/cloudstack-primate/README.md" \
|
||||
org.opencontainers.image.source="https://github.com/apache/cloudstack-primate" \
|
||||
org.opencontainers.image.url="https://github.com/apache/cloudstack" \
|
||||
org.opencontainers.image.documentation="https://github.com/apache/cloudstack/blob/master/ui/README.md" \
|
||||
org.opencontainers.image.source="https://github.com/apache/cloudstack" \
|
||||
org.opencontainers.image.vendor="The Apache Software Foundation" \
|
||||
org.opencontainers.image.licenses="Apache-2.0" \
|
||||
org.opencontainers.image.ref.name="latest"
|
||||
|
||||
48
ui/README.md
48
ui/README.md
@ -1,8 +1,8 @@
|
||||
# CloudStack Primate [](https://travis-ci.org/apache/cloudstack-primate)
|
||||
# CloudStack UI
|
||||
|
||||
A modern role-based progressive CloudStack UI based on VueJS and Ant Design.
|
||||
|
||||

|
||||

|
||||
|
||||
## Getting Started
|
||||
|
||||
@ -25,8 +25,8 @@ Optionally, you may also install system-wide dev tools:
|
||||
|
||||
Clone the repository:
|
||||
|
||||
git clone https://github.com/apache/cloudstack-primate.git
|
||||
cd cloudstack-primate
|
||||
git clone https://github.com/apache/cloudstack.git
|
||||
cd cloudstack/ui
|
||||
npm install
|
||||
|
||||
Override the default `CS_URL` to a running CloudStack management server:
|
||||
@ -68,15 +68,15 @@ Fetch dependencies and build:
|
||||
This creates a static webpack application in `dist/`, which can then be served
|
||||
from any web server or CloudStack management server (jetty).
|
||||
|
||||
To use CloudStack management server (jetty), you may copy the built Primate build
|
||||
to a new/existing webapp directory on the management server host. For example:
|
||||
To use CloudStack management server (jetty), you may copy the built UI to the
|
||||
webapp directory on the management server host. For example:
|
||||
|
||||
npm install
|
||||
npm run build
|
||||
cd dist
|
||||
mkdir -p /usr/share/cloudstack-management/webapp/primate
|
||||
cp -vr . /usr/share/cloudstack-management/webapp/primate/
|
||||
# Use Primate at {management-server}:8080/client/primate in browser
|
||||
mkdir -p /usr/share/cloudstack-management/webapp/
|
||||
cp -vr . /usr/share/cloudstack-management/webapp/
|
||||
# Access UI at {management-server}:8080/client in browser
|
||||
|
||||
If the webapp directory is changed, please change the `webapp.dir` in the
|
||||
`/etc/cloudstack/management/server.properties` and restart the management server host.
|
||||
@ -84,7 +84,7 @@ If the webapp directory is changed, please change the `webapp.dir` in the
|
||||
To use a separate webserver, note that the API server is accessed through the path
|
||||
`/client`, which needs be forwarded to an actual CloudStack instance.
|
||||
|
||||
For example, a simple way to serve Primate with nginx can be implemented with the
|
||||
For example, a simple way to serve UI with nginx can be implemented with the
|
||||
following nginx configuration (to be put into /etc/nginx/conf.d/default.conf or similar):
|
||||
|
||||
```nginx
|
||||
@ -92,8 +92,8 @@ server {
|
||||
listen 80;
|
||||
server_name localhost;
|
||||
location / {
|
||||
# /src/primate/dist contains the built Primate webpack
|
||||
root /src/primate/dist;
|
||||
# /src/ui/dist contains the built UI webpack
|
||||
root /src/ui/dist;
|
||||
index index.html;
|
||||
}
|
||||
location /client/ {
|
||||
@ -107,18 +107,17 @@ server {
|
||||
### Docker
|
||||
|
||||
A production-ready Docker container can also be built with the provided
|
||||
Dockerfile and build script. Official builds are available here:
|
||||
https://hub.docker.com/r/apache/cloudstack-primate
|
||||
Dockerfile and build script.
|
||||
|
||||
Make sure Docker is installed, then run:
|
||||
|
||||
bash tools/docker.sh
|
||||
bash docker.sh
|
||||
|
||||
Change the example configuration in `nginx/default.conf` according to your needs.
|
||||
|
||||
Run Primate:
|
||||
Run UI:
|
||||
|
||||
docker run -ti --rm -p 8080:80 -v $(pwd)/nginx:/etc/nginx/conf.d:ro cloudstack-primate:latest
|
||||
docker run -ti --rm -p 8080:80 -v $(pwd)/nginx:/etc/nginx/conf.d:ro cloudstack-ui:latest
|
||||
|
||||
### Packaging
|
||||
|
||||
@ -138,13 +137,13 @@ docker container:
|
||||
|
||||
- VueJS Guide: https://vuejs.org/v2/guide/
|
||||
- Vue Ant Design: https://www.antdv.com/docs/vue/introduce/
|
||||
- Primate Developer [Docs](docs)
|
||||
- UI Developer [Docs](docs)
|
||||
- JavaScript ES6 Reference: https://www.tutorialspoint.com/es6/
|
||||
- Introduction to ES6: https://scrimba.com/g/gintrotoes6
|
||||
|
||||
## Attributions
|
||||
|
||||
Primate uses the following:
|
||||
The UI uses the following:
|
||||
|
||||
- [VueJS](https://vuejs.org/)
|
||||
- [Ant Design Spec](https://ant.design/docs/spec/introduce)
|
||||
@ -156,13 +155,16 @@ Primate uses the following:
|
||||
|
||||
## History
|
||||
|
||||
The project was created by [Rohit Yadav](https://rohityadav.cloud) over several
|
||||
weekends during late 2018 and early 2019. During ApacheCon CCCUS19, on 9th
|
||||
September 2019, Primate was introduced and demoed as part of the talk [Modern UI
|
||||
The modern UI, originally called Primate, was created by [Rohit
|
||||
Yadav](https://rohityadav.cloud) over several weekends during late 2018 and
|
||||
early 2019. During ApacheCon CCCUS19, on 9th September 2019, Primate was
|
||||
introduced and demoed as part of the talk [Modern UI
|
||||
for CloudStack](https://rohityadav.cloud/files/talks/cccna19-primate.pdf)
|
||||
([video](https://www.youtube.com/watch?v=F2KwZhechzs)).
|
||||
[Primate](https://markmail.org/message/vxnskmwhfaagnm4r) was accepted by the
|
||||
Apache CloudStack project on 21 Oct 2019.
|
||||
Apache CloudStack project on 21 Oct 2019. The original repo was [merged with the
|
||||
main apache/cloudstack](https://markmail.org/message/bgnn4xkjnlzseeuv) repo on
|
||||
20 Jan 2021.
|
||||
|
||||
## License
|
||||
|
||||
|
||||
@ -30,4 +30,4 @@ LABEL_DATE="--label \"org.opencontainers.image.created=${DATE}\""
|
||||
GIT_REV="$(git rev-parse HEAD)"
|
||||
LABEL_GIT_REV="--label \"org.opencontainers.image.revision=${GIT_REV}\""
|
||||
|
||||
docker build -t cloudstack-primate ${LABEL_DATE} ${LABEL_GIT_REV} ${LABEL_GIT_TAG} ..
|
||||
docker build -t cloudstack-ui ${LABEL_DATE} ${LABEL_GIT_REV} ${LABEL_GIT_TAG} .
|
||||
@ -1,6 +1,6 @@
|
||||
# Primate Development
|
||||
# UI Development
|
||||
|
||||
Primate is a modern role-based progressive CloudStack UI based on VueJS and Ant Design..
|
||||
The modern CloudStack UI is role-based progressive app that uses VueJS and Ant Design.
|
||||
|
||||
Javascript, VueJS references:
|
||||
- https://www.w3schools.com/js/
|
||||
@ -29,8 +29,8 @@ The following tree shows the basic UI codebase filesystem:
|
||||
Clone the repository:
|
||||
|
||||
```
|
||||
git clone https://github.com/apache/cloudstack-primate.git
|
||||
cd cloudstack-primate
|
||||
git clone https://github.com/apache/cloudstack.git
|
||||
cd cloudstack/ui
|
||||
npm install
|
||||
```
|
||||
Override the default `CS_URL` to a running CloudStack management server:
|
||||
@ -200,7 +200,7 @@ For example:
|
||||
## Resource Detail View Customization
|
||||
|
||||
From the List View of the resources, on can navigate to the individual
|
||||
resource's detail view, which in CloudStack Primate we refer to as the
|
||||
resource's detail view, which in CloudStack UI we refer to as the
|
||||
*Resource View* by click on the specific resource.
|
||||
The Resource View has 2 sections:
|
||||
- InfoCard to the left that has basic / minimal details of that resource along
|
||||
@ -229,4 +229,4 @@ For example,
|
||||
]
|
||||
```
|
||||
|
||||
Additional tabs can be defined by adding on to the tabs section.
|
||||
Additional tabs can be defined by adding on to the tabs section.
|
||||
|
||||
@ -15,4 +15,16 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
/usr/share/cloudstack-management/webapp/primate/*
|
||||
server {
|
||||
listen 80;
|
||||
server_name localhost;
|
||||
location / {
|
||||
root /usr/share/nginx/html;
|
||||
index index.html;
|
||||
}
|
||||
location /client/ {
|
||||
# http://127.0.0.1:8080 should be replaced your CloudStack management
|
||||
# Server's actual URI
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
}
|
||||
}
|
||||
2
ui/package-lock.json
generated
2
ui/package-lock.json
generated
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "primate",
|
||||
"name": "cloudstack-ui",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
{
|
||||
"name": "primate",
|
||||
"name": "cloudstack-ui",
|
||||
"description": "Modern role-based Apache CloudStack UI",
|
||||
"version": "1.0.0",
|
||||
"homepage": "https://cloudstack.apache.org/",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/apache/cloudstack-primate.git"
|
||||
"url": "https://github.com/apache/cloudstack.git"
|
||||
},
|
||||
"author": {
|
||||
"name": "Apache CloudStack Developers",
|
||||
@ -21,7 +21,7 @@
|
||||
],
|
||||
"bugs": {
|
||||
"mail": "dev@cloudstack.apache.org",
|
||||
"url": "https://github.com/apache/cloudstack-primate/issues"
|
||||
"url": "https://github.com/apache/cloudstack/issues"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "vue-cli-service lint --no-fix && vue-cli-service serve",
|
||||
|
||||
@ -1,86 +0,0 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
%define __os_install_post %{nil}
|
||||
%global debug_package %{nil}
|
||||
|
||||
Name: cloudstack
|
||||
Summary: Modern Apache CloudStack UI - Primate
|
||||
Release: %{_rel}
|
||||
Version: %{_ver}
|
||||
License: Apache License, Version 2
|
||||
Vendor: Apache CloudStack <dev@cloudstack.apache.org>
|
||||
Packager: Apache CloudStack <dev@cloudstack.apache.org>
|
||||
Group: System Environment/Libraries
|
||||
Source0: primate-%{_ver}.tgz
|
||||
BuildRoot: %{_tmppath}/%{name}-%{release}-build
|
||||
|
||||
%description
|
||||
Modern Apache CloudStack UI - Primate
|
||||
|
||||
%package primate
|
||||
Summary: Modern Apache CloudStack UI - Primate
|
||||
Requires: cloudstack-management >= 4.15.0
|
||||
Group: System Environment/Libraries
|
||||
%description primate
|
||||
Primate - modern role-base progressive UI for Apache CloudStack
|
||||
|
||||
%prep
|
||||
echo "Starting Primate build..."
|
||||
|
||||
%setup -q -n %{name}
|
||||
|
||||
%build
|
||||
|
||||
echo "Executing npm build..."
|
||||
rm -fr node_modules
|
||||
npm install
|
||||
npm run build
|
||||
|
||||
%install
|
||||
echo "Installing Primate"
|
||||
ls -lahi
|
||||
[ ${RPM_BUILD_ROOT} != "/" ] && rm -rf ${RPM_BUILD_ROOT}
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/cloudstack-management/webapp/primate
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/cloudstack/primate
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_bindir}/
|
||||
|
||||
ls
|
||||
cp -vr dist/* ${RPM_BUILD_ROOT}%{_datadir}/cloudstack-management/webapp/primate/
|
||||
# copy config to ${RPM_BUILD_ROOT}%{_sysconfdir}/cloudstack/primate
|
||||
|
||||
%clean
|
||||
[ ${RPM_BUILD_ROOT} != "/" ] && rm -rf ${RPM_BUILD_ROOT}
|
||||
|
||||
%preun primate
|
||||
echo "Running through the pre-uninstall cloudstack-primate"
|
||||
|
||||
%pre primate
|
||||
echo "Running through pre-install cloudstack-primate"
|
||||
|
||||
%post primate
|
||||
echo "Running through post-install cloudstack-primate"
|
||||
|
||||
%postun primate
|
||||
echo "Running through the post-uninstall cloudstack-primate"
|
||||
|
||||
%files primate
|
||||
%defattr(-,root,root,-)
|
||||
%{_datadir}/cloudstack-management/webapp/primate/*
|
||||
%changelog
|
||||
* Thu Feb 27 2020 Rohit Yadav <rohit@apache.org> 0.1.0
|
||||
- CloudStack Primate RPM
|
||||
@ -1,5 +0,0 @@
|
||||
cloudstack-primate (VERSION) unstable; urgency=low
|
||||
|
||||
* CloudStack Primate version VERSION
|
||||
|
||||
-- Rohit Yadav <rohit@apache.org> Thu, 27 Feb 2020 12:00:00 +0530
|
||||
@ -1 +0,0 @@
|
||||
9
|
||||
@ -1,13 +0,0 @@
|
||||
Source: cloudstack-primate
|
||||
Section: libs
|
||||
Priority: extra
|
||||
Maintainer: Apache CloudStack <dev@cloudstack.apache.org>
|
||||
Build-Depends: debhelper (>= 7), npm, nodejs
|
||||
Standards-Version: 3.8.1
|
||||
Homepage: https://cloudstack.apache.org/
|
||||
|
||||
Package: cloudstack-primate
|
||||
Architecture: all
|
||||
Depends: cloudstack-management (>= 4.15.0)
|
||||
Description: CloudStack Primate
|
||||
The modern CloudStack UI - Primate
|
||||
@ -1,16 +0,0 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
@ -1,58 +0,0 @@
|
||||
#!/usr/bin/make -f
|
||||
# -*- makefile -*-
|
||||
DEBVERS := $(shell dpkg-parsechangelog | sed -n -e 's/^Version: //p')
|
||||
PACKAGE = $(shell dh_listpackages|head -n 1|cut -d '-' -f 1)
|
||||
CLOUDSTACK = "cloudstack"
|
||||
SYSCONFDIR = "/etc"
|
||||
USRBINDIR = "/usr/bin"
|
||||
DESTDIR = "debian/tmp"
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
export DH_VERBOSE=1
|
||||
|
||||
# This has to be exported to make some magic below work.
|
||||
export DH_OPTIONS
|
||||
|
||||
configure: configure-stamp
|
||||
configure-stamp:
|
||||
dh_testdir
|
||||
|
||||
build: build-indep
|
||||
|
||||
build-indep: build-indep-stamp
|
||||
|
||||
build-indep-stamp: configure
|
||||
cd .. && npm install && npm run build
|
||||
touch $@
|
||||
|
||||
clean:
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
rm -f build-arch-stamp build-indep-stamp
|
||||
dh_clean
|
||||
|
||||
install:
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_prep -s
|
||||
|
||||
# cloudstack-primate
|
||||
mkdir -p $(DESTDIR)/usr/share/$(CLOUDSTACK)-management/webapp/primate
|
||||
cp -vr ../dist/* $(DESTDIR)/usr/share/$(CLOUDSTACK)-management/webapp/primate/
|
||||
|
||||
dh_installdirs
|
||||
dh_install
|
||||
|
||||
binary: install
|
||||
dh_install
|
||||
dh_installchangelogs
|
||||
dh_installman
|
||||
dh_link
|
||||
dh_strip
|
||||
dh_compress
|
||||
dh_fixperms
|
||||
dh_makeshlibs
|
||||
dh_installdeb
|
||||
dh_gencontrol
|
||||
dh_md5sums
|
||||
dh_builddeb
|
||||
@ -1,75 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
set -e
|
||||
set -x
|
||||
|
||||
ROOT=$PWD
|
||||
|
||||
function package_deb() {
|
||||
sed -i "s/VERSION/$VERSION-$DATE/g" debian/changelog
|
||||
dpkg-buildpackage -uc -us
|
||||
$(cd ../; tar czf cloudstack-primate-$VERSION-$DATE.tar.gz dist --transform s/dist/primate/)
|
||||
}
|
||||
|
||||
function package_rpm() {
|
||||
CWD=`pwd`
|
||||
RPMDIR=$CWD/../build
|
||||
|
||||
REALVER=`echo $VERSION`
|
||||
DEFVER="-D_ver $REALVER"
|
||||
DEFREL="-D_rel $DATE"
|
||||
|
||||
echo Preparing to package CloudStack Primate ${VERSION}
|
||||
|
||||
mkdir -p $RPMDIR/SPECS
|
||||
mkdir -p $RPMDIR/BUILD
|
||||
mkdir -p $RPMDIR/RPMS
|
||||
mkdir -p $RPMDIR/SRPMS
|
||||
mkdir -p $RPMDIR/SOURCES/cloudstack
|
||||
|
||||
echo ". preparing source tarball"
|
||||
(cd ../; tar -c --exclude .git --exclude build . | tar -C $RPMDIR/SOURCES/cloudstack -x )
|
||||
(cd $RPMDIR/SOURCES/; tar -czf primate-$VERSION.tgz cloudstack)
|
||||
|
||||
echo ". executing rpmbuild"
|
||||
cp centos/primate.spec $RPMDIR/SPECS
|
||||
|
||||
(cd $RPMDIR; rpmbuild --define "_topdir $RPMDIR" "${DEFVER}" "${DEFREL}" ${DEFPRE+"${DEFPRE}"} -bb SPECS/primate.spec)
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "RPM Build Failed "
|
||||
exit 1
|
||||
else
|
||||
echo "RPM Build Done"
|
||||
fi
|
||||
}
|
||||
|
||||
DATE=$(date +"%Y%m%d")
|
||||
VERSION=$(grep -Po '"version": "\K[^"]*' ../package.json)
|
||||
sed -i "s/\"version\":.*/\"version\": \"$VERSION$DATE\",/g" ../package.json
|
||||
|
||||
case "$1" in
|
||||
deb ) package_deb
|
||||
;;
|
||||
rpm ) package_rpm
|
||||
;;
|
||||
* ) package_rpm
|
||||
package_deb
|
||||
;;
|
||||
esac
|
||||
2
ui/public/index.html
vendored
2
ui/public/index.html
vendored
@ -30,7 +30,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
<strong>We're sorry but CloudStack Primate needs JavaScript enabled. Please enable it to continue.</strong>
|
||||
<strong>We're sorry but CloudStack UI needs JavaScript enabled. Please enable it to continue.</strong>
|
||||
</noscript>
|
||||
<div id="app">
|
||||
<div class="loader"></div>
|
||||
|
||||
@ -1,461 +0,0 @@
|
||||
activateProject
|
||||
addAccountToProject
|
||||
addBaremetalDhcp
|
||||
addBaremetalPxeKickStartServer
|
||||
addBaremetalRct
|
||||
addCiscoAsa1000vResource
|
||||
addCiscoVnmcResource
|
||||
addCluster
|
||||
addHost
|
||||
addImageStore
|
||||
addIpToNic
|
||||
addLdapConfiguration
|
||||
addNetscalerLoadBalancer
|
||||
addNetworkServiceProvider
|
||||
addNicToVirtualMachine
|
||||
addRegion
|
||||
addResourceDetail
|
||||
addTrafficType
|
||||
addUcsManager
|
||||
addVmwareDc
|
||||
addVpnUser
|
||||
archiveAlerts
|
||||
archiveEvents
|
||||
assignCertToLoadBalancer
|
||||
assignToGlobalLoadBalancerRule
|
||||
assignToLoadBalancerRule
|
||||
assignVirtualMachine
|
||||
associateIpAddress
|
||||
attachIso
|
||||
attachVolume
|
||||
authorizeSamlSso
|
||||
authorizeSecurityGroupEgress
|
||||
authorizeSecurityGroupIngress
|
||||
cancelHostMaintenance
|
||||
cancelStorageMaintenance
|
||||
changeOutOfBandManagementPassword
|
||||
cloudianIsEnabled
|
||||
cloudianSsoLogin
|
||||
configureHAForHost
|
||||
configureInternalLoadBalancerElement
|
||||
configureOutOfBandManagement
|
||||
configureOvsElement
|
||||
configureVirtualRouterElement
|
||||
copyIso
|
||||
copyTemplate
|
||||
createAccount
|
||||
createAffinityGroup
|
||||
createAutoScalePolicy
|
||||
createAutoScaleVmGroup
|
||||
createAutoScaleVmProfile
|
||||
createCondition
|
||||
createDiskOffering
|
||||
createDomain
|
||||
createEgressFirewallRule
|
||||
createFirewallRule
|
||||
createGlobalLoadBalancerRule
|
||||
createLBHealthCheckPolicy
|
||||
createLBStickinessPolicy
|
||||
createLoadBalancer
|
||||
createLoadBalancerRule
|
||||
createManagementNetworkIpRange
|
||||
createNetwork
|
||||
createNetworkACL
|
||||
createNetworkACLList
|
||||
createNetworkOffering
|
||||
createPhysicalNetwork
|
||||
createPod
|
||||
createPortableIpRange
|
||||
createPortForwardingRule
|
||||
createPrivateGateway
|
||||
createProject
|
||||
createRemoteAccessVpn
|
||||
createRole
|
||||
createRolePermission
|
||||
createSecondaryStagingStore
|
||||
createSecurityGroup
|
||||
createServiceOffering
|
||||
createSnapshot
|
||||
createSnapshotFromVMSnapshot
|
||||
createSnapshotPolicy
|
||||
createSSHKeyPair
|
||||
createStaticRoute
|
||||
createStorageNetworkIpRange
|
||||
createStoragePool
|
||||
createTags
|
||||
createTemplate
|
||||
createUser
|
||||
createVlanIpRange
|
||||
createVMSnapshot
|
||||
createVolume
|
||||
createVPC
|
||||
createVPCOffering
|
||||
createVpnConnection
|
||||
createVpnCustomerGateway
|
||||
createVpnGateway
|
||||
createZone
|
||||
dedicateCluster
|
||||
dedicateGuestVlanRange
|
||||
dedicateHost
|
||||
dedicatePod
|
||||
dedicatePublicIpRange
|
||||
dedicateZone
|
||||
deleteAccount
|
||||
deleteAccountFromProject
|
||||
deleteAffinityGroup
|
||||
deleteAlerts
|
||||
deleteBaremetalRct
|
||||
deleteBigSwitchBcfDevice
|
||||
deleteBrocadeVcsDevice
|
||||
deleteCiscoAsa1000vResource
|
||||
deleteCiscoNexusVSM
|
||||
deleteCiscoVnmcResource
|
||||
deleteCluster
|
||||
deleteCondition
|
||||
deleteDiskOffering
|
||||
deleteDomain
|
||||
deleteEgressFirewallRule
|
||||
deleteEvents
|
||||
deleteF5LoadBalancer
|
||||
deleteFirewallRule
|
||||
deleteGlobalLoadBalancerRule
|
||||
deleteHost
|
||||
deleteImageStore
|
||||
deleteIso
|
||||
deleteLBHealthCheckPolicy
|
||||
deleteLBStickinessPolicy
|
||||
deleteLdapConfiguration
|
||||
deleteLoadBalancer
|
||||
deleteLoadBalancerRule
|
||||
deleteManagementNetworkIpRange
|
||||
deleteNetscalerControlCenter
|
||||
deleteNetscalerLoadBalancer
|
||||
deleteNetwork
|
||||
deleteNetworkACL
|
||||
deleteNetworkACLList
|
||||
deleteNetworkOffering
|
||||
deleteNetworkServiceProvider
|
||||
deleteNiciraNvpDevice
|
||||
deleteOpenDaylightController
|
||||
deletePaloAltoFirewall
|
||||
deletePhysicalNetwork
|
||||
deletePod
|
||||
deletePortableIpRange
|
||||
deletePortForwardingRule
|
||||
deletePrivateGateway
|
||||
deleteProject
|
||||
deleteProjectInvitation
|
||||
deleteRemoteAccessVpn
|
||||
deleteRole
|
||||
deleteRolePermission
|
||||
deleteSecondaryStagingStore
|
||||
deleteSecurityGroup
|
||||
deleteServiceOffering
|
||||
deleteSnapshot
|
||||
deleteSnapshotPolicies
|
||||
deleteSrxFirewall
|
||||
deleteSSHKeyPair
|
||||
deleteSslCert
|
||||
deleteStaticRoute
|
||||
deleteStorageNetworkIpRange
|
||||
deleteStoragePool
|
||||
deleteTags
|
||||
deleteTemplate
|
||||
deleteUcsManager
|
||||
deleteUser
|
||||
deleteVlanIpRange
|
||||
deleteVMSnapshot
|
||||
deleteVolume
|
||||
deleteVPC
|
||||
deleteVPCOffering
|
||||
deleteVpnConnection
|
||||
deleteVpnCustomerGateway
|
||||
deleteVpnGateway
|
||||
deleteZone
|
||||
deployVirtualMachine
|
||||
destroyRouter
|
||||
destroySystemVm
|
||||
destroyVirtualMachine
|
||||
detachIso
|
||||
detachVolume
|
||||
disableAccount
|
||||
disableAutoScaleVmGroup
|
||||
disableCiscoNexusVSM
|
||||
disableHAForCluster
|
||||
disableHAForHost
|
||||
disableHAForZone
|
||||
disableOutOfBandManagementForCluster
|
||||
disableOutOfBandManagementForHost
|
||||
disableOutOfBandManagementForZone
|
||||
disableStaticNat
|
||||
disableUser
|
||||
disassociateIpAddress
|
||||
disassociateUcsProfileFromBlade
|
||||
enableAccount
|
||||
enableAutoScaleVmGroup
|
||||
enableCiscoNexusVSM
|
||||
enableHAForCluster
|
||||
enableHAForHost
|
||||
enableHAForZone
|
||||
enableOutOfBandManagementForCluster
|
||||
enableOutOfBandManagementForHost
|
||||
enableOutOfBandManagementForZone
|
||||
enableStaticNat
|
||||
enableStorageMaintenance
|
||||
enableUser
|
||||
expungeVirtualMachine
|
||||
extractIso
|
||||
extractTemplate
|
||||
extractVolume
|
||||
findHostsForMigration
|
||||
findStoragePoolsForMigration
|
||||
getUploadParamsForIso
|
||||
getUploadParamsForTemplate
|
||||
getUploadParamsForVolume
|
||||
getUserKeys
|
||||
importLdapUsers
|
||||
instantiateUcsTemplateAndAssocaciateToBlade
|
||||
issueOutOfBandManagementPowerAction
|
||||
ldapCreateAccount
|
||||
linkDomainToLdap
|
||||
listAccounts
|
||||
listAffinityGroups
|
||||
listAffinityGroupTypes
|
||||
listAlerts
|
||||
listAndSwitchSamlAccount
|
||||
listApis
|
||||
listAutoScaleVmGroups
|
||||
listAutoScaleVmProfiles
|
||||
listBaremetalDhcp
|
||||
listBaremetalPxeServers
|
||||
listBaremetalRct
|
||||
listBigSwitchBcfDevices
|
||||
listBrocadeVcsDevices
|
||||
listCapabilities
|
||||
listCapacity
|
||||
listCiscoAsa1000vResources
|
||||
listCiscoNexusVSMs
|
||||
listCiscoVnmcResources
|
||||
listClusters
|
||||
listClustersMetrics
|
||||
listConfigurations
|
||||
listCounters
|
||||
listDedicatedClusters
|
||||
listDedicatedGuestVlanRanges
|
||||
listDedicatedHosts
|
||||
listDedicatedPods
|
||||
listDedicatedZones
|
||||
listDeploymentPlanners
|
||||
listDetailOptions
|
||||
listDiskOfferings
|
||||
listDomainChildren
|
||||
listDomains
|
||||
listEgressFirewallRules
|
||||
listEvents
|
||||
listF5LoadBalancers
|
||||
listFirewallRules
|
||||
listGlobalLoadBalancerRules
|
||||
listHostHAProviders
|
||||
listHosts
|
||||
listHostsMetrics
|
||||
listHostTags
|
||||
listHypervisorCapabilities
|
||||
listHypervisors
|
||||
listIdps
|
||||
listImageStores
|
||||
listInfrastructure
|
||||
listInternalLoadBalancerElements
|
||||
listInternalLoadBalancerVMs
|
||||
listIsos
|
||||
listLBHealthCheckPolicies
|
||||
listLBStickinessPolicies
|
||||
listLdapConfigurations
|
||||
listLdapUsers
|
||||
listLoadBalancerRuleInstances
|
||||
listLoadBalancerRules
|
||||
listLoadBalancers
|
||||
listManagementServers
|
||||
listNetscalerControlCenter
|
||||
listNetscalerLoadBalancers
|
||||
listNetworkACLLists
|
||||
listNetworkACLs
|
||||
listNetworkOfferings
|
||||
listNetworks
|
||||
listNetworkServiceProviders
|
||||
listNiciraNvpDevices
|
||||
listNics
|
||||
listOpenDaylightControllers
|
||||
listOsCategories
|
||||
listOsTypes
|
||||
listOvsElements
|
||||
listPaloAltoFirewalls
|
||||
listPhysicalNetworks
|
||||
listPods
|
||||
listPortableIpRanges
|
||||
listPortForwardingRules
|
||||
listPrivateGateways
|
||||
listProjectAccounts
|
||||
listProjectInvitations
|
||||
listProjects
|
||||
listPublicIpAddresses
|
||||
listRegions
|
||||
listRegisteredServicePackages
|
||||
listRemoteAccessVpns
|
||||
listResourceLimits
|
||||
listRolePermissions
|
||||
listRoles
|
||||
listRouters
|
||||
listSamlAuthorization
|
||||
listSecondaryStagingStores
|
||||
listSecurityGroups
|
||||
listServiceOfferings
|
||||
listSnapshotPolicies
|
||||
listSnapshots
|
||||
listSrxFirewalls
|
||||
listSSHKeyPairs
|
||||
listSslCerts
|
||||
listStaticRoutes
|
||||
listStorageNetworkIpRange
|
||||
listStoragePools
|
||||
listStoragePoolsMetrics
|
||||
listStorageProviders
|
||||
listStorageTags
|
||||
listSupportedNetworkServices
|
||||
listSystemVms
|
||||
listTags
|
||||
listTemplateOvfProperties
|
||||
listTemplatePermissions
|
||||
listTemplates
|
||||
listTrafficTypes
|
||||
listUcsBlades
|
||||
listUcsManagers
|
||||
listUcsTemplates
|
||||
listUsers
|
||||
listVirtualMachines
|
||||
listVirtualMachinesMetrics
|
||||
listVirtualRouterElements
|
||||
listVlanIpRanges
|
||||
listVMSnapshot
|
||||
listVmwareDcs
|
||||
listVolumes
|
||||
listVolumesMetrics
|
||||
listVPCOfferings
|
||||
listVPCs
|
||||
listVpnConnections
|
||||
listVpnCustomerGateways
|
||||
listVpnGateways
|
||||
listVpnUsers
|
||||
listZones
|
||||
listZonesMetrics
|
||||
migrateSystemVm
|
||||
migrateVirtualMachine
|
||||
migrateVirtualMachineWithVolume
|
||||
migrateVolume
|
||||
moveNetworkAclItem
|
||||
prepareHostForMaintenance
|
||||
provisionCertificate
|
||||
queryAsyncJobResult
|
||||
quotaBalance
|
||||
quotaCredits
|
||||
quotaEmailTemplateList
|
||||
quotaEmailTemplateUpdate
|
||||
quotaIsEnabled
|
||||
quotaStatement
|
||||
quotaSummary
|
||||
quotaTariffList
|
||||
quotaTariffUpdate
|
||||
rebootRouter
|
||||
rebootSystemVm
|
||||
rebootVirtualMachine
|
||||
reconnectHost
|
||||
recoverVirtualMachine
|
||||
refreshUcsBlades
|
||||
registerIso
|
||||
registerNetscalerControlCenter
|
||||
registerSSHKeyPair
|
||||
registerTemplate
|
||||
registerUserKeys
|
||||
releaseDedicatedCluster
|
||||
releaseDedicatedGuestVlanRange
|
||||
releaseDedicatedHost
|
||||
releaseDedicatedPod
|
||||
releaseDedicatedZone
|
||||
releasePublicIpRange
|
||||
removeFromGlobalLoadBalancerRule
|
||||
removeFromLoadBalancerRule
|
||||
removeIpFromNic
|
||||
removeNicFromVirtualMachine
|
||||
removeRegion
|
||||
removeVmwareDc
|
||||
removeVpnUser
|
||||
replaceNetworkACLList
|
||||
resetPasswordForVirtualMachine
|
||||
resetSSHKeyForVirtualMachine
|
||||
resetVpnConnection
|
||||
resizeVolume
|
||||
restartNetwork
|
||||
restartVPC
|
||||
restoreVirtualMachine
|
||||
revertSnapshot
|
||||
revertToVMSnapshot
|
||||
revokeSecurityGroupEgress
|
||||
revokeSecurityGroupIngress
|
||||
runDiagnostics
|
||||
scaleSystemVm
|
||||
scaleVirtualMachine
|
||||
startInternalLoadBalancerVM
|
||||
startRouter
|
||||
startSystemVm
|
||||
startVirtualMachine
|
||||
stopInternalLoadBalancerVM
|
||||
stopRouter
|
||||
stopSystemVm
|
||||
stopVirtualMachine
|
||||
suspendProject
|
||||
updateAccount
|
||||
updateAutoScalePolicy
|
||||
updateAutoScaleVmGroup
|
||||
updateAutoScaleVmProfile
|
||||
updateCluster
|
||||
updateConfiguration
|
||||
updateDefaultNicForVirtualMachine
|
||||
updateDiskOffering
|
||||
updateDomain
|
||||
updateGlobalLoadBalancerRule
|
||||
updateHost
|
||||
updateHypervisorCapabilities
|
||||
updateIso
|
||||
updateIsoPermissions
|
||||
updateLoadBalancerRule
|
||||
updateNetwork
|
||||
updateNetworkACLItem
|
||||
updateNetworkACLList
|
||||
updateNetworkOffering
|
||||
updateNetworkServiceProvider
|
||||
updatePhysicalNetwork
|
||||
updatePod
|
||||
updateProject
|
||||
updateProjectInvitation
|
||||
updateRegion
|
||||
updateResourceCount
|
||||
updateResourceLimit
|
||||
updateRole
|
||||
updateRolePermission
|
||||
updateServiceOffering
|
||||
updateStoragePool
|
||||
updateTemplate
|
||||
updateTemplatePermissions
|
||||
updateTrafficType
|
||||
updateUser
|
||||
updateVirtualMachine
|
||||
updateVMAffinityGroup
|
||||
updateVmNicIp
|
||||
updateVmwareDc
|
||||
updateVPC
|
||||
updateVPCOffering
|
||||
updateVpnCustomerGateway
|
||||
updateZone
|
||||
upgradeRouterTemplate
|
||||
uploadCustomCertificate
|
||||
uploadSslCert
|
||||
uploadVolume
|
||||
@ -1,14 +0,0 @@
|
||||
cd ../../src/
|
||||
rm -f apis.txt
|
||||
grep api\( -R . | grep -v import | sed "s/.*api('//g" | sed "s/'.*//g" | grep -v '.vue' | sort | uniq >> apis.txt
|
||||
grep api -R config | sed "s/.*api: '//g" | sed "s/'.*//g" | grep -v \.js | sort | uniq >> apis.txt
|
||||
grep store.getters.apis -R . | sed "s/' in.*//g" | sed "s/').*//g" | grep "'" | sed "s/.*'//g" | grep -v ']' >> apis.txt
|
||||
grep 'permission:\ \[' -R config | sed "s/.*permission: \['//g" | grep -v .js | sed "s/', '/\\n/g" | sed "s/'.*//g" >> apis.txt
|
||||
cat apis.txt | sort | uniq > apis.uniq
|
||||
rm -f apis.txt
|
||||
mv apis.uniq ../tools/api/apis.txt
|
||||
cd ../tools/api
|
||||
diff -Naur apis.old apis.txt | grep ^- | grep -v "^--" | sed 's/^-//g' | grep -v -i -e cisco -e nicira -e baremetal -e srx -e f5 -e brocade -e palo -e autoscale -e counter -e condition -e ucs -e netscaler -e bigswitch -e ovs -e globalloadbalancer -e opendaylight -e region -e quota | sort | uniq > apis.remaining
|
||||
|
||||
echo "$(cat apis.txt | wc -l) APIs are supported by Primate"
|
||||
echo "$(cat apis.remaining | wc -l) APIs are remaining"
|
||||
@ -1,4 +0,0 @@
|
||||
listDeploymentPlanners
|
||||
listHostTags
|
||||
listStorageProviders
|
||||
listStorageTags
|
||||
238
ui/tools/git-pr
238
ui/tools/git-pr
@ -1,238 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
# Should we clean-up?
|
||||
cleanup=1
|
||||
|
||||
clean_up_and_exit() {
|
||||
if [ "${cleanup}" -eq 1 ]; then
|
||||
echo
|
||||
git branch -D pr/${prId} >/dev/null 2>&1
|
||||
rm ${jsonTmp} ${tmpMessageFile} >/dev/null 2>&1
|
||||
fi
|
||||
exit $1
|
||||
}
|
||||
|
||||
# Arguments
|
||||
argument=$1
|
||||
prId=${argument}
|
||||
force=0
|
||||
if [[ "${2}" == "--force" ]]; then
|
||||
force=1
|
||||
fi
|
||||
|
||||
# Some of us got used to a git pr alias that you had to feed with the PR url
|
||||
# Let's make this script backwards compatible with the previous one.
|
||||
if [[ ${argument} =~ https://github.com.* ]]; then
|
||||
prId=$(echo "${argument}" | awk -F/ {'print $7'})
|
||||
echo "INFO: Found PR id ${prId} from url"
|
||||
fi
|
||||
|
||||
# Check the arguments
|
||||
if [ -z ${prId} ]; then
|
||||
echo "Usage: git pr pool-request-number [ --force ]"
|
||||
echo "Works for any Apache repository mirrored on GitHub'"
|
||||
echo "For instructions, see: https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=61311655"
|
||||
clean_up_and_exit 1
|
||||
fi
|
||||
|
||||
# Vars we need
|
||||
jsonTmp="${PWD}/${prId}.json"
|
||||
tmpMessageFile="${PWD}/.git-tmp-message.txt"
|
||||
repoName=cloudstack-primate
|
||||
|
||||
# We need UTF-8 to support the GitHub '...' 3-dots-in-1-char, for example.
|
||||
export LANG="en_EN.UTF-8"
|
||||
|
||||
if [ "${prId}" -eq "${prId}" 2>/dev/null ]; then
|
||||
# Get json data from Github API
|
||||
curl -s https://api.github.com/repos/apache/${repoName}/pulls/${prId} > ${jsonTmp}
|
||||
else
|
||||
echo "ERROR: Pull-request id must be an integer, not '${prId}'"
|
||||
clean_up_and_exit 1
|
||||
fi
|
||||
|
||||
# Get vars from the GitHub API and parse the returned json
|
||||
prAuthor=$(cat ${jsonTmp} | python -c "
|
||||
try:
|
||||
import sys, json
|
||||
print json.load(sys.stdin)['user']['login'].encode('utf-8').decode('ascii','ignore')
|
||||
except:
|
||||
print ''
|
||||
")
|
||||
|
||||
prTitle=$(cat ${jsonTmp} | python -c "
|
||||
try:
|
||||
import sys, json
|
||||
print json.load(sys.stdin)['title'].encode('utf-8').decode('ascii','ignore')
|
||||
except:
|
||||
print ''
|
||||
")
|
||||
|
||||
prBody=$(cat ${jsonTmp} | python -c "
|
||||
try:
|
||||
import sys, json
|
||||
print json.load(sys.stdin)['body'].encode('utf-8').decode('ascii','ignore')
|
||||
except:
|
||||
print ''
|
||||
")
|
||||
|
||||
prOriginBranch=$(cat ${jsonTmp} | python -c "
|
||||
try:
|
||||
import sys, json
|
||||
print json.load(sys.stdin)['head']['label'].encode('utf-8').decode('ascii','ignore')
|
||||
except:
|
||||
print ''
|
||||
" | sed -e "s/:/\//")
|
||||
|
||||
prState=$(cat ${jsonTmp} | python -c "
|
||||
try:
|
||||
import sys, json
|
||||
print json.load(sys.stdin)['state'].encode('utf-8').decode('ascii','ignore')
|
||||
except:
|
||||
print 'Unknown'
|
||||
")
|
||||
|
||||
prMergeableState=$(cat ${jsonTmp} | python -c "
|
||||
try:
|
||||
import sys, json
|
||||
print json.load(sys.stdin)['mergeable_state'].encode('utf-8').decode('ascii','ignore')
|
||||
except:
|
||||
print 'Unknown'
|
||||
")
|
||||
|
||||
prDestinationBranch=$(cat ${jsonTmp} | python -c "
|
||||
try:
|
||||
import sys, json
|
||||
print json.load(sys.stdin)['base']['ref'].encode('utf-8').decode('ascii','ignore')
|
||||
except:
|
||||
print 'Unknown'
|
||||
")
|
||||
|
||||
prCommits=$(cat ${jsonTmp} | python -c "
|
||||
try:
|
||||
import sys, json
|
||||
print json.load(sys.stdin)['commits']
|
||||
except:
|
||||
print 'Unknown'
|
||||
")
|
||||
|
||||
# Do some sanity checking
|
||||
if [ ${#prAuthor} -eq 0 ]; then
|
||||
echo "ERROR: We couldn't grab the PR author. Something went wrong querying the GitHub API."
|
||||
clean_up_and_exit 1
|
||||
fi
|
||||
|
||||
if [ ${#prTitle} -eq 0 ]; then
|
||||
echo "ERROR: We couldn't grab the PR title. Something went wrong querying the GitHub API."
|
||||
clean_up_and_exit 1
|
||||
fi
|
||||
|
||||
if [ ${#prOriginBranch} -eq 0 ]; then
|
||||
echo "ERROR: We couldn't grab the PR branch name. Something went wrong querying the GitHub API."
|
||||
clean_up_and_exit 1
|
||||
fi
|
||||
|
||||
currentBranch=$(git branch | grep "^*" | sed -e "s/^[*] //")
|
||||
if [ "${prDestinationBranch}" != "${currentBranch}" ] && [ ${force} -lt 1 ]; then
|
||||
echo "ERROR: This PR is made against branch '${prDestinationBranch}' while your current checked out branch is '${currentBranch}'."
|
||||
echo "ERROR: Please make sure you're in the right branch and run this scipt again."
|
||||
clean_up_and_exit 1
|
||||
elif [ "${prDestinationBranch}" != "${currentBranch}" ] && [ ${force} -eq 1 ]; then
|
||||
echo "WARNING: You used --force to merge to '${currentBranch}' while this PR is for branch '${prDestinationBranch}'."
|
||||
fi
|
||||
|
||||
if [ "${prState}" != "open" ] && [ ${force} -lt 1 ]; then
|
||||
echo "ERROR: We couldn't merge the PR because the state is not 'open' but '${prState}'."
|
||||
echo "ERROR: In general it's a bad idea to merge closed PRs!"
|
||||
echo "ERROR: Run this script again with --force if you know what you're doing"
|
||||
echo "ERROR: (continuing work on an abandoned PR in which case you'd merge to a branch in your fork"
|
||||
echo "ERROR: and send that as a new PR). Ask for help on @dev if unsure."
|
||||
clean_up_and_exit 1
|
||||
elif [ "${prState}" != "open" ] &&[ ${force} -eq 1 ]; then
|
||||
echo "WARNING: You used --force to merge a PR with state '${prState}'."
|
||||
fi
|
||||
|
||||
if [ "${prMergeableState}" != "clean" ] && [ ${force} -lt 1 ]; then
|
||||
echo "ERROR: We couldn't merge the PR because it cannot be merged 'clean' (GitHub reports '${prMergeableState}')."
|
||||
echo "ERROR: This can be caused by a Travis build in progress, a failed Travis build or an unclean merge (conflicts)"
|
||||
echo "ERROR: Run this script again with --force if you know what you're doing. Ask for help on @dev if unsure."
|
||||
clean_up_and_exit 1
|
||||
elif [ "${prMergeableState}" != "clean" ] && [ ${force} -eq 1 ]; then
|
||||
echo "WARNING: You used --force to merge a PR with non-clean merge state '${prMergeableState}'."
|
||||
fi
|
||||
|
||||
github_remote=$(git remote -v | grep -E "apache/${repoName}(.git)?" | head -n 1 | cut -f1)
|
||||
apache_remote=$(git remote -v | grep -E "git-wip-us\.apache\.org" | head -n 1 | cut -f1)
|
||||
if [ ${#github_remote} -eq 0 ]; then
|
||||
echo "ERROR: We couldn't find a git remote pointing to 'apache/${repoName}.git' to merge the PR from."
|
||||
echo "INFO: Currently, your configured remotes are:"
|
||||
echo "INFO: ***********************************************************************************"
|
||||
git remote -v
|
||||
echo "INFO: ***********************************************************************************"
|
||||
echo "INFO: To merge a PR, we need access to two remotes: "
|
||||
echo "INFO: 1. Read-only access to GitHub mirror"
|
||||
echo "INFO: 2. Read/write access to Apache git"
|
||||
echo "INFO: Please add a remote like this: 'git remote add github https://github.com/apache/${repoName}.git'"
|
||||
echo "INFO: For more help, visit: https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=61311655"
|
||||
echo "INFO: Once done, run this script again."
|
||||
clean_up_and_exit 1
|
||||
fi
|
||||
|
||||
echo "INFO: Using remote repository '${github_remote}' to fetch PR (should point to github.com/apache/${repoName}.git)"
|
||||
echo "INFO: PR #${prId} against branch '${prDestinationBranch}' from '${prAuthor}': '${prTitle}'"
|
||||
echo "INFO: has state '${prState}' and mergable state '${prMergeableState}', about to be merged in branch '${currentBranch}'."
|
||||
|
||||
# Construct commit merge message
|
||||
echo "Merge pull request #${prId} from ${prOriginBranch}" > ${tmpMessageFile}
|
||||
echo "" >> ${tmpMessageFile}
|
||||
echo "${prTitle}${prBody}" >> ${tmpMessageFile}
|
||||
|
||||
# Are you sure?
|
||||
echo "ATTENTION: Merging pull request #${prId} from ${prOriginBranch} into '${currentBranch}' branch in 5 seconds. CTRL+c to abort.."
|
||||
sec=5
|
||||
while [ $sec -ge 0 ]; do
|
||||
printf "${sec} "
|
||||
sec=$((sec-1))
|
||||
sleep 1
|
||||
done
|
||||
echo
|
||||
echo "INFO: Executing the merge now.. Git output below:"
|
||||
echo "INFO: ***********************************************************************************"
|
||||
|
||||
# Do the actual merge
|
||||
git fetch ${github_remote} pull/${prId}/head:pr/${prId}
|
||||
git merge --no-ff --log -m "$(cat ${tmpMessageFile})" pr/${prId}
|
||||
if [ $? -eq 0 ]; then
|
||||
git commit --amend -s --allow-empty-message -m ''
|
||||
else
|
||||
echo "ERROR: Merge failed, aborting."
|
||||
git merge --abort
|
||||
clean_up_and_exit 1
|
||||
fi
|
||||
|
||||
# What's next
|
||||
echo "INFO: ***********************************************************************************"
|
||||
echo "INFO: Merged successfully! Please double check using 'git log -p' and 'git push' when you're sure."
|
||||
echo "INFO: About commits: there should be ${prCommits} from the PR plus 1 merge commit."
|
||||
echo "INFO: Actual diff in commits is: (running git log --pretty=oneline --abbrev-commit ${apache_remote}/${currentBranch}..${currentBranch})"
|
||||
echo
|
||||
git log --pretty=oneline --abbrev-commit ${apache_remote}/${currentBranch}..${currentBranch}
|
||||
|
||||
clean_up_and_exit 0
|
||||
@ -1,153 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
version='TESTBUILD'
|
||||
sourcedir=~/cloudstack-primate
|
||||
outputdir=/tmp/cloudstack-primate-build/
|
||||
branch='master'
|
||||
tag='no'
|
||||
certid='X'
|
||||
committosvn='X'
|
||||
|
||||
usage(){
|
||||
echo "usage: $0 -v version [-b branch] [-s source dir] [-o output dir] [-t] [-u] [-c] [-h]"
|
||||
echo " -v sets the version"
|
||||
echo " -b sets the branch (defaults to 'master')"
|
||||
echo " -s sets the source directory (defaults to $sourcedir)"
|
||||
echo " -o sets the output directory (defaults to $outputdir)"
|
||||
echo " -t tags the git repo with the version"
|
||||
echo " -u sets the certificate ID to sign with (if not provided, the default key is attempted)"
|
||||
echo " -c commits build artifacts to cloudstack dev dist dir in svn"
|
||||
echo " -h"
|
||||
}
|
||||
|
||||
while getopts v:s:o:b:u:tch opt
|
||||
do
|
||||
case "$opt" in
|
||||
v) version="$OPTARG";;
|
||||
s) sourcedir="$OPTARG";;
|
||||
o) outputdir="$OPTARG";;
|
||||
b) branch="$OPTARG";;
|
||||
t) tag="yes";;
|
||||
u) certid="$OPTARG";;
|
||||
c) committosvn="yes";;
|
||||
h) usage
|
||||
exit 0;;
|
||||
/?) # unknown flag
|
||||
usage
|
||||
exit 1;;
|
||||
esac
|
||||
done
|
||||
shift `expr $OPTIND - 1`
|
||||
|
||||
if [ $version == "TESTBUILD" ]; then
|
||||
echo >&2 "A version must be specified with the -v option: $0 -v 1.0.0.RC1"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Using version: $version"
|
||||
echo "Using source directory: $sourcedir"
|
||||
echo "Using output directory: $outputdir"
|
||||
echo "Using branch: $branch"
|
||||
if [ "$tag" == "yes" ]; then
|
||||
if [ "$certid" == "X" ]; then
|
||||
echo "Tagging the branch with the version number, and signing the branch with your default certificate."
|
||||
else
|
||||
echo "Tagging the branch with the version number, and signing the branch with certificate ID $certid."
|
||||
fi
|
||||
else
|
||||
echo "The branch will not be tagged. You should consider doing this."
|
||||
fi
|
||||
|
||||
echo $PWD
|
||||
|
||||
exit
|
||||
|
||||
if [ -d "$outputdir" ]; then
|
||||
rm -r $outputdir/*
|
||||
else
|
||||
mkdir $outputdir
|
||||
fi
|
||||
|
||||
cd $sourcedir
|
||||
|
||||
echo 'checking out correct branch'
|
||||
git checkout $branch
|
||||
|
||||
git clean -f
|
||||
|
||||
export commitsh=`git show HEAD | head -n 1 | cut -d ' ' -f 2`
|
||||
echo "releasing as $commitsh"
|
||||
|
||||
echo 'archiving'
|
||||
git archive --format=tar --prefix=apache-cloudstack-primate-$version-src/ $branch > $outputdir/apache-cloudstack-primate-$version-src.tar
|
||||
bzip2 $outputdir/apache-cloudstack-primate-$version-src.tar
|
||||
|
||||
cd $outputdir
|
||||
echo 'armor'
|
||||
if [ "$certid" == "X" ]; then
|
||||
gpg -v --armor --output apache-cloudstack-primate-$version-src.tar.bz2.asc --detach-sig apache-cloudstack-primate-$version-src.tar.bz2
|
||||
else
|
||||
gpg -v --default-key $certid --armor --output apache-cloudstack-primate-$version-src.tar.bz2.asc --detach-sig apache-cloudstack-primate-$version-src.tar.bz2
|
||||
fi
|
||||
|
||||
echo 'md5'
|
||||
gpg -v --print-md MD5 apache-cloudstack-primate-$version-src.tar.bz2 > apache-cloudstack-primate-$version-src.tar.bz2.md5
|
||||
|
||||
echo 'sha512'
|
||||
gpg -v --print-md SHA512 apache-cloudstack-primate-$version-src.tar.bz2 > apache-cloudstack-primate-$version-src.tar.bz2.sha512
|
||||
|
||||
echo 'verify'
|
||||
gpg -v --verify apache-cloudstack-primate-$version-src.tar.bz2.asc apache-cloudstack-primate-$version-src.tar.bz2
|
||||
|
||||
if [ "$tag" == "yes" ]; then
|
||||
echo 'tag'
|
||||
cd $sourcedir
|
||||
if [ "$certid" == "X" ]; then
|
||||
git tag -s $version -m "Tagging release $version on branch $branch."
|
||||
else
|
||||
git tag -u $certid -s $version -m "Tagging release $version on branch $branch."
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$committosvn" == "yes" ]; then
|
||||
echo 'committing artifacts to svn'
|
||||
rm -Rf /tmp/cloudstack-dev-dist
|
||||
cd /tmp
|
||||
svn co https://dist.apache.org/repos/dist/dev/cloudstack/ cloudstack-dev-dist
|
||||
cd cloudstack-dev-dist
|
||||
if [ -d "primate-$version" ]; then
|
||||
cd primate-$version
|
||||
svn rm *
|
||||
else
|
||||
mkdir primate-$version
|
||||
svn add primate-$version
|
||||
cd primate-$version
|
||||
fi
|
||||
cp $outputdir/apache-cloudstack-primate-$version-src.tar.bz2 .
|
||||
cp $outputdir/apache-cloudstack-primate-$version-src.tar.bz2.asc .
|
||||
cp $outputdir/apache-cloudstack-primate-$version-src.tar.bz2.md5 .
|
||||
cp $outputdir/apache-cloudstack-primate-$version-src.tar.bz2.sha512 .
|
||||
svn add apache-cloudstack-primate-$version-src.tar.bz2
|
||||
svn add apache-cloudstack-primate-$version-src.tar.bz2.asc
|
||||
svn add apache-cloudstack-primate-$version-src.tar.bz2.md5
|
||||
svn add apache-cloudstack-primate-$version-src.tar.bz2.sha512
|
||||
svn commit -m "Committing release candidate artifacts for $version to dist/dev/cloudstack in preparation for release vote"
|
||||
fi
|
||||
|
||||
echo "completed. use commit-sh of $commitsh when starting the VOTE thread"
|
||||
Loading…
x
Reference in New Issue
Block a user