diff --git a/.travis.yml b/.travis.yml index 7b0e03e35..6db7ed3f7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,9 +32,7 @@ env: before_install: - sudo ./tests/hostcfg.sh - - cd Deploy - - sudo ./prepare - - cd .. + - sudo ./make/prepare install: - sudo apt-get update && sudo apt-get install -y libldap2-dev @@ -71,24 +69,24 @@ install: before_script: # create tables and load data - # - mysql < ./Deploy/db/registry.sql -uroot --verbose - - sudo sqlite3 /registry.db < ./Deploy/db/registry_sqlite.sql + # - mysql < ./make/db/registry.sql -uroot --verbose + - sudo sqlite3 /registry.db < make/common/db/registry_sqlite.sql script: - sudo ./tests/testprepare.sh - - docker-compose -f Deploy/docker-compose.test.yml up -d + - docker-compose -f ./make/docker-compose.test.yml up -d - go list ./... | grep -v -E 'vendor|tests' | xargs -L1 fgt golint - go list ./... | grep -v -E 'vendor|tests' | xargs -L1 go vet - export MYSQL_HOST=$IP - export REGISTRY_URL=$IP:5000 - echo $REGISTRY_URL - ./tests/pushimage.sh - - ./Deploy/coverage4gotest.sh + - ./tests/coverage4gotest.sh - goveralls -coverprofile=profile.cov -service=travis-ci - - docker-compose -f Deploy/docker-compose.test.yml down + - docker-compose -f make/docker-compose.test.yml down - - docker-compose -f Deploy/docker-compose.yml up -d + - docker-compose -f make/docker-compose.yml up -d - docker ps - go run tests/startuptest.go http://localhost/ diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..66195ba66 --- /dev/null +++ b/Makefile @@ -0,0 +1,341 @@ +# Makefile for Harbor project +# +# Targets: +# +# all: prepare env, compile binarys, build images and install images +# prepare: prepare env +# compile: compile ui and jobservice code +# compile_golangimage: +# compile from golang image +# for example: make compile_golangimage -e GOBUILDIMAGE= \ +# reg-bj.eng.vmware.com/harborrelease/harborgo:1.6.2 +# compile_ui, compile_jobservice: compile specific binary +# +# build: build Harbor docker images (defuault: build_photon) +# for example: make build -e BASEIMAGE=photon +# build_photon: build Harbor docker images from photon bsaeimage +# build_ubuntu: build Harbor docker images from ubuntu baseimage +# +# install: include compile binarys, build images, prepare specific \ +# version composefile and startup Harbor instance +# +# start: startup Harbor instance +# +# down: shutdown Harbor instance +# +# package_online: +# prepare online install package +# for example: make package_online -e \ +# REGISTRYSERVER=reg-bj.eng.vmware.com \ +# REGISTRYPROJECTNAME=harborrelease +# note**: DONT add "/" on end of REGISTRYSERVER. +# +# package_offline: +# prepare offline install package +# +# pushimage: push Harbor images to specific registry server +# for example: make pushimage -e REGISTRYUSER=admin \ +# REGISTRYPASSWORD=***** \ +# REGISTRYSERVER=reg-bj.eng.vmware.com/ \ +# REGISTRYPROJECTNAME=harborrelease +# note**: need add "/" on end of REGISTRYSERVER. If not setting \ +# this value will push images directly to dockerhub. +# make pushimage -e REGISTRYUSER=vmware \ +# REGISTRYPASSWORD=***** \ +# REGISTRYPROJECTNAME=vmware +# +# clean: remove binary, Harbor images, specific version docker-compose \ +# file, specific version tag and online/offline install package +# cleanbinary: remove ui and jobservice binary +# cleanimage: remove Harbor images +# cleandockercomposefile: +# remove specific version docker-compose +# cleanversiontag: +# cleanpackageremove specific version tag +# cleanpackage: remove online/offline install package +# +# all: install +# +# other example: +# clean specific version binarys and images: +# make clean -e VERSIONTAG=[TAG] +# note**: If commit new code to github, the git commit TAG will \ +# change. Better use this commond clean previous images and \ +# files with specific TAG. + +SHELL := /bin/bash +BUILDPATH=$(CURDIR) +MAKEPATH=$(BUILDPATH)/make +MAKEDEVPATH=$(MAKEPATH)/dev +SRCPATH=./src +TOOLSPATH=$(BUILDPATH)/tools +GOBASEPATH=/go/src/github.com/vmware +CHECKENVCMD=checkenv.sh +BASEIMAGE=photon +COMPILETAG=compile_normal +REGISTRYSERVER= +REGISTRYPROJECTNAME=vmware + +# docker parameters +DOCKERCMD=$(shell which docker) +DOCKERBUILD=$(DOCKERCMD) build +DOCKERRMIMAGE=$(DOCKERCMD) rmi +DOCKERPULL=$(DOCKERCMD) pull +DOCKERIMASES=$(DOCKERCMD) images +DOCKERSAVE=$(DOCKERCMD) save +DOCKERCOMPOSECMD=$(shell which docker-compose) +DOCKERTAG=$(DOCKERCMD) tag + +# go parameters +GOCMD=$(shell which go) +GOBUILD=$(GOCMD) build +GOCLEAN=$(GOCMD) clean +GOINSTALL=$(GOCMD) install +GOTEST=$(GOCMD) test +GODEP=$(GOTEST) -i +GOFMT=gofmt -w +GOBUILDIMAGE=reg.mydomain.com/library/harborgo[:tag] +GOBUILDPATH=$(GOBASEPATH)/harbor +GOBUILDPATH_UI=$(GOBUILDPATH)/ui +GOBUILDPATH_JOBSERVICE=$(GOBUILDPATH)/jobservice +GOBUILDMAKEPATH=$(GOBUILDPATH)/make +GOBUILDMAKEPATH_UI=$(GOBUILDMAKEPATH)/ui +GOBUILDMAKEPATH_JOBSERVICE=$(GOBUILDMAKEPATH)/jobservice + +# binary +UISOURCECODE=$(SRCPATH)/ui +UIBINARYPATH=$(MAKEDEVPATH)/ui +UIBINARYNAME=harbor_ui +JOBSERVICESOURCECODE=$(SRCPATH)/jobservice +JOBSERVICEBINARYPATH=$(MAKEDEVPATH)/jobservice +JOBSERVICEBINARYNAME=harbor_jobservice + +# prepare parameters +PREPAREPATH=$(TOOLSPATH) +PREPARECMD=prepare + +# configfile +CONFIGPATH=$(MAKEPATH) +CONFIGFILE=harbor.cfg + +# makefile +MAKEFILEPATH_PHOTON=$(MAKEPATH)/photon +MAKEFILEPATH_UBUNTU=$(MAKEPATH)/ubuntu + +# common dockerfile +DOCKERFILEPATH_COMMON=$(MAKEPATH)/common +DOCKERFILEPATH_DB=$(DOCKERFILEPATH_COMMON)/db +DOCKERFILENAME_DB=Dockerfile + +# docker image name +DOCKERIMAGENAME_UI=$(REGISTRYPROJECTNAME)/harbor-ui +DOCKERIMAGENAME_JOBSERVICE=$(REGISTRYPROJECTNAME)/harbor-jobservice +DOCKERIMAGENAME_LOG=$(REGISTRYPROJECTNAME)/harbor-log +DOCKERIMAGENAME_DB=$(REGISTRYPROJECTNAME)/harbor-db + + +# docker-compose files +DOCKERCOMPOSEFILEPATH=$(MAKEPATH) +DOCKERCOMPOSEFILENAME=docker-compose.yml + +# version prepare +VERSIONFILEPATH=$(SRCPATH)/ui/views/sections +VERSIONFILENAME=header-content.htm +GITCMD=$(shell which git) +GITTAG=$(GITCMD) describe --tags +VERSIONTAG=$(shell $(GITTAG)) +SEDCMD=$(shell which sed) + +# package +TARCMD=$(shell which tar) +ZIPCMD=$(shell which gzip) +DOCKERIMGFILE=harbor +HARBORPKG=harbor + +# pushimage +PUSHSCRIPTPATH=$(MAKEPATH) +PUSHSCRIPTNAME=pushimage.sh +REGISTRYUSER=user +REGISTRYPASSWORD=default + + + +version: + @$(SEDCMD) -i 's/version=\"{{.Version}}\"/version=\"$(VERSIONTAG)\"/' -i $(VERSIONFILEPATH)/$(VERSIONFILENAME) + +check_environment: + @$(MAKEPATH)/$(CHECKENVCMD) + +compile_ui: + @echo "compiling binary for ui..." + $(GOBUILD) -o $(UIBINARYPATH)/$(UIBINARYNAME) $(UISOURCECODE) + @echo "Done." + +compile_jobservice: + @echo "compiling binary for jobservice..." + $(GOBUILD) -o $(JOBSERVICEBINARYPATH)/$(JOBSERVICEBINARYNAME) $(JOBSERVICESOURCECODE) + @echo "Done." + +compile_normal: compile_ui compile_jobservice + +compile_golangimage: + @echo "pulling golang build base image" + $(DOCKERPULL) $(GOBUILDIMAGE) + @echo "Done." + + @echo "compiling binary for ui (golang image)..." + @echo $(GOBASEPATH) + @echo $(GOBUILDPATH) + $(DOCKERCMD) run --rm -v $(BUILDPATH):$(GOBUILDPATH) -w $(GOBUILDPATH_UI) $(GOBUILDIMAGE) $(GOBUILD) -v -o $(GOBUILDMAKEPATH_UI)/$(UIBINARYNAME) + @echo "Done." + + @echo "compiling binary for jobservice (golang image)..." + $(DOCKERCMD) run --rm -v $(BUILDPATH):$(GOBUILDPATH) -w $(GOBUILDPATH_JOBSERVICE) $(GOBUILDIMAGE) $(GOBUILD) -v -o $(GOBUILDMAKEPATH_JOBSERVICE)/$(JOBSERVICEBINARYNAME) + @echo "Done." + +compile:check_environment $(COMPILETAG) + +prepare: + @echo "preparing..." + $(MAKEPATH)/$(PREPARECMD) -conf $(CONFIGPATH)/$(CONFIGFILE) + +build_common: prepare version + @echo "buildging db container for photon..." + cd $(DOCKERFILEPATH_DB) && $(DOCKERBUILD) -f $(DOCKERFILENAME_DB) -t $(DOCKERIMAGENAME_DB):$(VERSIONTAG) . + @echo "Done." + + @echo "pulling nginx and registry..." + $(DOCKERPULL) registry:2.5.0 + $(DOCKERPULL) nginx:1.9 + +build_photon: build_common + make -f $(MAKEFILEPATH_PHOTON)/Makefile build + +build_ubuntu: build_common + make -f $(MAKEFILEPATH_UBUNTU)/Makefile build + +build: build_$(BASEIMAGE) + + +modify_composefile: + @echo "preparing tag:$(VERSIONTAG) docker-compose file..." + @cp $(DOCKERCOMPOSEFILEPATH)/$(DOCKERCOMPOSEFILENAME) $(DOCKERCOMPOSEFILEPATH)/docker-compose.$(VERSIONTAG).yml + @$(SEDCMD) -i 's/image\: vmware.*/&:$(VERSIONTAG)/g' $(DOCKERCOMPOSEFILEPATH)/docker-compose.$(VERSIONTAG).yml + +install: compile build modify_composefile + @echo "loading harbor images..." + $(DOCKERCOMPOSECMD) -f $(DOCKERCOMPOSEFILEPATH)/docker-compose.$(VERSIONTAG).yml up -d + @echo "Install complete. You can visit harbor now." + +package_online: modify_composefile + @echo "packing online package ..." + @cp -r make $(HARBORPKG) + @$(SEDCMD) -i 's/image\: vmware/image\: $(REGISTRYSERVER)\/$(REGISTRYPROJECTNAME)/' $(HARBORPKG)/docker-compose.$(VERSIONTAG).yml + + @cp LICENSE $(HARBORPKG)/LICENSE + @cp NOTICE $(HARBORPKG)/NOTICE + @$(TARCMD) -zcvf harbor-online-installer-$(VERSIONTAG).tgz \ + --exclude=$(HARBORPKG)/common/db --exclude=$(HARBORPKG)/ubuntu \ + --exclude=$(HARBORPKG)/photon --exclude=$(HARBORPKG)/kubernetes \ + --exclude=$(HARBORPKG)/dev --exclude=docker-compose.yml \ + --exclude=$(HARBORPKG)/checkenv.sh \ + --exclude=$(HARBORPKG)/jsminify.sh \ + --exclude=$(HARBORPKG)/pushimage.sh \ + $(HARBORPKG) + + @rm -rf $(HARBORPKG) + @echo "Done." + +package_offline: compile build modify_composefile + @echo "packing offline package ..." + @cp -r make $(HARBORPKG) + + @cp LICENSE $(HARBORPKG)/LICENSE + @cp NOTICE $(HARBORPKG)/NOTICE + @echo "saving harbor docker image" + $(DOCKERSAVE) -o $(HARBORPKG)/$(DOCKERIMGFILE).$(VERSIONTAG).tgz \ + $(DOCKERIMAGENAME_UI):$(VERSIONTAG) \ + $(DOCKERIMAGENAME_LOG):$(VERSIONTAG) \ + $(DOCKERIMAGENAME_DB):$(VERSIONTAG) \ + $(DOCKERIMAGENAME_JOBSERVICE):$(VERSIONTAG) \ + nginx:1.9.0 registry:2.5.0 + + @$(TARCMD) -zcvf harbor-offline-installer-$(VERSIONTAG).tgz \ + --exclude=$(HARBORPKG)/common/db --exclude=$(HARBORPKG)/ubuntu \ + --exclude=$(HARBORPKG)/photon --exclude=$(HARBORPKG)/kubernetes \ + --exclude=$(HARBORPKG)/dev --exclude=docker-compose.yml \ + --exclude=$(HARBORPKG)/checkenv.sh \ + --exclude=$(HARBORPKG)/jsminify.sh \ + --exclude=$(HARBORPKG)/pushimage.sh \ + $(HARBORPKG) + + @rm -rf $(HARBORPKG) + @echo "Done." + +pushimage: + @echo "pushing harbor images ..." + @$(DOCKERTAG) $(DOCKERIMAGENAME_UI):$(VERSIONTAG) $(REGISTRYSERVER)$(DOCKERIMAGENAME_UI):$(VERSIONTAG) + @$(PUSHSCRIPTPATH)/$(PUSHSCRIPTNAME) $(REGISTRYSERVER)$(DOCKERIMAGENAME_UI):$(VERSIONTAG) \ + $(REGISTRYUSER) $(REGISTRYPASSWORD) $(REGISTRYSERVER) + @$(DOCKERRMIMAGE) $(REGISTRYSERVER)$(DOCKERIMAGENAME_UI):$(VERSIONTAG) + + @$(DOCKERTAG) $(DOCKERIMAGENAME_JOBSERVICE):$(VERSIONTAG) $(REGISTRYSERVER)$(DOCKERIMAGENAME_JOBSERVICE):$(VERSIONTAG) + @$(PUSHSCRIPTPATH)/$(PUSHSCRIPTNAME) $(REGISTRYSERVER)$(DOCKERIMAGENAME_JOBSERVICE):$(VERSIONTAG) \ + $(REGISTRYUSER) $(REGISTRYPASSWORD) $(REGISTRYSERVER) + @$(DOCKERRMIMAGE) $(REGISTRYSERVER)$(DOCKERIMAGENAME_JOBSERVICE):$(VERSIONTAG) + + @$(DOCKERTAG) $(DOCKERIMAGENAME_LOG):$(VERSIONTAG) $(REGISTRYSERVER)$(DOCKERIMAGENAME_LOG):$(VERSIONTAG) + @$(PUSHSCRIPTPATH)/$(PUSHSCRIPTNAME) $(REGISTRYSERVER)$(DOCKERIMAGENAME_LOG):$(VERSIONTAG) \ + $(REGISTRYUSER) $(REGISTRYPASSWORD) $(REGISTRYSERVER) + @$(DOCKERRMIMAGE) $(REGISTRYSERVER)$(DOCKERIMAGENAME_LOG):$(VERSIONTAG) + + @$(DOCKERTAG) $(DOCKERIMAGENAME_DB):$(VERSIONTAG) $(REGISTRYSERVER)$(DOCKERIMAGENAME_DB):$(VERSIONTAG) + @$(PUSHSCRIPTPATH)/$(PUSHSCRIPTNAME) $(REGISTRYSERVER)$(DOCKERIMAGENAME_DB):$(VERSIONTAG) \ + $(REGISTRYUSER) $(REGISTRYPASSWORD) $(REGISTRYSERVER) + @$(DOCKERRMIMAGE) $(REGISTRYSERVER)$(DOCKERIMAGENAME_DB):$(VERSIONTAG) + +start: + @echo "loading harbor images..." + @$(DOCKERCOMPOSECMD) -f $(DOCKERCOMPOSEFILEPATH)/docker-compose.$(VERSIONTAG).yml up -d + @echo "Start complete. You can visit harbor now." + +down: + @echo "stoping harbor instance..." + @$(DOCKERCOMPOSECMD) -f $(DOCKERCOMPOSEFILEPATH)/docker-compose.yml down + @echo "Done." + +cleanbinary: + @echo "cleaning binary..." + @if [ -f $(UIBINARYPATH)/$(UIBINARYNAME) ] ; then rm $(UIBINARYPATH)/$(UIBINARYNAME) ; fi + @if [ -f $(JOBSERVICEBINARYPATH)/$(JOBSERVICEBINARYNAME) ] ; then rm $(JOBSERVICEBINARYPATH)/$(JOBSERVICEBINARYNAME) ; fi + +cleanimage: + @echo "cleaning image for photon..." + - $(DOCKERRMIMAGE) -f $(DOCKERIMAGENAME_UI):$(VERSIONTAG) + - $(DOCKERRMIMAGE) -f $(DOCKERIMAGENAME_DB):$(VERSIONTAG) + - $(DOCKERRMIMAGE) -f $(DOCKERIMAGENAME_JOBSERVICE):$(VERSIONTAG) + - $(DOCKERRMIMAGE) -f $(DOCKERIMAGENAME_LOG):$(VERSIONTAG) + - $(DOCKERRMIMAGE) -f registry:2.5.0 + - $(DOCKERRMIMAGE) -f nginx:1.9 + +cleandockercomposefile: + @echo "cleaning $(DOCKERCOMPOSEFILEPATH)/docker-compose.$(VERSIONTAG).yml" + @if [ -f $(DOCKERCOMPOSEFILEPATH)/docker-compose.$(VERSIONTAG).yml ] ; then rm $(DOCKERCOMPOSEFILEPATH)/docker-compose.$(VERSIONTAG).yml ; fi + +cleanversiontag: + @echo "cleaning version TAG" + @$(SEDCMD) -i 's/version=\"$(VERSIONTAG)\"/version=\"{{.Version}}\"/' -i $(VERSIONFILEPATH)/$(VERSIONFILENAME) + +cleanpackage: + @echo "cleaning harbor install package" + @if [ -d $(BUILDPATH)/harbor ] ; then rm -rf $(BUILDPATH)/harbor ; fi + @if [ -f $(BUILDPATH)/harbor-online-installer-$(VERSIONTAG).tgz ] ; \ + then rm $(BUILDPATH)/harbor-online-installer-$(VERSIONTAG).tgz ; fi + @if [ -f $(BUILDPATH)/harbor-offline-installer-$(VERSIONTAG).tgz ] ; \ + then rm $(BUILDPATH)/harbor-offline-installer-$(VERSIONTAG).tgz ; fi + +.PHONY: clean +clean: cleanbinary cleanimage cleandockercomposefile cleanversiontag cleanpackage + +all: install + diff --git a/README.md b/README.md index b7cb8392b..f9af3073e 100644 --- a/README.md +++ b/README.md @@ -29,12 +29,12 @@ On an Internet connected host, Harbor can be easily installed via docker-compose ```sh $ git clone https://github.com/vmware/harbor ``` -2. Edit the file **Deploy/harbor.cfg**, make necessary configuration changes such as hostname, admin password and mail server. Refer to [Installation and Configuration Guide](docs/installation_guide.md) for more info. +2. Edit the file **make/harbor.cfg**, make necessary configuration changes such as hostname, admin password and mail server. Refer to [Installation and Configuration Guide](docs/installation_guide.md) for more info. 3. Install Harbor with the following commands. Note that the docker-compose process can take a while. ```sh - $ cd Deploy + $ cd make $ ./prepare Generated configuration file: ./config/ui/env diff --git a/docs/README.md b/docs/README.md index 273e3f77c..f5af9c2e6 100644 --- a/docs/README.md +++ b/docs/README.md @@ -14,7 +14,7 @@ Configure security connection between Harbor and Docker client. [Upgrade and Data Migration Guide](migration_guide.md) Data migration may be needed when upgrading Harbor to a newer version. -[Deploy Harbor on Kubernetes](kubernetes_deployment.md) +[make Harbor on Kubernetes](kubernetes_deployment.md) Guide to deploy Harbor on Kubenetes. (maintained by community) ### Developer documents @@ -31,7 +31,7 @@ How to add your local language to Harbor. [Python SDK](../contrib/sdk/harbor-py) (by community) -[Deploying Harbor using Docker Machine](../contrib/deploying_using_docker_machine.md) ( by community) +[makeing Harbor using Docker Machine](../contrib/deploying_using_docker_machine.md) ( by community) [Configuring Harbor as a local registry mirror](../contrib/Configure_mirror.md) (by community) @@ -51,7 +51,7 @@ How to add your local language to Harbor. [Overall Architecture of Harbor Registry](http://www.compare-review-information.com/overall-architecture-of-harbor-registry/) -[Deploying a Private Secured Docker Registry in 15 Minutes](http://alexanderzeitler.com/articles/deploying-a-private-secured-docker-registry-within-15-minutes/) +[makeing a Private Secured Docker Registry in 15 Minutes](http://alexanderzeitler.com/articles/deploying-a-private-secured-docker-registry-within-15-minutes/) [Docker Private Registry Using Harbor](https://blog.imaginea.com/docker-private-registry-using-harbor-2/) diff --git a/docs/configure_https.md b/docs/configure_https.md index 622430a6f..5b1f57833 100644 --- a/docs/configure_https.md +++ b/docs/configure_https.md @@ -45,9 +45,9 @@ If you're using **IP** to connect your registry host, you may instead run the co openssl ca -in yourdomain.com.csr -out yourdomain.com.crt -cert ca.crt -keyfile ca.key -extfile extfile.cnf -outdir . ``` ##Configuration of Nginx -After obtaining the **yourdomain.com.crt** and **yourdomain.com.key** files, change the directory to Deploy/config/nginx in Harbor project. +After obtaining the **yourdomain.com.crt** and **yourdomain.com.key** files, change the directory to make/config/nginx in Harbor project. ``` - cd Deploy/config/nginx + cd make/config/nginx ``` Create a new directory cert/, if it does not exist. Then copy **yourdomain.com.crt** and **yourdomain.com.key** to cert/, e.g. : ``` @@ -87,7 +87,7 @@ Then look for the SSL section to make sure the files of your certificates match Save your changes in nginx.conf. ##Installation of Harbor -Next, edit the file Deploy/harbor.cfg , update the hostname and the protocol: +Next, edit the file make/harbor.cfg , update the hostname and the protocol: ``` #set hostname hostname = reg.yourdomain.com diff --git a/docs/configure_swagger.md b/docs/configure_swagger.md index 80acee716..d641b2b3a 100644 --- a/docs/configure_swagger.md +++ b/docs/configure_swagger.md @@ -34,9 +34,9 @@ From time to time, you may need to mannually test Harbor REST API. You can deplo ```sh ./prepare-swagger.sh ``` -* Change the directory to _Deploy_ +* Change the directory to _make_ ```sh - cd ../Deploy + cd ../make ``` * Edit the _docker-compose.yml_ file. ```sh @@ -51,8 +51,8 @@ ui: - ./config/ui/app.conf:/etc/ui/app.conf - ./config/ui/private_key.pem:/etc/ui/private_key.pem ## add two lines as below ## - - ../static/vendors/swagger-ui-2.1.4/dist:/go/bin/static/vendors/swagger - - ../static/resources/yaml/swagger.yaml:/go/bin/static/resources/yaml/swagger.yaml + - ../../src/ui/static/vendors/swagger-ui-2.1.4/dist:/go/bin/static/vendors/swagger + - ../../src/ui/static/resources/yaml/swagger.yaml:/go/bin/static/resources/yaml/swagger.yaml ... ``` * Rebuild Harbor project diff --git a/docs/customize_token_service.md b/docs/customize_token_service.md index ca358b2ae..93694a1f8 100644 --- a/docs/customize_token_service.md +++ b/docs/customize_token_service.md @@ -50,7 +50,7 @@ $ cp /root/cert/private_key.pem private_key.pem $ cp /root/cert/root.crt ../registry/root.crt ``` -5.After these, go back to the Deploy directory, you can start Harbor using following command: +5.After these, go back to the make directory, you can start Harbor using following command: ``` $ docker-compose up -d ``` diff --git a/docs/developer_guide_i18n.md b/docs/developer_guide_i18n.md index df3f58ab2..a5b56d534 100644 --- a/docs/developer_guide_i18n.md +++ b/docs/developer_guide_i18n.md @@ -45,14 +45,14 @@ 5. Add the new language to the `app.conf` file. - In the file `Deploy/config/ui/app.conf`, append a new item to the configuration section. + In the file `make/config/ui/app.conf`, append a new item to the configuration section. ``` [lang] types = en-US|zh-CN|- names = en-US|zh-CN|- ``` -6. Next, change to `Deploy/` directory, rebuild and restart the Harbor by the below command: +6. Next, change to `make/` directory, rebuild and restart the Harbor by the below command: ``` docker-compose down docker-compose up --build -d diff --git a/docs/image_pulling_chinese_user.md b/docs/image_pulling_chinese_user.md index f16c7a4b7..37a78562c 100644 --- a/docs/image_pulling_chinese_user.md +++ b/docs/image_pulling_chinese_user.md @@ -2,8 +2,8 @@ By default, Harbor not only build images according to Dockerfile but also pull images from Docker Hub. For the reason we all know, it is difficult for Chinese Harbor users to pull images from the Docker Hub. We put images on daocloud.io platform, we'll put images on other platforms later. If you have difficulty to pull images from Docker Hub, or you think it wastes too much time to build images. We recommend you to use the following way to accelerate the pulling procedure(make sure you're in the harbor diectory): ``` $ cd contrib -$ cp docker-compose.yml.daocloud ../Deploy -$ cd ../Deploy +$ cp docker-compose.yml.daocloud ../make +$ cd ../make $ mv docker-compose.yml docker-compose.yml.bak $ mv docker-compose.yml.daocloud docker-compose.yml $ docker-compose up -d diff --git a/docs/installation_guide.md b/docs/installation_guide.md index da7341964..f678c8cc7 100644 --- a/docs/installation_guide.md +++ b/docs/installation_guide.md @@ -7,7 +7,7 @@ Harbor can be installed by one of two installers: Both installers can be downloaded from the [release page](https://github.com/vmware/harbor/releases). The installation process of both installers are the same, this guide describes the steps to install and configure Harbor. -In addition, the deployment instructions on Kubernetes has been created by the community. Refer to [Deploy Harbor on Kubernetes](kubernetes_deployment.md) for details. +In addition, the deployment instructions on Kubernetes has been created by the community. Refer to [make Harbor on Kubernetes](kubernetes_deployment.md) for details. ## Prerequisites for the target host Harbor is deployed as several Docker containers, and, therefore, can be deployed on any Linux distribution that supports Docker. The target host requires Python, Docker, and Docker Compose to be installed. @@ -281,7 +281,7 @@ $ sudo install.sh If a container is not in **UP** state, check the log file of that container in directory ```/var/log/harbor```. For example, if the container ```harbor_ui_1``` is not running, you should look at the log file ```docker_ui.log```. -2.When setting up Harbor behind an nginx proxy or elastic load balancing, look for the line below, in `Deploy/config/nginx/nginx.conf` and remove it from the sections if the proxy already has similar settings: `location /`, `location /v2/` and `location /service/`. +2.When setting up Harbor behind an nginx proxy or elastic load balancing, look for the line below, in `make/config/nginx/nginx.conf` and remove it from the sections if the proxy already has similar settings: `location /`, `location /v2/` and `location /service/`. ``` proxy_set_header X-Forwarded-Proto $scheme; ``` diff --git a/docs/kubernetes_deployment.md b/docs/kubernetes_deployment.md index 3bde4505a..ea03e6872 100644 --- a/docs/kubernetes_deployment.md +++ b/docs/kubernetes_deployment.md @@ -1,4 +1,4 @@ -## Deploying Harbor on Kubernetes +## makeing Harbor on Kubernetes To deploy Harbor on Kubernetes, it requires some additional steps because 1. When Harbor registry uses https, so we need cert or workaround to avoid errors like this: ``` @@ -24,13 +24,13 @@ To deploy Harbor on Kubernetes, it requires some additional steps because - Rebuild the registry image with the service IP after the service is created and use ```kubectl rolling-update``` to update to the new image. -To start Harbor on Kubernetes, you first need to build the docker images. The docker images for deploying Harbor on Kubernetes depends on the docker images to deploy Harbor with docker-compose. So the first step is to build docker images with docker-compose. Before actually building the images, you need to first adjust the [configuration](https://github.com/vmware/harbor/blob/master/Deploy/harbor.cfg): -- Change the [hostname](https://github.com/vmware/harbor/blob/master/Deploy/harbor.cfg#L5) to ```localhost``` -- Adjust the [email settings](https://github.com/vmware/harbor/blob/master/Deploy/harbor.cfg#L11) according to your needs. +To start Harbor on Kubernetes, you first need to build the docker images. The docker images for deploying Harbor on Kubernetes depends on the docker images to deploy Harbor with docker-compose. So the first step is to build docker images with docker-compose. Before actually building the images, you need to first adjust the [configuration](https://github.com/vmware/harbor/blob/master/make/harbor.cfg): +- Change the [hostname](https://github.com/vmware/harbor/blob/master/make/harbor.cfg#L5) to ```localhost``` +- Adjust the [email settings](https://github.com/vmware/harbor/blob/master/make/harbor.cfg#L11) according to your needs. Then you can run the following commends to build docker images: ``` -cd Deploy +cd make ./prepare docker-compose build docker build -f kubernetes/dockerfiles/proxy-dockerfile -t {your_account}/proxy . @@ -45,21 +45,21 @@ docker push {your_account}/deploy_mysql where "your_account" is your own registry. Then you need to update the "image" field in the ```*-rc.yaml``` files at: ``` -Deploy/kubernetes/mysql-rc.yaml -Deploy/kubernetes/proxy-rc.yaml -Deploy/kubernetes/registry-rc.yaml -Deploy/kubernetes/ui-rc.yaml +make/kubernetes/mysql-rc.yaml +make/kubernetes/proxy-rc.yaml +make/kubernetes/registry-rc.yaml +make/kubernetes/ui-rc.yaml ``` Further more, the following configuration could be changed according to your need: - - **harbor_admin_password**: The password for the administrator of Harbor, by default the password is Harbor12345. You can changed it [here](https://github.com/vmware/harbor/blob/master/Deploy/kubernetes/ui-rc.yaml#L36). - - **auth_mode**: The authentication mode of Harbor. By default it is *db_auth*, i.e. the credentials are stored in a database. Please set it to *ldap_auth* if you want to verify user's credentials against an LDAP server. You can change the configuration [here](https://github.com/vmware/harbor/blob/master/Deploy/kubernetes/ui-rc.yaml#L40). - - **ldap_url**: The URL for LDAP endpoint, for example ldaps://ldap.mydomain.com. It is only used when **auth_mode** is set to *ldap_auth*. It could be changed [here](https://github.com/vmware/harbor/blob/master/Deploy/kubernetes/ui-rc.yaml#L42). - - **ldap_basedn**: The basedn template for verifying the user's credentials against LDAP, for example uid=%s,ou=people,dc=mydomain,dc=com. It is only used when **auth_mode** is set to *ldap_auth*. It could be changed [here](https://github.com/vmware/harbor/blob/master/Deploy/kubernetes/ui-rc.yaml#L44). - - **db_password**: The password of root user of mySQL database. Change this password for any production use. You need to change both [here](https://github.com/vmware/harbor/blob/master/Deploy/kubernetes/ui-rc.yaml#L28) and [here](https://github.com/vmware/harbor/blob/master/Deploy/harbor.cfg#L32) to make the change. Please note, you need to change the ```harbor.cfg``` before building the docker images. + - **harbor_admin_password**: The password for the administrator of Harbor, by default the password is Harbor12345. You can changed it [here](https://github.com/vmware/harbor/blob/master/make/kubernetes/ui-rc.yaml#L36). + - **auth_mode**: The authentication mode of Harbor. By default it is *db_auth*, i.e. the credentials are stored in a database. Please set it to *ldap_auth* if you want to verify user's credentials against an LDAP server. You can change the configuration [here](https://github.com/vmware/harbor/blob/master/make/kubernetes/ui-rc.yaml#L40). + - **ldap_url**: The URL for LDAP endpoint, for example ldaps://ldap.mydomain.com. It is only used when **auth_mode** is set to *ldap_auth*. It could be changed [here](https://github.com/vmware/harbor/blob/master/make/kubernetes/ui-rc.yaml#L42). + - **ldap_basedn**: The basedn template for verifying the user's credentials against LDAP, for example uid=%s,ou=people,dc=mydomain,dc=com. It is only used when **auth_mode** is set to *ldap_auth*. It could be changed [here](https://github.com/vmware/harbor/blob/master/make/kubernetes/ui-rc.yaml#L44). + - **db_password**: The password of root user of mySQL database. Change this password for any production use. You need to change both [here](https://github.com/vmware/harbor/blob/master/make/kubernetes/ui-rc.yaml#L28) and [here](https://github.com/vmware/harbor/blob/master/make/harbor.cfg#L32) to make the change. Please note, you need to change the ```harbor.cfg``` before building the docker images. Finally you can start the jobs by running: ``` -kubectl create -f Deploy/kubernetes +kubectl create -f make/kubernetes ``` diff --git a/docs/migration_guide.md b/docs/migration_guide.md index 2f5156e63..45871f68d 100644 --- a/docs/migration_guide.md +++ b/docs/migration_guide.md @@ -12,7 +12,7 @@ When upgrading your existing Habor instance to a newer version, you may need to 1. Log in to the machine that Harbor runs on, stop and remove existing Harbor service if it is still running: ``` - cd Deploy/ + cd make/ docker-compose down ``` @@ -49,11 +49,11 @@ The directory **migration/** contains the tool for migration. The first step is docker run -ti --rm -v /data/database:/var/lib/mysql migrate-tool up head ``` -8. Change to `Deploy/` directory, configure Harbor by modifying the file `harbor.cfg`, you may need to refer to the configuration files you've backed up during step 2. Refer to [Installation & Configuration Guide ](../docs/installation_guide.md) for more info. +8. Change to `make/` directory, configure Harbor by modifying the file `harbor.cfg`, you may need to refer to the configuration files you've backed up during step 2. Refer to [Installation & Configuration Guide ](../docs/installation_guide.md) for more info. 9. If HTTPS has been enabled for Harbor before, restore the `nginx.conf` and key/certificate files from the backup files in Step 2. Refer to [Configuring Harbor with HTTPS Access](../docs/configure_https.md) for more info. -10. Under the directory `Deploy/`, run the `./prepare` script to generate necessary config files. +10. Under the directory `make/`, run the `./prepare` script to generate necessary config files. 11. Rebuild Harbor and restart the registry service @@ -67,7 +67,7 @@ For any reason, if you want to roll back to the previous version of Harbor, foll 1. Stop and remove the current Harbor service if it is still running. ``` - cd Deploy/ + cd make/ docker-compose down ``` 2. Restore database from backup file in `/path/to/backup` . @@ -88,7 +88,7 @@ For any reason, if you want to roll back to the previous version of Harbor, foll 5. Restart Harbor service using the previous configuration. ```sh - cd Deploy/ + cd make/ docker-compose up --build -d ``` diff --git a/docs/prepare-swagger.sh b/docs/prepare-swagger.sh index 8e33a3578..82fbebc55 100755 --- a/docs/prepare-swagger.sh +++ b/docs/prepare-swagger.sh @@ -7,13 +7,13 @@ rm -f *.tar.gz echo "Downloading Swagger UI release package..." wget https://github.com/swagger-api/swagger-ui/archive/v2.1.4.tar.gz -O swagger.tar.gz echo "Untarring Swagger UI package to the static file path..." -tar -C ../static/vendors -zxf swagger.tar.gz swagger-ui-2.1.4/dist +tar -C ../src/ui/static/vendors -zxf swagger.tar.gz swagger-ui-2.1.4/dist echo "Executing some processes..." sed -i.bak 's/http:\/\/petstore\.swagger\.io\/v2\/swagger\.json/'$SCHEME':\/\/'$SERVER_IP'\/static\/resources\/yaml\/swagger\.yaml/g' \ -../static/vendors/swagger-ui-2.1.4/dist/index.html -sed -i.bak '/jsonEditor: false,/a\ validatorUrl: null,' ../static/vendors/swagger-ui-2.1.4/dist/index.html -mkdir -p ../static/resources/yaml -cp swagger.yaml ../static/resources/yaml -sed -i.bak 's/host: localhost/host: '$SERVER_IP'/g' ../static/resources/yaml/swagger.yaml -sed -i.bak 's/ \- http$/ \- '$SCHEME'/g' ../static/resources/yaml/swagger.yaml +../src/ui/static/vendors/swagger-ui-2.1.4/dist/index.html +sed -i.bak '/jsonEditor: false,/a\ validatorUrl: null,' ../src/ui/static/vendors/swagger-ui-2.1.4/dist/index.html +mkdir -p ../src/ui/static/resources/yaml +cp swagger.yaml ../src/ui/static/resources/yaml +sed -i.bak 's/host: localhost/host: '$SERVER_IP'/g' ../src/ui/static/resources/yaml/swagger.yaml +sed -i.bak 's/ \- http$/ \- '$SCHEME'/g' ../src/ui/static/resources/yaml/swagger.yaml echo "Finish preparation for the Swagger UI." diff --git a/make/checkenv.sh b/make/checkenv.sh new file mode 100755 index 000000000..2187c474d --- /dev/null +++ b/make/checkenv.sh @@ -0,0 +1,150 @@ +#/bin/bash + +#docker version: 1.11.2 +#docker-compose version: 1.7.1 +#Harbor version: 0.4.5+ +set +e +set -o noglob + +# +# Set Colors +# + +bold=$(tput bold) +underline=$(tput sgr 0 1) +reset=$(tput sgr0) + +red=$(tput setaf 1) +green=$(tput setaf 76) +white=$(tput setaf 7) +tan=$(tput setaf 202) +blue=$(tput setaf 25) + +# +# Headers and Logging +# + +underline() { printf "${underline}${bold}%s${reset}\n" "$@" +} +h1() { printf "\n${underline}${bold}${blue}%s${reset}\n" "$@" +} +h2() { printf "\n${underline}${bold}${white}%s${reset}\n" "$@" +} +debug() { printf "${white}%s${reset}\n" "$@" +} +info() { printf "${white}➜ %s${reset}\n" "$@" +} +success() { printf "${green}✔ %s${reset}\n" "$@" +} +error() { printf "${red}✖ %s${reset}\n" "$@" +} +warn() { printf "${tan}➜ %s${reset}\n" "$@" +} +bold() { printf "${bold}%s${reset}\n" "$@" +} +note() { printf "\n${underline}${bold}${blue}Note:${reset} ${blue}%s${reset}\n" "$@" +} + +set -e + +usage=$'Checking environment for harbor build and install. Include golang, docker and docker-compose.' + +while [ $# -gt 0 ]; do + case $1 in + --help) + note "$usage" + exit 0;; + *) + note "$usage" + exit 1;; + esac + shift || true +done + +function check_golang { + if ! go version &> /dev/null + then + warn "No golang package in your enviroment. You should use golang docker image build binary." + return + fi + + # docker has been installed and check its version + if [[ $(go version) =~ (([0-9]+).([0-9]+).([0-9]+)) ]] + then + golang_version=${BASH_REMATCH[1]} + golang_version_part1=${BASH_REMATCH[2]} + golang_version_part2=${BASH_REMATCH[3]} + + # the version of golang does not meet the requirement + if [ "$golang_version_part1" -lt 1 ] || ([ "$golang_version_part1" -eq 1 ] && [ "$golang_version_part2" -lt 6 ]) + then + warn "Better to upgrade golang package to 1.6.0+ or use golang docker image build binary." + return + else + note "golang version: $golang_version" + fi + else + warn "Failed to parse golang version." + return + fi +} + +function check_docker { + if ! docker --version &> /dev/null + then + error "Need to install docker(1.10.0+) first and run this script again." + exit 1 + fi + + # docker has been installed and check its version + if [[ $(docker --version) =~ (([0-9]+).([0-9]+).([0-9]+)) ]] + then + docker_version=${BASH_REMATCH[1]} + docker_version_part1=${BASH_REMATCH[2]} + docker_version_part2=${BASH_REMATCH[3]} + + # the version of docker does not meet the requirement + if [ "$docker_version_part1" -lt 1 ] || ([ "$docker_version_part1" -eq 1 ] && [ "$docker_version_part2" -lt 10 ]) + then + error "Need to upgrade docker package to 1.10.0+." + exit 1 + else + note "docker version: $docker_version" + fi + else + error "Failed to parse docker version." + exit 1 + fi +} + +function check_dockercompose { + if ! docker-compose --version &> /dev/null + then + error "Need to install docker-compose(1.7.1+) by yourself first and run this script again." + exit 1 + fi + + # docker-compose has been installed, check its version + if [[ $(docker-compose --version) =~ (([0-9]+).([0-9]+).([0-9]+)) ]] + then + docker_compose_version=${BASH_REMATCH[1]} + docker_compose_version_part1=${BASH_REMATCH[2]} + docker_compose_version_part2=${BASH_REMATCH[3]} + + # the version of docker-compose does not meet the requirement + if [ "$docker_compose_version_part1" -lt 1 ] || ([ "$docker_compose_version_part1" -eq 1 ] && [ "$docker_compose_version_part2" -lt 6 ]) + then + error "Need to upgrade docker-compose package to 1.7.1+." + exit 1 + else + note "docker-compose version: $docker_compose_version" + fi + else + error "Failed to parse docker-compose version." + exit 1 + fi +} + +check_golang +check_docker +check_dockercompose diff --git a/Deploy/config/jobservice/app.conf b/make/common/config/jobservice/app.conf similarity index 100% rename from Deploy/config/jobservice/app.conf rename to make/common/config/jobservice/app.conf diff --git a/Deploy/config/nginx/cert/.gitignore b/make/common/config/nginx/cert/.gitignore similarity index 100% rename from Deploy/config/nginx/cert/.gitignore rename to make/common/config/nginx/cert/.gitignore diff --git a/Deploy/config/nginx/nginx.conf b/make/common/config/nginx/nginx.conf similarity index 100% rename from Deploy/config/nginx/nginx.conf rename to make/common/config/nginx/nginx.conf diff --git a/Deploy/config/registry/root.crt b/make/common/config/registry/root.crt similarity index 100% rename from Deploy/config/registry/root.crt rename to make/common/config/registry/root.crt diff --git a/Deploy/config/ui/private_key.pem b/make/common/config/ui/private_key.pem similarity index 100% rename from Deploy/config/ui/private_key.pem rename to make/common/config/ui/private_key.pem diff --git a/Deploy/db/Dockerfile b/make/common/db/Dockerfile similarity index 100% rename from Deploy/db/Dockerfile rename to make/common/db/Dockerfile diff --git a/Deploy/db/docker-entrypoint.sh b/make/common/db/docker-entrypoint.sh similarity index 100% rename from Deploy/db/docker-entrypoint.sh rename to make/common/db/docker-entrypoint.sh diff --git a/Deploy/db/registry.sql b/make/common/db/registry.sql similarity index 100% rename from Deploy/db/registry.sql rename to make/common/db/registry.sql diff --git a/Deploy/db/registry_sqlite.sql b/make/common/db/registry_sqlite.sql similarity index 100% rename from Deploy/db/registry_sqlite.sql rename to make/common/db/registry_sqlite.sql diff --git a/Deploy/log/logrotate_docker.conf b/make/common/log/logrotate_docker.conf similarity index 100% rename from Deploy/log/logrotate_docker.conf rename to make/common/log/logrotate_docker.conf diff --git a/Deploy/log/rsyslog.conf b/make/common/log/rsyslog.conf similarity index 100% rename from Deploy/log/rsyslog.conf rename to make/common/log/rsyslog.conf diff --git a/Deploy/log/rsyslog_docker.conf b/make/common/log/rsyslog_docker.conf similarity index 100% rename from Deploy/log/rsyslog_docker.conf rename to make/common/log/rsyslog_docker.conf diff --git a/Deploy/templates/db/env b/make/common/templates/db/env similarity index 100% rename from Deploy/templates/db/env rename to make/common/templates/db/env diff --git a/Deploy/templates/jobservice/env b/make/common/templates/jobservice/env similarity index 100% rename from Deploy/templates/jobservice/env rename to make/common/templates/jobservice/env diff --git a/Deploy/templates/nginx/nginx.http.conf b/make/common/templates/nginx/nginx.http.conf similarity index 100% rename from Deploy/templates/nginx/nginx.http.conf rename to make/common/templates/nginx/nginx.http.conf diff --git a/Deploy/templates/nginx/nginx.https.conf b/make/common/templates/nginx/nginx.https.conf similarity index 100% rename from Deploy/templates/nginx/nginx.https.conf rename to make/common/templates/nginx/nginx.https.conf diff --git a/Deploy/templates/registry/config.yml b/make/common/templates/registry/config.yml similarity index 100% rename from Deploy/templates/registry/config.yml rename to make/common/templates/registry/config.yml diff --git a/Deploy/templates/ui/app.conf b/make/common/templates/ui/app.conf similarity index 100% rename from Deploy/templates/ui/app.conf rename to make/common/templates/ui/app.conf diff --git a/Deploy/templates/ui/env b/make/common/templates/ui/env similarity index 100% rename from Deploy/templates/ui/env rename to make/common/templates/ui/env diff --git a/Deploy/docker-compose.yml b/make/dev/docker-compose.yml similarity index 70% rename from Deploy/docker-compose.yml rename to make/dev/docker-compose.yml index f4693ec7b..b1c6608ea 100644 --- a/Deploy/docker-compose.yml +++ b/make/dev/docker-compose.yml @@ -1,7 +1,9 @@ version: '2' services: log: - build: ./log/ + build: + context: ../../ + dockerfile: make/ubuntu/log/Dockerfile restart: always volumes: - /var/log/harbor/:/var/log/docker/ @@ -12,7 +14,7 @@ services: restart: always volumes: - /data/registry:/storage - - ./config/registry/:/etc/registry/ + - ../common/config/registry/:/etc/registry/ environment: - GODEBUG=netdns=cgo command: @@ -25,12 +27,12 @@ services: syslog-address: "tcp://127.0.0.1:1514" tag: "registry" mysql: - build: ./db/ + build: ../common/db/ restart: always volumes: - /data/database:/var/lib/mysql env_file: - - ./config/db/env + - ../common/config/db/env depends_on: - log logging: @@ -40,14 +42,14 @@ services: tag: "mysql" ui: build: - context: ../ - dockerfile: Deploy/ui/Dockerfile + context: ../../ + dockerfile: make/dev/ui/Dockerfile env_file: - - ./config/ui/env + - ../common/config/ui/env restart: always volumes: - - ./config/ui/app.conf:/etc/ui/app.conf - - ./config/ui/private_key.pem:/etc/ui/private_key.pem + - ../common/config/ui/app.conf:/etc/ui/app.conf + - ../common/config/ui/private_key.pem:/etc/ui/private_key.pem depends_on: - log logging: @@ -57,14 +59,14 @@ services: tag: "ui" jobservice: build: - context: ../ - dockerfile: Deploy/jobservice/Dockerfile + context: ../../ + dockerfile: make/dev/jobservice/Dockerfile env_file: - - ./config/jobservice/env + - ../common/config/jobservice/env restart: always volumes: - /data/job_logs:/var/log/jobs - - ./config/jobservice/app.conf:/etc/jobservice/app.conf + - ../common/config/jobservice/app.conf:/etc/jobservice/app.conf depends_on: - ui logging: @@ -76,7 +78,7 @@ services: image: library/nginx:1.9 restart: always volumes: - - ./config/nginx:/etc/nginx + - ../common/config/nginx:/etc/nginx ports: - 80:80 - 443:443 diff --git a/Deploy/jobservice/Dockerfile b/make/dev/jobservice/Dockerfile similarity index 85% rename from Deploy/jobservice/Dockerfile rename to make/dev/jobservice/Dockerfile index 5d53487e4..e9e525d3c 100644 --- a/Deploy/jobservice/Dockerfile +++ b/make/dev/jobservice/Dockerfile @@ -8,7 +8,7 @@ RUN apt-get update \ COPY . /go/src/github.com/vmware/harbor -WORKDIR /go/src/github.com/vmware/harbor/jobservice +WORKDIR /go/src/github.com/vmware/harbor/src/jobservice RUN go build -v -a -o /go/bin/harbor_jobservice \ && chmod u+x /go/bin/harbor_jobservice diff --git a/make/dev/jobservice/harbor_jobservice b/make/dev/jobservice/harbor_jobservice new file mode 100755 index 000000000..918335499 Binary files /dev/null and b/make/dev/jobservice/harbor_jobservice differ diff --git a/Deploy/ui/Dockerfile b/make/dev/ui/Dockerfile similarity index 64% rename from Deploy/ui/Dockerfile rename to make/dev/ui/Dockerfile index 956d70048..f8d56fdd7 100644 --- a/Deploy/ui/Dockerfile +++ b/make/dev/ui/Dockerfile @@ -6,8 +6,8 @@ RUN apt-get update \ && apt-get install -y libldap2-dev \ && rm -r /var/lib/apt/lists/* -COPY . /go/src/github.com/vmware/harbor -WORKDIR /go/src/github.com/vmware/harbor/ui +COPY src/. /go/src/github.com/vmware/harbor/src +WORKDIR /go/src/github.com/vmware/harbor/src/ui RUN go build -v -a -o /go/bin/harbor_ui @@ -15,15 +15,15 @@ ENV MYSQL_USR root \ MYSQL_PWD root \ REGISTRY_URL localhost:5000 -COPY views /go/bin/views -COPY static /go/bin/static -COPY favicon.ico /go/bin/favicon.ico -COPY Deploy/jsminify.sh /tmp/jsminify.sh +COPY src/ui/views /go/bin/views +COPY src/ui/static /go/bin/static +COPY src/favicon.ico /go/bin/favicon.ico +COPY make/jsminify.sh /tmp/jsminify.sh RUN chmod u+x /go/bin/harbor_ui \ && sed -i 's/TLS_CACERT/#TLS_CAERT/g' /etc/ldap/ldap.conf \ && sed -i '$a\TLS_REQCERT allow' /etc/ldap/ldap.conf \ - && /tmp/jsminify.sh /go/bin/views/sections/script-include.htm /go/bin/static/resources/js/harbor.app.min.js + && /tmp/jsminify.sh /go/bin/views/sections/script-include.htm /go/bin/static/resources/js/harbor.app.min.js /go/bin/ WORKDIR /go/bin/ ENTRYPOINT ["/go/bin/harbor_ui"] diff --git a/make/dev/ui/harbor_ui b/make/dev/ui/harbor_ui new file mode 100755 index 000000000..3f90cbb8a Binary files /dev/null and b/make/dev/ui/harbor_ui differ diff --git a/Deploy/docker-compose.yml.photon b/make/docker-compose.yml similarity index 67% rename from Deploy/docker-compose.yml.photon rename to make/docker-compose.yml index 86ae8df81..1e7e81f71 100644 --- a/Deploy/docker-compose.yml.photon +++ b/make/docker-compose.yml @@ -1,7 +1,8 @@ version: '2' services: log: - image: harbor_log_photon + image: vmware/harbor-log + container_name: harbor-log restart: always volumes: - /var/log/harbor/:/var/log/docker/ @@ -9,10 +10,11 @@ services: - 1514:514 registry: image: library/registry:2.5.0 + container_name: registry restart: always volumes: - /data/registry:/storage - - ./config/registry/:/etc/registry/ + - ./common/config/registry/:/etc/registry/ environment: - GODEBUG=netdns=cgo command: @@ -25,12 +27,13 @@ services: syslog-address: "tcp://127.0.0.1:1514" tag: "registry" mysql: - build: ./db/ + image: vmware/harbor-db + container_name: harbor-db restart: always volumes: - /data/database:/var/lib/mysql env_file: - - ./config/db/env + - ./common/config/db/env depends_on: - log logging: @@ -39,13 +42,14 @@ services: syslog-address: "tcp://127.0.0.1:1514" tag: "mysql" ui: - image: harbor_ui_photon + image: vmware/harbor-ui + container_name: harbor-ui env_file: - - ./config/ui/env + - ./common/config/ui/env restart: always volumes: - - ./config/ui/app.conf:/etc/ui/app.conf - - ./config/ui/private_key.pem:/etc/ui/private_key.pem + - ./common/config/ui/app.conf:/etc/ui/app.conf + - ./common/config/ui/private_key.pem:/etc/ui/private_key.pem depends_on: - log logging: @@ -54,13 +58,14 @@ services: syslog-address: "tcp://127.0.0.1:1514" tag: "ui" jobservice: - image: harbor_jobservice_photon + image: vmware/harbor-jobservice + container_name: harbor-jobservice env_file: - - ./config/jobservice/env + - ./common/config/jobservice/env restart: always volumes: - /data/job_logs:/var/log/jobs - - ./config/jobservice/app.conf:/etc/jobservice/app.conf + - ./common/config/jobservice/app.conf:/etc/jobservice/app.conf depends_on: - ui logging: @@ -69,10 +74,11 @@ services: syslog-address: "tcp://127.0.0.1:1514" tag: "jobservice" proxy: - image: library/nginx:1.9.0 + image: nginx:1.9.0 + container_name: nginx restart: always volumes: - - ./config/nginx:/etc/nginx + - ./common/config/nginx:/etc/nginx ports: - 80:80 - 443:443 diff --git a/Deploy/harbor.cfg b/make/harbor.cfg similarity index 100% rename from Deploy/harbor.cfg rename to make/harbor.cfg diff --git a/make/install.sh b/make/install.sh new file mode 100755 index 000000000..f4f7592a3 --- /dev/null +++ b/make/install.sh @@ -0,0 +1,181 @@ +#!/bin/bash + +#docker version: 1.11.2 +#docker-compose version: 1.7.1 +#Harbor version: 0.4.0 + +set +e +set -o noglob + +# +# Set Colors +# + +bold=$(tput bold) +underline=$(tput sgr 0 1) +reset=$(tput sgr0) + +red=$(tput setaf 1) +green=$(tput setaf 76) +white=$(tput setaf 7) +tan=$(tput setaf 202) +blue=$(tput setaf 25) + +# +# Headers and Logging +# + +underline() { printf "${underline}${bold}%s${reset}\n" "$@" +} +h1() { printf "\n${underline}${bold}${blue}%s${reset}\n" "$@" +} +h2() { printf "\n${underline}${bold}${white}%s${reset}\n" "$@" +} +debug() { printf "${white}%s${reset}\n" "$@" +} +info() { printf "${white}➜ %s${reset}\n" "$@" +} +success() { printf "${green}✔ %s${reset}\n" "$@" +} +error() { printf "${red}✖ %s${reset}\n" "$@" +} +warn() { printf "${tan}➜ %s${reset}\n" "$@" +} +bold() { printf "${bold}%s${reset}\n" "$@" +} +note() { printf "\n${underline}${bold}${blue}Note:${reset} ${blue}%s${reset}\n" "$@" +} + +set -e +set +o noglob + +usage=$'Please set hostname and other necessary attributes in harbor.cfg first. DO NOT use localhost or 127.0.0.1 for hostname, because Harbor needs to be accessed by external clients.' +item=0 + +while [ $# -gt 0 ]; do + case $1 in + --help) + note "$usage" + exit 0;; + *) + note "$usage" + exit 1;; + esac + shift || true +done + +workdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cd $workdir + +# The hostname in harbor.cfg has not been modified +if grep 'hostname = reg.mydomain.com' &> /dev/null harbor.cfg +then + warn "$usage" + exit 1 +fi + +function check_docker { + if ! docker --version &> /dev/null + then + error "Need to install docker(1.10.0+) first and run this script again." + exit 1 + fi + + # docker has been installed and check its version + if [[ $(docker --version) =~ (([0-9]+).([0-9]+).([0-9]+)) ]] + then + docker_version=${BASH_REMATCH[1]} + docker_version_part1=${BASH_REMATCH[2]} + docker_version_part2=${BASH_REMATCH[3]} + + # the version of docker does not meet the requirement + if [ "$docker_version_part1" -lt 1 ] || ([ "$docker_version_part1" -eq 1 ] && [ "$docker_version_part2" -lt 10 ]) + then + error "Need to upgrade docker package to 1.10.0+." + exit 1 + else + note "docker version: $docker_version" + fi + else + error "Failed to parse docker version." + exit 1 + fi +} + +function check_dockercompose { + if ! docker-compose --version &> /dev/null + then + error "Need to install docker-compose(1.7.1+) by yourself first and run this script again." + exit 1 + fi + + # docker-compose has been installed, check its version + if [[ $(docker-compose --version) =~ (([0-9]+).([0-9]+).([0-9]+)) ]] + then + docker_compose_version=${BASH_REMATCH[1]} + docker_compose_version_part1=${BASH_REMATCH[2]} + docker_compose_version_part2=${BASH_REMATCH[3]} + + # the version of docker-compose does not meet the requirement + if [ "$docker_compose_version_part1" -lt 1 ] || ([ "$docker_compose_version_part1" -eq 1 ] && [ "$docker_compose_version_part2" -lt 6 ]) + then + error "Need to upgrade docker-compose package to 1.7.1+." + exit 1 + else + note "docker-compose version: $docker_compose_version" + fi + else + error "Failed to parse docker-compose version." + exit 1 + fi +} + +h2 "[Step $item]: checking installation environment ..."; let item+=1 +check_docker +check_dockercompose + +if [ -f harbor*.tgz ] +then + h2 "[Step $item]: loading Harbor images ..."; let item+=1 + docker load -i ./harbor*.tgz +fi +echo "" + +h2 "[Step $item]: preparing environment ..."; let item+=1 +if [ -n "$host" ] +then + sed "s/^hostname = .*/hostname = $host/g" -i ./harbor.cfg +fi +./prepare +echo "" + +h2 "[Step $item]: checking existing instance of Harbor ..."; let item+=1 +if [ -n "$(docker-compose -f docker-compose*.yml ps -q)" ] +then + note "stopping existing Harbor instance ..." + docker-compose -f docker-compose*.yml down +fi +echo "" + +h2 "[Step $item]: starting Harbor ..." +docker-compose -f docker-compose*.yml up -d + +protocol=http +hostname=reg.mydomain.com + +if [[ $(cat ./harbor.cfg) =~ ui_url_protocol[[:blank:]]*=[[:blank:]]*(https?) ]] +then +protocol=${BASH_REMATCH[1]} +fi + +if [[ $(grep 'hostname[[:blank:]]*=' ./harbor.cfg) =~ hostname[[:blank:]]*=[[:blank:]]*(.*) ]] +then +hostname=${BASH_REMATCH[1]} +fi +echo "" + +success $"----Harbor has been installed and started successfully.---- + +Now you should be able to visit the admin portal at ${protocol}://${hostname}. +For more details, please visit https://github.com/vmware/harbor . +" diff --git a/Deploy/jsminify.sh b/make/jsminify.sh similarity index 100% rename from Deploy/jsminify.sh rename to make/jsminify.sh diff --git a/Deploy/kubernetes/dockerfiles/proxy-dockerfile b/make/kubernetes/dockerfiles/proxy-dockerfile similarity index 100% rename from Deploy/kubernetes/dockerfiles/proxy-dockerfile rename to make/kubernetes/dockerfiles/proxy-dockerfile diff --git a/Deploy/kubernetes/dockerfiles/registry-config.yml b/make/kubernetes/dockerfiles/registry-config.yml similarity index 100% rename from Deploy/kubernetes/dockerfiles/registry-config.yml rename to make/kubernetes/dockerfiles/registry-config.yml diff --git a/Deploy/kubernetes/dockerfiles/registry-dockerfile b/make/kubernetes/dockerfiles/registry-dockerfile similarity index 100% rename from Deploy/kubernetes/dockerfiles/registry-dockerfile rename to make/kubernetes/dockerfiles/registry-dockerfile diff --git a/Deploy/kubernetes/dockerfiles/ui-dockerfile b/make/kubernetes/dockerfiles/ui-dockerfile similarity index 100% rename from Deploy/kubernetes/dockerfiles/ui-dockerfile rename to make/kubernetes/dockerfiles/ui-dockerfile diff --git a/Deploy/kubernetes/mysql-rc.yaml b/make/kubernetes/mysql-rc.yaml similarity index 100% rename from Deploy/kubernetes/mysql-rc.yaml rename to make/kubernetes/mysql-rc.yaml diff --git a/Deploy/kubernetes/mysql-svc.yaml b/make/kubernetes/mysql-svc.yaml similarity index 100% rename from Deploy/kubernetes/mysql-svc.yaml rename to make/kubernetes/mysql-svc.yaml diff --git a/Deploy/kubernetes/proxy-rc.yaml b/make/kubernetes/proxy-rc.yaml similarity index 100% rename from Deploy/kubernetes/proxy-rc.yaml rename to make/kubernetes/proxy-rc.yaml diff --git a/Deploy/kubernetes/proxy-svc.yaml b/make/kubernetes/proxy-svc.yaml similarity index 100% rename from Deploy/kubernetes/proxy-svc.yaml rename to make/kubernetes/proxy-svc.yaml diff --git a/Deploy/kubernetes/registry-rc.yaml b/make/kubernetes/registry-rc.yaml similarity index 100% rename from Deploy/kubernetes/registry-rc.yaml rename to make/kubernetes/registry-rc.yaml diff --git a/Deploy/kubernetes/registry-svc.yaml b/make/kubernetes/registry-svc.yaml similarity index 100% rename from Deploy/kubernetes/registry-svc.yaml rename to make/kubernetes/registry-svc.yaml diff --git a/Deploy/kubernetes/ui-rc.yaml b/make/kubernetes/ui-rc.yaml similarity index 100% rename from Deploy/kubernetes/ui-rc.yaml rename to make/kubernetes/ui-rc.yaml diff --git a/Deploy/kubernetes/ui-svc.yaml b/make/kubernetes/ui-svc.yaml similarity index 100% rename from Deploy/kubernetes/ui-svc.yaml rename to make/kubernetes/ui-svc.yaml diff --git a/make/photon/Makefile b/make/photon/Makefile new file mode 100644 index 000000000..ad4bd8487 --- /dev/null +++ b/make/photon/Makefile @@ -0,0 +1,74 @@ +# Makefile for a harbor project +# +# Targets: +# +# build: build harbor photon images +# clean: clean ui and jobservice harbor images + +# common +SHELL := /bin/bash +BUILDPATH=$(CURDIR) +DEPLOYPATH=$(BUILDPATH)/make +DEPLOYDEVPATH=$(DEPLOYPATH)/dev +SRCPATH=./src +TOOLSPATH=$(BUILDPATH)/tools +CHECKENVCMD=checkenv.sh + +# docker parameters +DOCKERCMD=$(shell which docker) +DOCKERBUILD=$(DOCKERCMD) build +DOCKERRMIMAGE=$(DOCKERCMD) rmi +DOCKERIMASES=$(DOCKERCMD) images + +# binary +UISOURCECODE=$(SRCPATH)/ui +UIBINARYPATH=$(DEPLOYDEVPATH)/ui +UIBINARYNAME=harbor_ui +JOBSERVICESOURCECODE=$(SRCPATH)/jobservice +JOBSERVICEBINARYPATH=$(DEPLOYDEVPATH)/jobservice +JOBSERVICEBINARYNAME=harbor_jobservice + +# photon dockerfile +DOCKERFILEPATH=$(DEPLOYPATH)/photon +DOCKERFILEPATH_UI=$(DOCKERFILEPATH)/ui +DOCKERFILENAME_UI=Dockerfile +DOCKERIMAGENAME_UI=vmware/harbor-ui +DOCKERFILEPATH_JOBSERVICE=$(DOCKERFILEPATH)/jobservice +DOCKERFILENAME_JOBSERVICE=Dockerfile +DOCKERIMAGENAME_JOBSERVICE=vmware/harbor-jobservice +DOCKERFILEPATH_LOG=$(DOCKERFILEPATH)/log +DOCKERFILENAME_LOG=Dockerfile +DOCKERIMAGENAME_LOG=vmware/harbor-log + +# version prepare +VERSIONFILEPATH=$(SRCPATH)/views/sections +VERSIONFILENAME=header-content.htm +GITCMD=$(shell which git) +GITTAG=$(GITCMD) describe --tags +VERSIONTAG=$(shell $(GITTAG)) + +check_environment: + @$(TOOLSPATH)/$(CHECKENVCMD) + +build: + @echo "building ui container for photon..." + $(DOCKERBUILD) -f $(DOCKERFILEPATH_UI)/$(DOCKERFILENAME_UI) -t $(DOCKERIMAGENAME_UI):$(VERSIONTAG) . + @echo "Done." + + @echo "building jobservice container for photon..." + $(DOCKERBUILD) -f $(DOCKERFILEPATH_JOBSERVICE)/$(DOCKERFILENAME_JOBSERVICE) -t $(DOCKERIMAGENAME_JOBSERVICE):$(VERSIONTAG) . + @echo "Done." + + @echo "building log container for photon..." + $(DOCKERBUILD) -f $(DOCKERFILEPATH_LOG)/$(DOCKERFILENAME_LOG) -t $(DOCKERIMAGENAME_LOG):$(VERSIONTAG) . + @echo "Done." + +cleanimage: + @echo "cleaning image for photon..." + - $(DOCKERRMIMAGE) -f $(DOCKERIMAGENAME_UI):$(VERSIONTAG) + - $(DOCKERRMIMAGE) -f $(DOCKERIMAGENAME_JOBSERVICE):$(VERSIONTAG) + - $(DOCKERRMIMAGE) -f $(DOCKERIMAGENAME_LOG):$(VERSIONTAG) + +.PHONY: clean +clean: cleanimage + diff --git a/Deploy/jobservice/Dockerfile.jobservice.photon b/make/photon/jobservice/Dockerfile similarity index 73% rename from Deploy/jobservice/Dockerfile.jobservice.photon rename to make/photon/jobservice/Dockerfile index 1dac1ae5c..39f4fee96 100644 --- a/Deploy/jobservice/Dockerfile.jobservice.photon +++ b/make/photon/jobservice/Dockerfile @@ -1,7 +1,7 @@ FROM library/photon:latest RUN mkdir /harbor/ -COPY ./Deploy/jobservice/harbor_jobservice /harbor/ +COPY ./make/dev/jobservice/harbor_jobservice /harbor/ RUN chmod u+x /harbor/harbor_jobservice WORKDIR /harbor/ diff --git a/Deploy/log/Dockerfile.log.photon b/make/photon/log/Dockerfile similarity index 67% rename from Deploy/log/Dockerfile.log.photon rename to make/photon/log/Dockerfile index e4baec9c4..8ae03e95c 100644 --- a/Deploy/log/Dockerfile.log.photon +++ b/make/photon/log/Dockerfile @@ -8,15 +8,15 @@ RUN tdnf install -y cronie rsyslog logrotate shadow\ && groupadd syslog \ && useradd -g syslog syslog -ADD rsyslog.conf /etc/rsyslog.conf +ADD make/common/log/rsyslog.conf /etc/rsyslog.conf -COPY logrotate.conf.photon /etc/logrotate.conf +COPY make/photon/log/logrotate.conf.photon /etc/logrotate.conf # logrotate configuration file for docker -ADD logrotate_docker.conf /etc/logrotate.d/ +ADD make/common/log/logrotate_docker.conf /etc/logrotate.d/ # rsyslog configuration file for docker -ADD rsyslog_docker.conf /etc/rsyslog.d/ +ADD make/common/log/rsyslog_docker.conf /etc/rsyslog.d/ VOLUME /var/log/docker/ diff --git a/Deploy/log/logrotate.conf.photon b/make/photon/log/logrotate.conf.photon similarity index 100% rename from Deploy/log/logrotate.conf.photon rename to make/photon/log/logrotate.conf.photon diff --git a/Deploy/ui/Dockerfile.ui.photon b/make/photon/ui/Dockerfile similarity index 64% rename from Deploy/ui/Dockerfile.ui.photon rename to make/photon/ui/Dockerfile index 4b2e14fed..c858905ac 100644 --- a/Deploy/ui/Dockerfile.ui.photon +++ b/make/photon/ui/Dockerfile @@ -3,12 +3,12 @@ FROM library/photon:latest RUN mkdir /harbor/ RUN tdnf install -y sed apr-util-ldap -COPY ./Deploy/ui/harbor_ui /harbor/ +COPY ./make/dev/ui/harbor_ui /harbor/ -COPY ./views /harbor/views -COPY ./static /harbor/static -COPY ./favicon.ico /harbor/favicon.ico -COPY ./Deploy/jsminify.sh /tmp/jsminify.sh +COPY ./src/ui/views /harbor/views +COPY ./src/ui/static /harbor/static +COPY ./src/favicon.ico /harbor/favicon.ico +COPY ./make/jsminify.sh /tmp/jsminify.sh RUN chmod u+x /harbor/harbor_ui \ && tmp/jsminify.sh /harbor/views/sections/script-include.htm /harbor/static/resources/js/harbor.app.min.js /harbor/ \ diff --git a/Deploy/prepare b/make/prepare similarity index 97% rename from Deploy/prepare rename to make/prepare index 9648c24ed..88f79d516 100755 --- a/Deploy/prepare +++ b/make/prepare @@ -49,9 +49,13 @@ def get_secret_key(path): f.write(key) print("generated and saved secret key") return key + +base_dir = os.path.dirname(__file__) +config_dir = os.path.join(base_dir, "common/config") +templates_dir = os.path.join(base_dir, "common/templates") parser = argparse.ArgumentParser() -parser.add_argument('-conf', dest='cfgfile', default='harbor.cfg',type=str,help="the path of Harbor configuration file") +parser.add_argument('-conf', dest='cfgfile', default=base_dir+'/harbor.cfg',type=str,help="the path of Harbor configuration file") parser.add_argument('--data-volume', dest='data_volume', default='/data/',type=str,help="the path of Harbor data volume, which is set in template of docker-compose.") args = parser.parse_args() @@ -116,10 +120,6 @@ secret_key = get_secret_key(args.data_volume) ui_secret = ''.join(random.choice(string.ascii_letters+string.digits) for i in range(16)) -base_dir = os.path.dirname(__file__) -config_dir = os.path.join(base_dir, "config") -templates_dir = os.path.join(base_dir, "templates") - ui_config_dir = os.path.join(config_dir,"ui") if not os.path.exists(ui_config_dir): os.makedirs(os.path.join(config_dir, "ui")) diff --git a/make/pushimage.sh b/make/pushimage.sh new file mode 100755 index 000000000..9bf4f0bc2 --- /dev/null +++ b/make/pushimage.sh @@ -0,0 +1,139 @@ +#!/bin/bash + +set +e +set -o noglob + +echo "This shell will push specific image to registry server." +echo "Usage: #./pushimage [imgae tag] [registry username] [registry password] [registry server]" + +# +# Set Colors +# + +bold=$(tput bold) +underline=$(tput sgr 0 1) +reset=$(tput sgr0) + +red=$(tput setaf 1) +green=$(tput setaf 76) +white=$(tput setaf 7) +tan=$(tput setaf 202) +blue=$(tput setaf 25) + +# +# Headers and Logging +# + +underline() { printf "${underline}${bold}%s${reset}\n" "$@" +} +h1() { printf "\n${underline}${bold}${blue}%s${reset}\n" "$@" +} +h2() { printf "\n${underline}${bold}${white}%s${reset}\n" "$@" +} +debug() { printf "${white}%s${reset}\n" "$@" +} +info() { printf "${white}➜ %s${reset}\n" "$@" +} +success() { printf "${green}✔ %s${reset}\n" "$@" +} +error() { printf "${red}✖ %s${reset}\n" "$@" +} +warn() { printf "${tan}➜ %s${reset}\n" "$@" +} +bold() { printf "${bold}%s${reset}\n" "$@" +} +note() { printf "\n${underline}${bold}${blue}Note:${reset} ${blue}%s${reset}\n" "$@" +} + + +type_exists() { + if [ $(type -P $1) ]; then + return 0 + fi + return 1 +} + +# Check variables +if [ -z $1 ]; then + error "Please set the 'image' variable" + exit 1 +fi + +if [ -z $2 ]; then + error "Please set the 'username' variable" + exit 1 +fi + +if [ -z $3 ]; then + error "Please set the 'password' variable" + exit 1 +fi + +if [ -z $4 ]; then + info "Using default registry server (dockerhub)." +fi + + +# Check Docker is installed +if ! type_exists 'docker'; then + error "Docker is not installed." + info "Please install docker package." + exit 1 +fi + +# Variables +IMAGE="$1" +USERNAME="$2" +PASSWORD="$3" +REGISTRY="$4" + +set -e + +# ----- Pushing image(s) ----- +# see documentation : +# - https://docs.docker.com/reference/commandline/cli/#login +# - https://docs.docker.com/reference/commandline/cli/#push +# - https://docs.docker.com/reference/commandline/cli/#logout +# --------------------------- + +# Login to the registry +h2 "Login to the Docker registry" + +DOCKER_LOGIN="docker login --username $USERNAME --password $PASSWORD $4" +info "docker login --username $USERNAME --password *******" +DOCKER_LOGIN_OUTPUT=$($DOCKER_LOGIN) + +if [ $? -ne 0 ]; then + warn "$DOCKER_LOGIN_OUTPUT" + error "Login to Docker registry $REGISTRY failed" + exit 1 +else + success "Login to Docker registry $REGISTRY succeeded"; +fi + +# Push the docker image +h2 "Pushing image to Docker registry" + +DOCKER_PUSH="docker push $IMAGE" +info "$DOCKER_PUSH" +DOCKER_PUSH_OUTPUT=$($DOCKER_PUSH) + +if [ $? -ne 0 ];then + warn $DOCKER_PUSH_OUTPUT + error "Pushing image $IMAGE failed"; +else + success "Pushing image $IMAGE succeeded"; +fi + +# Logout from the registry +h2 "Logout from the docker registry" +DOCKER_LOGOUT="docker logout $REGISTRY" +DOCKER_LOGOUT_OUTPUT=$($DOCKER_LOGOUT) + +if [ $? -ne 0 ]; then + warn "$DOCKER_LOGOUT_OUTPUT" + error "Logout from Docker registry $REGISTRY failed" + exit 1 +else + success "Logout from Docker registry $REGISTRY succeeded" +fi diff --git a/make/ubuntu/Makefile b/make/ubuntu/Makefile new file mode 100644 index 000000000..7a8e7a655 --- /dev/null +++ b/make/ubuntu/Makefile @@ -0,0 +1,74 @@ +# Makefile for a harbor project +# +# Targets: +# +# build: build harbor ubuntu images +# clean: clean ui and jobservice harbor images + +# common +SHELL := /bin/bash +BUILDPATH=$(CURDIR) +DEPLOYPATH=$(BUILDPATH)/make +DEPLOYDEVPATH=$(DEPLOYPATH)/dev +SRCPATH=./src +TOOLSPATH=$(BUILDPATH)/tools +CHECKENVCMD=checkenv.sh + +# docker parameters +DOCKERCMD=$(shell which docker) +DOCKERBUILD=$(DOCKERCMD) build +DOCKERRMIMAGE=$(DOCKERCMD) rmi +DOCKERIMASES=$(DOCKERCMD) images + +# binary +UISOURCECODE=$(SRCPATH)/ui +UIBINARYPATH=$(DEPLOYDEVPATH)/ui +UIBINARYNAME=harbor_ui +JOBSERVICESOURCECODE=$(SRCPATH)/jobservice +JOBSERVICEBINARYPATH=$(DEPLOYDEVPATH)/jobservice +JOBSERVICEBINARYNAME=harbor_jobservice + +# ubuntu dockerfile +DOCKERFILEPATH=$(DEPLOYPATH)/ubuntu +DOCKERFILEPATH_UI=$(DOCKERFILEPATH)/ui +DOCKERFILENAME_UI=Dockerfile +DOCKERIMAGENAME_UI=vmware/harbor-ui +DOCKERFILEPATH_JOBSERVICE=$(DOCKERFILEPATH)/jobservice +DOCKERFILENAME_JOBSERVICE=Dockerfile +DOCKERIMAGENAME_JOBSERVICE=vmware/harbor-jobservice +DOCKERFILEPATH_LOG=$(DOCKERFILEPATH)/log +DOCKERFILENAME_LOG=Dockerfile +DOCKERIMAGENAME_LOG=vmware/harbor-log + +# version prepare +VERSIONFILEPATH=$(SRCPATH)/views/sections +VERSIONFILENAME=header-content.htm +GITCMD=$(shell which git) +GITTAG=$(GITCMD) describe --tags +VERSIONTAG=$(shell $(GITTAG)) + +check_environment: + @$(TOOLSPATH)/$(CHECKENVCMD) + +build: + @echo "building ui container for ubuntu..." + $(DOCKERBUILD) -f $(DOCKERFILEPATH_UI)/$(DOCKERFILENAME_UI) -t $(DOCKERIMAGENAME_UI):$(VERSIONTAG) . + @echo "Done." + + @echo "building jobservice container for ubuntu..." + $(DOCKERBUILD) -f $(DOCKERFILEPATH_JOBSERVICE)/$(DOCKERFILENAME_JOBSERVICE) -t $(DOCKERIMAGENAME_JOBSERVICE):$(VERSIONTAG) . + @echo "Done." + + @echo "building log container for ubuntu..." + $(DOCKERBUILD) -f $(DOCKERFILEPATH_LOG)/$(DOCKERFILENAME_LOG) -t $(DOCKERIMAGENAME_LOG):$(VERSIONTAG) . + @echo "Done." + +cleanimage: + @echo "cleaning image for ubuntu..." + - $(DOCKERRMIMAGE) -f $(DOCKERIMAGENAME_UI):$(VERSIONTAG) + - $(DOCKERRMIMAGE) -f $(DOCKERIMAGENAME_JOBSERVICE):$(VERSIONTAG) + - $(DOCKERRMIMAGE) -f $(DOCKERIMAGENAME_LOG):$(VERSIONTAG) + +.PHONY: clean +clean: cleanimage + diff --git a/make/ubuntu/jobservice/Dockerfile b/make/ubuntu/jobservice/Dockerfile new file mode 100644 index 000000000..13a7f1491 --- /dev/null +++ b/make/ubuntu/jobservice/Dockerfile @@ -0,0 +1,14 @@ +FROM golang:1.6.2 + +MAINTAINER jiangd@vmware.com + +RUN apt-get update && apt-get install -y libldap2-dev \ + && rm -r /var/lib/apt/lists/* + +RUN mkdir /harbor/ +COPY ./make/dev/jobservice/harbor_jobservice /harbor/ + +RUN chmod u+x /harbor/harbor_jobservice + +WORKDIR /harbor/ +ENTRYPOINT ["/harbor/harbor_jobservice"] diff --git a/Deploy/log/Dockerfile b/make/ubuntu/log/Dockerfile similarity index 68% rename from Deploy/log/Dockerfile rename to make/ubuntu/log/Dockerfile index 3f02ad542..f91da3469 100644 --- a/Deploy/log/Dockerfile +++ b/make/ubuntu/log/Dockerfile @@ -4,13 +4,13 @@ FROM library/ubuntu:14.04 RUN mv /etc/cron.daily/logrotate /etc/cron.hourly/ \ && rm /etc/rsyslog.d/* \ && rm /etc/rsyslog.conf -ADD rsyslog.conf /etc/rsyslog.conf +ADD make/common/log/rsyslog.conf /etc/rsyslog.conf # logrotate configuration file for docker -ADD logrotate_docker.conf /etc/logrotate.d/ +ADD make/common/log/logrotate_docker.conf /etc/logrotate.d/ # rsyslog configuration file for docker -ADD rsyslog_docker.conf /etc/rsyslog.d/ +ADD make/common/log/rsyslog_docker.conf /etc/rsyslog.d/ VOLUME /var/log/docker/ diff --git a/make/ubuntu/ui/Dockerfile b/make/ubuntu/ui/Dockerfile new file mode 100644 index 000000000..ac41c6bb4 --- /dev/null +++ b/make/ubuntu/ui/Dockerfile @@ -0,0 +1,29 @@ +FROM golang:1.6.2 + +MAINTAINER jiangd@vmware.com + +RUN apt-get update && apt-get install -y libldap2-dev \ + && rm -r /var/lib/apt/lists/* + +ENV MYSQL_USR root \ + MYSQL_PWD root \ + REGISTRY_URL localhost:5000 + +RUN mkdir /harbor/ +COPY ./make/dev/ui/harbor_ui /harbor/ + +COPY ./src/ui/views /harbor/views +COPY ./src/ui/static /harbor/static +COPY ./src/favicon.ico /harbor/favicon.ico +COPY ./make/jsminify.sh /tmp/jsminify.sh + +RUN chmod u+x /harbor/harbor_ui \ + && sed -i 's/TLS_CACERT/#TLS_CAERT/g' /etc/ldap/ldap.conf \ + && sed -i '$a\TLS_REQCERT allow' /etc/ldap/ldap.conf \ + && /tmp/jsminify.sh /harbor/views/sections/script-include.htm /harbor/static/resources/js/harbor.app.min.js /harbor/ + +WORKDIR /harbor/ +ENTRYPOINT ["/harbor/harbor_ui"] + +EXPOSE 80 + diff --git a/api/base.go b/src/common/api/base.go similarity index 91% rename from api/base.go rename to src/common/api/base.go index 52e1711d0..fd1802979 100644 --- a/api/base.go +++ b/src/common/api/base.go @@ -23,10 +23,10 @@ import ( "strconv" "github.com/astaxie/beego/validation" - "github.com/vmware/harbor/auth" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/ui/auth" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils/log" "github.com/astaxie/beego" ) @@ -156,13 +156,13 @@ func (b *BaseAPI) GetIDFromURL() int64 { return id } -// set "Link" and "X-Total-Count" header for pagination request -func (b *BaseAPI) setPaginationHeader(total, page, pageSize int64) { +// SetPaginationHeader set"Link" and "X-Total-Count" header for pagination request +func (b *BaseAPI) SetPaginationHeader(total, page, pageSize int64) { b.Ctx.ResponseWriter.Header().Set("X-Total-Count", strconv.FormatInt(total, 10)) link := "" - // set previous link + // SetPaginationHeader setprevious link if page > 1 && (page-1)*pageSize <= total { u := *(b.Ctx.Request.URL) q := u.Query() @@ -174,7 +174,7 @@ func (b *BaseAPI) setPaginationHeader(total, page, pageSize int64) { link += fmt.Sprintf("<%s>; rel=\"prev\"", u.String()) } - // set next link + // SetPaginationHeader setnext link if pageSize*page < total { u := *(b.Ctx.Request.URL) q := u.Query() @@ -191,7 +191,8 @@ func (b *BaseAPI) setPaginationHeader(total, page, pageSize int64) { } } -func (b *BaseAPI) getPaginationParams() (page, pageSize int64) { +// GetPaginationParams ... +func (b *BaseAPI) GetPaginationParams() (page, pageSize int64) { page, err := b.GetInt64("page", 1) if err != nil || page <= 0 { b.CustomAbort(http.StatusBadRequest, "invalid page") @@ -210,7 +211,8 @@ func (b *BaseAPI) getPaginationParams() (page, pageSize int64) { return page, pageSize } -func getIsInsecure() bool { +// GetIsInsecure ... +func GetIsInsecure() bool { insecure := false verifyRemoteCert := os.Getenv("VERIFY_REMOTE_CERT") diff --git a/dao/accesslog.go b/src/common/dao/accesslog.go similarity index 98% rename from dao/accesslog.go rename to src/common/dao/accesslog.go index c2e092549..dab1055ba 100644 --- a/dao/accesslog.go +++ b/src/common/dao/accesslog.go @@ -19,8 +19,8 @@ import ( "strings" "time" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils/log" ) // AddAccessLog persists the access logs diff --git a/dao/base.go b/src/common/dao/base.go similarity index 98% rename from dao/base.go rename to src/common/dao/base.go index c029127d8..55e452f7a 100644 --- a/dao/base.go +++ b/src/common/dao/base.go @@ -22,7 +22,7 @@ import ( "sync" "github.com/astaxie/beego/orm" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/utils/log" ) // NonExistUserID : if a user does not exist, the ID of the user will be 0. diff --git a/dao/dao_test.go b/src/common/dao/dao_test.go similarity index 99% rename from dao/dao_test.go rename to src/common/dao/dao_test.go index ea2cfc03e..ebb03b990 100644 --- a/dao/dao_test.go +++ b/src/common/dao/dao_test.go @@ -21,9 +21,9 @@ import ( "time" "github.com/astaxie/beego/orm" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils" + "github.com/vmware/harbor/src/common/utils/log" ) func execUpdate(o orm.Ormer, sql string, params ...interface{}) error { diff --git a/dao/mysql.go b/src/common/dao/mysql.go similarity index 97% rename from dao/mysql.go rename to src/common/dao/mysql.go index 401b8b9a0..a050b054e 100644 --- a/dao/mysql.go +++ b/src/common/dao/mysql.go @@ -24,7 +24,7 @@ import ( "github.com/astaxie/beego/orm" _ "github.com/go-sql-driver/mysql" //register mysql driver - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/utils/log" ) type mysql struct { diff --git a/dao/project.go b/src/common/dao/project.go similarity index 98% rename from dao/project.go rename to src/common/dao/project.go index 8c8b03f7b..17cf3d087 100644 --- a/dao/project.go +++ b/src/common/dao/project.go @@ -16,12 +16,12 @@ package dao import ( - "github.com/vmware/harbor/models" + "github.com/vmware/harbor/src/common/models" "fmt" "time" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/utils/log" ) //TODO:transaction, return err diff --git a/dao/project_test.go b/src/common/dao/project_test.go similarity index 97% rename from dao/project_test.go rename to src/common/dao/project_test.go index 5b4167db8..4e0a242e7 100644 --- a/dao/project_test.go +++ b/src/common/dao/project_test.go @@ -19,7 +19,7 @@ import ( "fmt" "testing" - "github.com/vmware/harbor/models" + "github.com/vmware/harbor/src/common/models" ) func TestDeleteProject(t *testing.T) { diff --git a/dao/projectmember.go b/src/common/dao/projectmember.go similarity index 98% rename from dao/projectmember.go rename to src/common/dao/projectmember.go index 4c165aa82..931748488 100644 --- a/dao/projectmember.go +++ b/src/common/dao/projectmember.go @@ -16,7 +16,7 @@ package dao import ( - "github.com/vmware/harbor/models" + "github.com/vmware/harbor/src/common/models" ) // AddProjectMember inserts a record to table project_member diff --git a/dao/register.go b/src/common/dao/register.go similarity index 95% rename from dao/register.go rename to src/common/dao/register.go index 9b9692c86..770eb6de8 100644 --- a/dao/register.go +++ b/src/common/dao/register.go @@ -19,8 +19,8 @@ import ( "errors" "time" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils" ) // Register is used for user to register, the password is encrypted before the record is inserted into database. diff --git a/dao/replication_job.go b/src/common/dao/replication_job.go similarity index 99% rename from dao/replication_job.go rename to src/common/dao/replication_job.go index 09a79ac94..ac0558fbd 100644 --- a/dao/replication_job.go +++ b/src/common/dao/replication_job.go @@ -22,7 +22,7 @@ import ( "strings" "github.com/astaxie/beego/orm" - "github.com/vmware/harbor/models" + "github.com/vmware/harbor/src/common/models" ) // AddRepTarget ... diff --git a/dao/repository.go b/src/common/dao/repository.go similarity index 99% rename from dao/repository.go rename to src/common/dao/repository.go index 4bcec23a8..62efd774a 100644 --- a/dao/repository.go +++ b/src/common/dao/repository.go @@ -20,7 +20,7 @@ import ( "time" "github.com/astaxie/beego/orm" - "github.com/vmware/harbor/models" + "github.com/vmware/harbor/src/common/models" ) // AddRepository adds a repo to the database. diff --git a/dao/repository_test.go b/src/common/dao/repository_test.go similarity index 98% rename from dao/repository_test.go rename to src/common/dao/repository_test.go index 9083d3367..1cc251f60 100644 --- a/dao/repository_test.go +++ b/src/common/dao/repository_test.go @@ -18,7 +18,7 @@ package dao import ( "testing" - "github.com/vmware/harbor/models" + "github.com/vmware/harbor/src/common/models" ) var ( diff --git a/dao/role.go b/src/common/dao/role.go similarity index 97% rename from dao/role.go rename to src/common/dao/role.go index 317057777..4a95b9566 100644 --- a/dao/role.go +++ b/src/common/dao/role.go @@ -19,7 +19,7 @@ import ( "fmt" "github.com/astaxie/beego/orm" - "github.com/vmware/harbor/models" + "github.com/vmware/harbor/src/common/models" ) // GetUserProjectRoles returns roles that the user has according to the project. diff --git a/dao/sqlite.go b/src/common/dao/sqlite.go similarity index 100% rename from dao/sqlite.go rename to src/common/dao/sqlite.go diff --git a/dao/user.go b/src/common/dao/user.go similarity index 97% rename from dao/user.go rename to src/common/dao/user.go index 3db5c3145..49011ada0 100644 --- a/dao/user.go +++ b/src/common/dao/user.go @@ -20,10 +20,10 @@ import ( "errors" "fmt" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/utils/log" ) // GetUser ... diff --git a/dao/user_test.go b/src/common/dao/user_test.go similarity index 97% rename from dao/user_test.go rename to src/common/dao/user_test.go index 6a8bd4874..7d421d848 100644 --- a/dao/user_test.go +++ b/src/common/dao/user_test.go @@ -19,7 +19,7 @@ import ( "fmt" "testing" - "github.com/vmware/harbor/models" + "github.com/vmware/harbor/src/common/models" ) func TestDeleteUser(t *testing.T) { diff --git a/models/accesslog.go b/src/common/models/accesslog.go similarity index 100% rename from models/accesslog.go rename to src/common/models/accesslog.go diff --git a/models/authmodel.go b/src/common/models/authmodel.go similarity index 100% rename from models/authmodel.go rename to src/common/models/authmodel.go diff --git a/models/base.go b/src/common/models/base.go similarity index 100% rename from models/base.go rename to src/common/models/base.go diff --git a/models/models_test.go b/src/common/models/models_test.go similarity index 100% rename from models/models_test.go rename to src/common/models/models_test.go diff --git a/models/notification.go b/src/common/models/notification.go similarity index 100% rename from models/notification.go rename to src/common/models/notification.go diff --git a/models/project.go b/src/common/models/project.go similarity index 100% rename from models/project.go rename to src/common/models/project.go diff --git a/models/replication_job.go b/src/common/models/replication_job.go similarity index 99% rename from models/replication_job.go rename to src/common/models/replication_job.go index 6a76dcd03..2908e4569 100644 --- a/models/replication_job.go +++ b/src/common/models/replication_job.go @@ -19,7 +19,7 @@ import ( "time" "github.com/astaxie/beego/validation" - "github.com/vmware/harbor/utils" + "github.com/vmware/harbor/src/common/utils" ) const ( diff --git a/models/repo.go b/src/common/models/repo.go similarity index 100% rename from models/repo.go rename to src/common/models/repo.go diff --git a/models/role.go b/src/common/models/role.go similarity index 100% rename from models/role.go rename to src/common/models/role.go diff --git a/models/toprepo.go b/src/common/models/toprepo.go similarity index 100% rename from models/toprepo.go rename to src/common/models/toprepo.go diff --git a/models/user.go b/src/common/models/user.go similarity index 100% rename from models/user.go rename to src/common/models/user.go diff --git a/utils/encrypt.go b/src/common/utils/encrypt.go similarity index 100% rename from utils/encrypt.go rename to src/common/utils/encrypt.go diff --git a/utils/link.go b/src/common/utils/link.go similarity index 100% rename from utils/link.go rename to src/common/utils/link.go diff --git a/utils/log/formatter.go b/src/common/utils/log/formatter.go similarity index 100% rename from utils/log/formatter.go rename to src/common/utils/log/formatter.go diff --git a/utils/log/level.go b/src/common/utils/log/level.go similarity index 100% rename from utils/log/level.go rename to src/common/utils/log/level.go diff --git a/utils/log/level_test.go b/src/common/utils/log/level_test.go similarity index 100% rename from utils/log/level_test.go rename to src/common/utils/log/level_test.go diff --git a/utils/log/logger.go b/src/common/utils/log/logger.go similarity index 100% rename from utils/log/logger.go rename to src/common/utils/log/logger.go diff --git a/utils/log/logger_test.go b/src/common/utils/log/logger_test.go similarity index 100% rename from utils/log/logger_test.go rename to src/common/utils/log/logger_test.go diff --git a/utils/log/record.go b/src/common/utils/log/record.go similarity index 100% rename from utils/log/record.go rename to src/common/utils/log/record.go diff --git a/utils/log/textformatter.go b/src/common/utils/log/textformatter.go similarity index 100% rename from utils/log/textformatter.go rename to src/common/utils/log/textformatter.go diff --git a/utils/mail.go b/src/common/utils/mail.go similarity index 100% rename from utils/mail.go rename to src/common/utils/mail.go diff --git a/utils/registry/auth/authorizer.go b/src/common/utils/registry/auth/authorizer.go similarity index 95% rename from utils/registry/auth/authorizer.go rename to src/common/utils/registry/auth/authorizer.go index 558a9866a..325beb47f 100644 --- a/utils/registry/auth/authorizer.go +++ b/src/common/utils/registry/auth/authorizer.go @@ -21,8 +21,8 @@ import ( "time" au "github.com/docker/distribution/registry/client/auth" - "github.com/vmware/harbor/utils" - "github.com/vmware/harbor/utils/registry" + "github.com/vmware/harbor/src/common/utils" + "github.com/vmware/harbor/src/common/utils/registry" ) // Authorizer authorizes requests according to the schema diff --git a/utils/registry/auth/authorizer_test.go b/src/common/utils/registry/auth/authorizer_test.go similarity index 97% rename from utils/registry/auth/authorizer_test.go rename to src/common/utils/registry/auth/authorizer_test.go index ffc2944e1..d3b27cebb 100644 --- a/utils/registry/auth/authorizer_test.go +++ b/src/common/utils/registry/auth/authorizer_test.go @@ -21,7 +21,7 @@ import ( "testing" "github.com/docker/distribution/registry/client/auth" - "github.com/vmware/harbor/utils/test" + "github.com/vmware/harbor/src/common/utils/test" ) func TestNewAuthorizerStore(t *testing.T) { diff --git a/utils/registry/auth/challenge.go b/src/common/utils/registry/auth/challenge.go similarity index 100% rename from utils/registry/auth/challenge.go rename to src/common/utils/registry/auth/challenge.go diff --git a/utils/registry/auth/credential.go b/src/common/utils/registry/auth/credential.go similarity index 100% rename from utils/registry/auth/credential.go rename to src/common/utils/registry/auth/credential.go diff --git a/utils/registry/auth/credential_test.go b/src/common/utils/registry/auth/credential_test.go similarity index 100% rename from utils/registry/auth/credential_test.go rename to src/common/utils/registry/auth/credential_test.go diff --git a/utils/registry/auth/tokenauthorizer.go b/src/common/utils/registry/auth/tokenauthorizer.go similarity index 96% rename from utils/registry/auth/tokenauthorizer.go rename to src/common/utils/registry/auth/tokenauthorizer.go index ae2b5f6a1..c7147ea57 100644 --- a/utils/registry/auth/tokenauthorizer.go +++ b/src/common/utils/registry/auth/tokenauthorizer.go @@ -26,10 +26,10 @@ import ( "sync" "time" - token_util "github.com/vmware/harbor/service/token" - "github.com/vmware/harbor/utils/log" - "github.com/vmware/harbor/utils/registry" - registry_error "github.com/vmware/harbor/utils/registry/error" + token_util "github.com/vmware/harbor/src/ui/service/token" + "github.com/vmware/harbor/src/common/utils/log" + "github.com/vmware/harbor/src/common/utils/registry" + registry_error "github.com/vmware/harbor/src/common/utils/registry/error" ) const ( diff --git a/utils/registry/auth/tokenauthorizer_test.go b/src/common/utils/registry/auth/tokenauthorizer_test.go similarity index 97% rename from utils/registry/auth/tokenauthorizer_test.go rename to src/common/utils/registry/auth/tokenauthorizer_test.go index da601ba48..2d843d887 100644 --- a/utils/registry/auth/tokenauthorizer_test.go +++ b/src/common/utils/registry/auth/tokenauthorizer_test.go @@ -19,7 +19,7 @@ import ( "net/http" "testing" - "github.com/vmware/harbor/utils/test" + "github.com/vmware/harbor/src/common/utils/test" ) func TestAuthorizeOfStandardTokenAuthorizer(t *testing.T) { diff --git a/utils/registry/error/error.go b/src/common/utils/registry/error/error.go similarity index 100% rename from utils/registry/error/error.go rename to src/common/utils/registry/error/error.go diff --git a/utils/registry/error/error_test.go b/src/common/utils/registry/error/error_test.go similarity index 100% rename from utils/registry/error/error_test.go rename to src/common/utils/registry/error/error_test.go diff --git a/utils/registry/manifest.go b/src/common/utils/registry/manifest.go similarity index 100% rename from utils/registry/manifest.go rename to src/common/utils/registry/manifest.go diff --git a/utils/registry/manifest_test.go b/src/common/utils/registry/manifest_test.go similarity index 100% rename from utils/registry/manifest_test.go rename to src/common/utils/registry/manifest_test.go diff --git a/utils/registry/modifier.go b/src/common/utils/registry/modifier.go similarity index 100% rename from utils/registry/modifier.go rename to src/common/utils/registry/modifier.go diff --git a/utils/registry/registry.go b/src/common/utils/registry/registry.go similarity index 96% rename from utils/registry/registry.go rename to src/common/utils/registry/registry.go index b45317bf4..5d080b3ba 100644 --- a/utils/registry/registry.go +++ b/src/common/utils/registry/registry.go @@ -22,8 +22,8 @@ import ( "strings" "time" - "github.com/vmware/harbor/utils" - registry_error "github.com/vmware/harbor/utils/registry/error" + "github.com/vmware/harbor/src/common/utils" + registry_error "github.com/vmware/harbor/src/common/utils/registry/error" ) // Registry holds information of a registry entity diff --git a/utils/registry/registry_test.go b/src/common/utils/registry/registry_test.go similarity index 98% rename from utils/registry/registry_test.go rename to src/common/utils/registry/registry_test.go index ce9853db2..5dc72b7ca 100644 --- a/utils/registry/registry_test.go +++ b/src/common/utils/registry/registry_test.go @@ -23,7 +23,7 @@ import ( "strconv" "testing" - "github.com/vmware/harbor/utils/test" + "github.com/vmware/harbor/src/common/utils/test" ) func TestNewRegistryWithModifiers(t *testing.T) { diff --git a/utils/registry/repository.go b/src/common/utils/registry/repository.go similarity index 98% rename from utils/registry/repository.go rename to src/common/utils/registry/repository.go index a09d33fd0..890605caa 100644 --- a/utils/registry/repository.go +++ b/src/common/utils/registry/repository.go @@ -30,8 +30,8 @@ import ( "github.com/docker/distribution/manifest/schema1" "github.com/docker/distribution/manifest/schema2" - "github.com/vmware/harbor/utils" - registry_error "github.com/vmware/harbor/utils/registry/error" + "github.com/vmware/harbor/src/common/utils" + registry_error "github.com/vmware/harbor/src/common/utils/registry/error" ) // Repository holds information of a repository entity diff --git a/utils/registry/repository_test.go b/src/common/utils/registry/repository_test.go similarity index 98% rename from utils/registry/repository_test.go rename to src/common/utils/registry/repository_test.go index 07c837b53..e37e7dc5c 100644 --- a/utils/registry/repository_test.go +++ b/src/common/utils/registry/repository_test.go @@ -26,8 +26,8 @@ import ( "testing" "github.com/docker/distribution/manifest/schema2" - registry_error "github.com/vmware/harbor/utils/registry/error" - "github.com/vmware/harbor/utils/test" + registry_error "github.com/vmware/harbor/src/common/utils/registry/error" + "github.com/vmware/harbor/src/common/utils/test" ) var ( diff --git a/utils/registry/transport.go b/src/common/utils/registry/transport.go similarity index 96% rename from utils/registry/transport.go rename to src/common/utils/registry/transport.go index c1798450d..703d9db1f 100644 --- a/utils/registry/transport.go +++ b/src/common/utils/registry/transport.go @@ -18,7 +18,7 @@ package registry import ( "net/http" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/utils/log" ) // Transport holds information about base transport and modifiers diff --git a/utils/registry/transport_test.go b/src/common/utils/registry/transport_test.go similarity index 96% rename from utils/registry/transport_test.go rename to src/common/utils/registry/transport_test.go index 997ca3c84..aebb41b1c 100644 --- a/utils/registry/transport_test.go +++ b/src/common/utils/registry/transport_test.go @@ -20,7 +20,7 @@ import ( "net/http" "testing" - "github.com/vmware/harbor/utils/test" + "github.com/vmware/harbor/src/common/utils/test" ) type simpleModifier struct { diff --git a/utils/test/test.go b/src/common/utils/test/test.go similarity index 100% rename from utils/test/test.go rename to src/common/utils/test/test.go diff --git a/utils/utils.go b/src/common/utils/utils.go similarity index 100% rename from utils/utils.go rename to src/common/utils/utils.go diff --git a/utils/utils_test.go b/src/common/utils/utils_test.go similarity index 100% rename from utils/utils_test.go rename to src/common/utils/utils_test.go diff --git a/favicon.ico b/src/favicon.ico similarity index 100% rename from favicon.ico rename to src/favicon.ico diff --git a/api/jobs/job_test.go b/src/jobservice/api/job_test.go similarity index 100% rename from api/jobs/job_test.go rename to src/jobservice/api/job_test.go diff --git a/api/jobs/replication.go b/src/jobservice/api/replication.go similarity index 94% rename from api/jobs/replication.go rename to src/jobservice/api/replication.go index 09d2469f6..51807ed39 100644 --- a/api/jobs/replication.go +++ b/src/jobservice/api/replication.go @@ -23,14 +23,14 @@ import ( "net/http/httputil" "strconv" - "github.com/vmware/harbor/api" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/job" - "github.com/vmware/harbor/job/config" - "github.com/vmware/harbor/job/utils" - "github.com/vmware/harbor/models" - u "github.com/vmware/harbor/utils" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/api" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/jobservice/job" + "github.com/vmware/harbor/src/jobservice/config" + "github.com/vmware/harbor/src/jobservice/utils" + "github.com/vmware/harbor/src/common/models" + u "github.com/vmware/harbor/src/common/utils" + "github.com/vmware/harbor/src/common/utils/log" ) // ReplicationJob handles /api/replicationJobs /api/replicationJobs/:id/log diff --git a/job/config/config.go b/src/jobservice/config/config.go similarity index 98% rename from job/config/config.go rename to src/jobservice/config/config.go index 1403c30b4..2e1b2c31d 100644 --- a/job/config/config.go +++ b/src/jobservice/config/config.go @@ -21,7 +21,7 @@ import ( "strconv" "github.com/astaxie/beego" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/utils/log" ) const defaultMaxWorkers int = 10 diff --git a/job/config/config_test.go b/src/jobservice/config/config_test.go similarity index 100% rename from job/config/config_test.go rename to src/jobservice/config/config_test.go diff --git a/job/job_test.go b/src/jobservice/job/job_test.go similarity index 100% rename from job/job_test.go rename to src/jobservice/job/job_test.go diff --git a/job/scheduler.go b/src/jobservice/job/scheduler.go similarity index 95% rename from job/scheduler.go rename to src/jobservice/job/scheduler.go index a721f235e..5dbfa5d3d 100644 --- a/job/scheduler.go +++ b/src/jobservice/job/scheduler.go @@ -16,7 +16,7 @@ package job import ( - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/utils/log" "time" ) diff --git a/job/statehandlers.go b/src/jobservice/job/statehandlers.go similarity index 95% rename from job/statehandlers.go rename to src/jobservice/job/statehandlers.go index d4a855e77..27e4bbcf0 100644 --- a/job/statehandlers.go +++ b/src/jobservice/job/statehandlers.go @@ -18,9 +18,9 @@ package job import ( "time" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils/log" ) // StateHandler handles transition, it associates with each state, will be called when diff --git a/job/statemachine.go b/src/jobservice/job/statemachine.go similarity index 96% rename from job/statemachine.go rename to src/jobservice/job/statemachine.go index c4f245c7c..f0a02480a 100644 --- a/job/statemachine.go +++ b/src/jobservice/job/statemachine.go @@ -19,13 +19,13 @@ import ( "fmt" "sync" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/job/config" - "github.com/vmware/harbor/job/replication" - "github.com/vmware/harbor/job/utils" - "github.com/vmware/harbor/models" - uti "github.com/vmware/harbor/utils" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/jobservice/config" + "github.com/vmware/harbor/src/jobservice/replication" + "github.com/vmware/harbor/src/jobservice/utils" + "github.com/vmware/harbor/src/common/models" + uti "github.com/vmware/harbor/src/common/utils" + "github.com/vmware/harbor/src/common/utils/log" ) // RepJobParm wraps the parm of a job diff --git a/job/workerpool.go b/src/jobservice/job/workerpool.go similarity index 95% rename from job/workerpool.go rename to src/jobservice/job/workerpool.go index 41211d9de..a1034441a 100644 --- a/job/workerpool.go +++ b/src/jobservice/job/workerpool.go @@ -16,10 +16,10 @@ package job import ( - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/job/config" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/jobservice/config" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils/log" ) type workerPool struct { diff --git a/jobservice/jobservice_test.go b/src/jobservice/jobservice_test.go similarity index 100% rename from jobservice/jobservice_test.go rename to src/jobservice/jobservice_test.go diff --git a/jobservice/main.go b/src/jobservice/main.go similarity index 87% rename from jobservice/main.go rename to src/jobservice/main.go index a423e8612..5467d96c6 100644 --- a/jobservice/main.go +++ b/src/jobservice/main.go @@ -17,10 +17,10 @@ package main import ( "github.com/astaxie/beego" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/job" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/jobservice/job" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils/log" ) func main() { diff --git a/job/replication/delete.go b/src/jobservice/replication/delete.go similarity index 96% rename from job/replication/delete.go rename to src/jobservice/replication/delete.go index 2f17121cf..980ad4ccc 100644 --- a/job/replication/delete.go +++ b/src/jobservice/replication/delete.go @@ -18,10 +18,10 @@ package replication import ( "errors" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils/log" - //"github.com/vmware/harbor/utils/registry" - //"github.com/vmware/harbor/utils/registry/auth" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils/log" + //"github.com/vmware/harbor/src/common/utils/registry" + //"github.com/vmware/harbor/src/common/utils/registry/auth" "crypto/tls" "fmt" "io/ioutil" diff --git a/job/replication/error.go b/src/jobservice/replication/error.go similarity index 100% rename from job/replication/error.go rename to src/jobservice/replication/error.go diff --git a/job/replication/replication_test.go b/src/jobservice/replication/replication_test.go similarity index 100% rename from job/replication/replication_test.go rename to src/jobservice/replication/replication_test.go diff --git a/job/replication/transfer.go b/src/jobservice/replication/transfer.go similarity index 98% rename from job/replication/transfer.go rename to src/jobservice/replication/transfer.go index e6a4ed0ce..db70003cc 100644 --- a/job/replication/transfer.go +++ b/src/jobservice/replication/transfer.go @@ -28,11 +28,11 @@ import ( "github.com/docker/distribution" "github.com/docker/distribution/manifest/schema1" "github.com/docker/distribution/manifest/schema2" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils/log" - "github.com/vmware/harbor/utils/registry" - "github.com/vmware/harbor/utils/registry/auth" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils/log" + "github.com/vmware/harbor/src/common/utils/registry" + "github.com/vmware/harbor/src/common/utils/registry/auth" ) const ( diff --git a/jobservice/router.go b/src/jobservice/router.go similarity index 94% rename from jobservice/router.go rename to src/jobservice/router.go index f1705d1af..3325f923c 100644 --- a/jobservice/router.go +++ b/src/jobservice/router.go @@ -16,7 +16,7 @@ package main import ( - api "github.com/vmware/harbor/api/jobs" + api "github.com/vmware/harbor/src/jobservice/api" "github.com/astaxie/beego" ) diff --git a/job/utils/logger.go b/src/jobservice/utils/logger.go similarity index 94% rename from job/utils/logger.go rename to src/jobservice/utils/logger.go index 7d347310f..6a358285c 100644 --- a/job/utils/logger.go +++ b/src/jobservice/utils/logger.go @@ -18,8 +18,8 @@ package utils import ( "fmt" - "github.com/vmware/harbor/job/config" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/jobservice/config" + "github.com/vmware/harbor/src/common/utils/log" "os" "path/filepath" "strconv" diff --git a/job/utils/utils_test.go b/src/jobservice/utils/utils_test.go similarity index 100% rename from job/utils/utils_test.go rename to src/jobservice/utils/utils_test.go diff --git a/api/api_test.go b/src/ui/api/api_test.go similarity index 100% rename from api/api_test.go rename to src/ui/api/api_test.go diff --git a/api/dataprepare_test.go b/src/ui/api/dataprepare_test.go similarity index 92% rename from api/dataprepare_test.go rename to src/ui/api/dataprepare_test.go index d659ed971..feb4bbc1f 100644 --- a/api/dataprepare_test.go +++ b/src/ui/api/dataprepare_test.go @@ -16,8 +16,8 @@ package api import ( - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" "os" ) diff --git a/api/harborapi_test.go b/src/ui/api/harborapi_test.go similarity index 83% rename from api/harborapi_test.go rename to src/ui/api/harborapi_test.go index e8ec9c076..a2acecda4 100644 --- a/api/harborapi_test.go +++ b/src/ui/api/harborapi_test.go @@ -10,10 +10,10 @@ import ( "path/filepath" "runtime" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" "github.com/vmware/harbor/tests/apitests/apilib" - "github.com/vmware/harbor/utils" + "github.com/vmware/harbor/src/common/utils" // "strconv" // "strings" @@ -21,8 +21,8 @@ import ( "github.com/dghubble/sling" //for test env prepare - _ "github.com/vmware/harbor/auth/db" - _ "github.com/vmware/harbor/auth/ldap" + _ "github.com/vmware/harbor/src/ui/auth/db" + _ "github.com/vmware/harbor/src/ui/auth/ldap" ) const ( @@ -34,18 +34,18 @@ const ( var admin, unknownUsr, testUser *usrInfo -type api struct { +type testapi struct { basePath string } -func newHarborAPI() *api { - return &api{ +func newHarborAPI() *testapi { + return &testapi{ basePath: "", } } -func newHarborAPIWithBasePath(basePath string) *api { - return &api{ +func newHarborAPIWithBasePath(basePath string) *testapi { + return &testapi{ basePath: basePath, } } @@ -119,8 +119,8 @@ func request(_sling *sling.Sling, acceptHeader string, authInfo ...usrInfo) (int //The response includes the project and repository list in a proper display order. //@param q Search parameter for project and repository name. //@return []Search -//func (a api) SearchGet (q string) (apilib.Search, error) { -func (a api) SearchGet(q string) (apilib.Search, error) { +//func (a testapi) SearchGet (q string) (apilib.Search, error) { +func (a testapi) SearchGet(q string) (apilib.Search, error) { _sling := sling.New().Get(a.basePath) @@ -145,8 +145,8 @@ func (a api) SearchGet(q string) (apilib.Search, error) { //This endpoint is for user to create a new project. //@param project New created project. //@return void -//func (a api) ProjectsPost (prjUsr usrInfo, project apilib.Project) (int, error) { -func (a api) ProjectsPost(prjUsr usrInfo, project apilib.ProjectReq) (int, error) { +//func (a testapi) ProjectsPost (prjUsr usrInfo, project apilib.Project) (int, error) { +func (a testapi) ProjectsPost(prjUsr usrInfo, project apilib.ProjectReq) (int, error) { _sling := sling.New().Post(a.basePath) @@ -161,7 +161,7 @@ func (a api) ProjectsPost(prjUsr usrInfo, project apilib.ProjectReq) (int, error return httpStatusCode, err } -func (a api) StatisticGet(user usrInfo) (apilib.StatisticMap, error) { +func (a testapi) StatisticGet(user usrInfo) (apilib.StatisticMap, error) { _sling := sling.New().Get(a.basePath) // create path and map variables @@ -176,7 +176,7 @@ func (a api) StatisticGet(user usrInfo) (apilib.StatisticMap, error) { return *successPayload, err } -func (a api) LogGet(user usrInfo, startTime, endTime, lines string) (int, []apilib.AccessLog, error) { +func (a testapi) LogGet(user usrInfo, startTime, endTime, lines string) (int, []apilib.AccessLog, error) { _sling := sling.New().Get(a.basePath) // create path and map variables @@ -204,8 +204,8 @@ func (a api) LogGet(user usrInfo, startTime, endTime, lines string) (int, []apil ////@param repoName The name of repository which will be deleted. ////@param tag Tag of a repository. ////@return void -////func (a api) RepositoriesDelete(prjUsr UsrInfo, repoName string, tag string) (int, error) { -//func (a api) RepositoriesDelete(prjUsr UsrInfo, repoName string, tag string) (int, error) { +////func (a testapi) RepositoriesDelete(prjUsr UsrInfo, repoName string, tag string) (int, error) { +//func (a testapi) RepositoriesDelete(prjUsr UsrInfo, repoName string, tag string) (int, error) { // _sling := sling.New().Delete(a.basePath) // // create path and map variables @@ -241,7 +241,7 @@ func (a api) LogGet(user usrInfo, startTime, endTime, lines string) (int, []apil //} //Delete project by projectID -func (a api) ProjectsDelete(prjUsr usrInfo, projectID string) (int, error) { +func (a testapi) ProjectsDelete(prjUsr usrInfo, projectID string) (int, error) { _sling := sling.New().Delete(a.basePath) //create api path @@ -252,7 +252,7 @@ func (a api) ProjectsDelete(prjUsr usrInfo, projectID string) (int, error) { } //Check if the project name user provided already exists -func (a api) ProjectsHead(prjUsr usrInfo, projectName string) (int, error) { +func (a testapi) ProjectsHead(prjUsr usrInfo, projectName string) (int, error) { _sling := sling.New().Head(a.basePath) //create api path @@ -268,7 +268,7 @@ func (a api) ProjectsHead(prjUsr usrInfo, projectName string) (int, error) { } //Return specific project detail infomation -func (a api) ProjectsGetByPID(projectID string) (int, apilib.Project, error) { +func (a testapi) ProjectsGetByPID(projectID string) (int, apilib.Project, error) { _sling := sling.New().Get(a.basePath) //create api path @@ -285,7 +285,7 @@ func (a api) ProjectsGetByPID(projectID string) (int, apilib.Project, error) { } //Search projects by projectName and isPublic -func (a api) ProjectsGet(projectName string, isPublic int32) (int, []apilib.Project, error) { +func (a testapi) ProjectsGet(projectName string, isPublic int32) (int, []apilib.Project, error) { _sling := sling.New().Get(a.basePath) //create api path @@ -308,7 +308,7 @@ func (a api) ProjectsGet(projectName string, isPublic int32) (int, []apilib.Proj } //Update properties for a selected project. -func (a api) ToggleProjectPublicity(prjUsr usrInfo, projectID string, ispublic int32) (int, error) { +func (a testapi) ToggleProjectPublicity(prjUsr usrInfo, projectID string, ispublic int32) (int, error) { // create path and map variables path := "/api/projects/" + projectID + "/publicity/" _sling := sling.New().Put(a.basePath) @@ -327,8 +327,8 @@ func (a api) ToggleProjectPublicity(prjUsr usrInfo, projectID string, ispublic i } //Get access logs accompany with a relevant project. -func (a api) ProjectLogsFilter(prjUsr usrInfo, projectID string, accessLog apilib.AccessLogFilter) (int, []byte, error) { - //func (a api) ProjectLogsFilter(prjUsr usrInfo, projectID string, accessLog apilib.AccessLog) (int, apilib.AccessLog, error) { +func (a testapi) ProjectLogsFilter(prjUsr usrInfo, projectID string, accessLog apilib.AccessLogFilter) (int, []byte, error) { + //func (a testapi) ProjectLogsFilter(prjUsr usrInfo, projectID string, accessLog apilib.AccessLog) (int, apilib.AccessLog, error) { _sling := sling.New().Post(a.basePath) path := "/api/projects/" + projectID + "/logs/filter" @@ -353,7 +353,7 @@ func (a api) ProjectLogsFilter(prjUsr usrInfo, projectID string, accessLog apili //-------------------------Member Test---------------------------------------// //Return relevant role members of projectID -func (a api) GetProjectMembersByProID(prjUsr usrInfo, projectID string) (int, []apilib.User, error) { +func (a testapi) GetProjectMembersByProID(prjUsr usrInfo, projectID string) (int, []apilib.User, error) { _sling := sling.New().Get(a.basePath) path := "/api/projects/" + projectID + "/members/" @@ -370,7 +370,7 @@ func (a api) GetProjectMembersByProID(prjUsr usrInfo, projectID string) (int, [] } //Add project role member accompany with projectID -func (a api) AddProjectMember(prjUsr usrInfo, projectID string, roles apilib.RoleParam) (int, error) { +func (a testapi) AddProjectMember(prjUsr usrInfo, projectID string, roles apilib.RoleParam) (int, error) { _sling := sling.New().Post(a.basePath) path := "/api/projects/" + projectID + "/members/" @@ -382,7 +382,7 @@ func (a api) AddProjectMember(prjUsr usrInfo, projectID string, roles apilib.Rol } //Delete project role member accompany with projectID -func (a api) DeleteProjectMember(authInfo usrInfo, projectID string, userID string) (int, error) { +func (a testapi) DeleteProjectMember(authInfo usrInfo, projectID string, userID string) (int, error) { _sling := sling.New().Delete(a.basePath) path := "/api/projects/" + projectID + "/members/" + userID @@ -393,7 +393,7 @@ func (a api) DeleteProjectMember(authInfo usrInfo, projectID string, userID stri } //Get role memberInfo by projectId and UserId -func (a api) GetMemByPIDUID(authInfo usrInfo, projectID string, userID string) (int, error) { +func (a testapi) GetMemByPIDUID(authInfo usrInfo, projectID string, userID string) (int, error) { _sling := sling.New().Get(a.basePath) path := "/api/projects/" + projectID + "/members/" + userID @@ -405,7 +405,7 @@ func (a api) GetMemByPIDUID(authInfo usrInfo, projectID string, userID string) ( } //Put:update current project role members accompany with relevant project and user -func (a api) PutProjectMember(authInfo usrInfo, projectID string, userID string, roles apilib.RoleParam) (int, error) { +func (a testapi) PutProjectMember(authInfo usrInfo, projectID string, userID string, roles apilib.RoleParam) (int, error) { _sling := sling.New().Put(a.basePath) path := "/api/projects/" + projectID + "/members/" + userID @@ -418,7 +418,7 @@ func (a api) PutProjectMember(authInfo usrInfo, projectID string, userID string, //-------------------------Repositories Test---------------------------------------// //Return relevant repos of projectID -func (a api) GetRepos(authInfo usrInfo, projectID string) (int, error) { +func (a testapi) GetRepos(authInfo usrInfo, projectID string) (int, error) { _sling := sling.New().Get(a.basePath) path := "/api/repositories/" @@ -435,7 +435,7 @@ func (a api) GetRepos(authInfo usrInfo, projectID string) (int, error) { } //Get tags of a relevant repository -func (a api) GetReposTags(authInfo usrInfo, repoName string) (int, error) { +func (a testapi) GetReposTags(authInfo usrInfo, repoName string) (int, error) { _sling := sling.New().Get(a.basePath) path := "/api/repositories/tags" @@ -452,7 +452,7 @@ func (a api) GetReposTags(authInfo usrInfo, repoName string) (int, error) { } //Get manifests of a relevant repository -func (a api) GetReposManifests(authInfo usrInfo, repoName string, tag string) (int, error) { +func (a testapi) GetReposManifests(authInfo usrInfo, repoName string, tag string) (int, error) { _sling := sling.New().Get(a.basePath) path := "/api/repositories/manifests" @@ -470,7 +470,7 @@ func (a api) GetReposManifests(authInfo usrInfo, repoName string, tag string) (i } //Get public repositories which are accessed most -func (a api) GetReposTop(authInfo usrInfo, count string) (int, error) { +func (a testapi) GetReposTop(authInfo usrInfo, count string) (int, error) { _sling := sling.New().Get(a.basePath) path := "/api/repositories/top" @@ -488,7 +488,7 @@ func (a api) GetReposTop(authInfo usrInfo, count string) (int, error) { //-------------------------Targets Test---------------------------------------// //Create a new replication target -func (a api) AddTargets(authInfo usrInfo, repTarget apilib.RepTargetPost) (int, error) { +func (a testapi) AddTargets(authInfo usrInfo, repTarget apilib.RepTargetPost) (int, error) { _sling := sling.New().Post(a.basePath) path := "/api/targets" @@ -501,7 +501,7 @@ func (a api) AddTargets(authInfo usrInfo, repTarget apilib.RepTargetPost) (int, } //List filters targets by name -func (a api) ListTargets(authInfo usrInfo, targetName string) (int, []apilib.RepTarget, error) { +func (a testapi) ListTargets(authInfo usrInfo, targetName string) (int, []apilib.RepTarget, error) { _sling := sling.New().Get(a.basePath) path := "/api/targets?name=" + targetName @@ -519,7 +519,7 @@ func (a api) ListTargets(authInfo usrInfo, targetName string) (int, []apilib.Rep } //Ping target by targetID -func (a api) PingTargetsByID(authInfo usrInfo, targetID string) (int, error) { +func (a testapi) PingTargetsByID(authInfo usrInfo, targetID string) (int, error) { _sling := sling.New().Post(a.basePath) path := "/api/targets/ping?id=" + targetID @@ -531,7 +531,7 @@ func (a api) PingTargetsByID(authInfo usrInfo, targetID string) (int, error) { } //Get target by targetID -func (a api) GetTargetByID(authInfo usrInfo, targetID string) (int, error) { +func (a testapi) GetTargetByID(authInfo usrInfo, targetID string) (int, error) { _sling := sling.New().Get(a.basePath) path := "/api/targets/" + targetID @@ -544,7 +544,7 @@ func (a api) GetTargetByID(authInfo usrInfo, targetID string) (int, error) { } //Update target by targetID -func (a api) PutTargetByID(authInfo usrInfo, targetID string, repTarget apilib.RepTargetPost) (int, error) { +func (a testapi) PutTargetByID(authInfo usrInfo, targetID string, repTarget apilib.RepTargetPost) (int, error) { _sling := sling.New().Put(a.basePath) path := "/api/targets/" + targetID @@ -558,7 +558,7 @@ func (a api) PutTargetByID(authInfo usrInfo, targetID string, repTarget apilib.R } //List the target relevant policies by targetID -func (a api) GetTargetPoliciesByID(authInfo usrInfo, targetID string) (int, error) { +func (a testapi) GetTargetPoliciesByID(authInfo usrInfo, targetID string) (int, error) { _sling := sling.New().Get(a.basePath) path := "/api/targets/" + targetID + "/policies/" @@ -571,7 +571,7 @@ func (a api) GetTargetPoliciesByID(authInfo usrInfo, targetID string) (int, erro } //Delete target by targetID -func (a api) DeleteTargetsByID(authInfo usrInfo, targetID string) (int, error) { +func (a testapi) DeleteTargetsByID(authInfo usrInfo, targetID string) (int, error) { _sling := sling.New().Delete(a.basePath) path := "/api/targets/" + targetID @@ -585,7 +585,7 @@ func (a api) DeleteTargetsByID(authInfo usrInfo, targetID string) (int, error) { //--------------------Replication_Policy Test--------------------------------// //Create a new replication policy -func (a api) AddPolicy(authInfo usrInfo, repPolicy apilib.RepPolicyPost) (int, error) { +func (a testapi) AddPolicy(authInfo usrInfo, repPolicy apilib.RepPolicyPost) (int, error) { _sling := sling.New().Post(a.basePath) path := "/api/policies/replication/" @@ -598,7 +598,7 @@ func (a api) AddPolicy(authInfo usrInfo, repPolicy apilib.RepPolicyPost) (int, e } //List policies by policyName and projectID -func (a api) ListPolicies(authInfo usrInfo, policyName string, proID string) (int, []apilib.RepPolicy, error) { +func (a testapi) ListPolicies(authInfo usrInfo, policyName string, proID string) (int, []apilib.RepPolicy, error) { _sling := sling.New().Get(a.basePath) path := "/api/policies/replication/" @@ -622,7 +622,7 @@ func (a api) ListPolicies(authInfo usrInfo, policyName string, proID string) (in } //Get replication policy by policyID -func (a api) GetPolicyByID(authInfo usrInfo, policyID string) (int, error) { +func (a testapi) GetPolicyByID(authInfo usrInfo, policyID string) (int, error) { _sling := sling.New().Get(a.basePath) path := "/api/policies/replication/" + policyID @@ -635,7 +635,7 @@ func (a api) GetPolicyByID(authInfo usrInfo, policyID string) (int, error) { } //Update policyInfo by policyID -func (a api) PutPolicyInfoByID(authInfo usrInfo, policyID string, policyUpdate apilib.RepPolicyUpdate) (int, error) { +func (a testapi) PutPolicyInfoByID(authInfo usrInfo, policyID string, policyUpdate apilib.RepPolicyUpdate) (int, error) { _sling := sling.New().Put(a.basePath) path := "/api/policies/replication/" + policyID @@ -648,7 +648,7 @@ func (a api) PutPolicyInfoByID(authInfo usrInfo, policyID string, policyUpdate a } //Update policy enablement flag by policyID -func (a api) PutPolicyEnableByID(authInfo usrInfo, policyID string, policyEnable apilib.RepPolicyEnablementReq) (int, error) { +func (a testapi) PutPolicyEnableByID(authInfo usrInfo, policyID string, policyEnable apilib.RepPolicyEnablementReq) (int, error) { _sling := sling.New().Put(a.basePath) path := "/api/policies/replication/" + policyID + "/enablement" @@ -661,7 +661,7 @@ func (a api) PutPolicyEnableByID(authInfo usrInfo, policyID string, policyEnable } //Delete policy by policyID -func (a api) DeletePolicyByID(authInfo usrInfo, policyID string) (int, error) { +func (a testapi) DeletePolicyByID(authInfo usrInfo, policyID string) (int, error) { _sling := sling.New().Delete(a.basePath) path := "/api/policies/replication/" + policyID @@ -721,7 +721,7 @@ func (a api) DeletePolicyByID(authInfo usrInfo, policyID string) (int, error) { //} //Get registered users of Harbor. -func (a api) UsersGet(userName string, authInfo usrInfo) (int, []apilib.User, error) { +func (a testapi) UsersGet(userName string, authInfo usrInfo) (int, []apilib.User, error) { _sling := sling.New().Get(a.basePath) // create path and map variables path := "/api/users/" @@ -740,7 +740,7 @@ func (a api) UsersGet(userName string, authInfo usrInfo) (int, []apilib.User, er } //Get registered users by userid. -func (a api) UsersGetByID(userName string, authInfo usrInfo, userID int) (int, apilib.User, error) { +func (a testapi) UsersGetByID(userName string, authInfo usrInfo, userID int) (int, apilib.User, error) { _sling := sling.New().Get(a.basePath) // create path and map variables path := "/api/users/" + fmt.Sprintf("%d", userID) @@ -759,7 +759,7 @@ func (a api) UsersGetByID(userName string, authInfo usrInfo, userID int) (int, a } //Creates a new user account. -func (a api) UsersPost(user apilib.User, authInfo ...usrInfo) (int, error) { +func (a testapi) UsersPost(user apilib.User, authInfo ...usrInfo) (int, error) { _sling := sling.New().Post(a.basePath) // create path and map variables @@ -781,7 +781,7 @@ func (a api) UsersPost(user apilib.User, authInfo ...usrInfo) (int, error) { } //Update a registered user to change profile. -func (a api) UsersPut(userID int, profile apilib.UserProfile, authInfo usrInfo) (int, error) { +func (a testapi) UsersPut(userID int, profile apilib.UserProfile, authInfo usrInfo) (int, error) { _sling := sling.New().Put(a.basePath) // create path and map variables path := "/api/users/" + fmt.Sprintf("%d", userID) @@ -794,7 +794,7 @@ func (a api) UsersPut(userID int, profile apilib.UserProfile, authInfo usrInfo) } //Update a registered user to be an administrator of Harbor. -func (a api) UsersToggleAdminRole(userID int, authInfo usrInfo, hasAdminRole int32) (int, error) { +func (a testapi) UsersToggleAdminRole(userID int, authInfo usrInfo, hasAdminRole int32) (int, error) { _sling := sling.New().Put(a.basePath) // create path and map variables path := "/api/users/" + fmt.Sprintf("%d", userID) + "/sysadmin" @@ -809,7 +809,7 @@ func (a api) UsersToggleAdminRole(userID int, authInfo usrInfo, hasAdminRole int } //Update password of a registered user. -func (a api) UsersUpdatePassword(userID int, password apilib.Password, authInfo usrInfo) (int, error) { +func (a testapi) UsersUpdatePassword(userID int, password apilib.Password, authInfo usrInfo) (int, error) { _sling := sling.New().Put(a.basePath) // create path and map variables path := "/api/users/" + fmt.Sprintf("%d", userID) + "/password" @@ -821,7 +821,7 @@ func (a api) UsersUpdatePassword(userID int, password apilib.Password, authInfo } //Mark a registered user as be removed. -func (a api) UsersDelete(userID int, authInfo usrInfo) (int, error) { +func (a testapi) UsersDelete(userID int, authInfo usrInfo) (int, error) { _sling := sling.New().Delete(a.basePath) // create path and map variables path := "/api/users/" + fmt.Sprintf("%d", userID) diff --git a/api/internal.go b/src/ui/api/internal.go similarity index 90% rename from api/internal.go rename to src/ui/api/internal.go index 87d46888f..45cd7eed1 100644 --- a/api/internal.go +++ b/src/ui/api/internal.go @@ -18,13 +18,14 @@ package api import ( "net/http" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/utils/log" + "github.com/vmware/harbor/src/common/api" ) // InternalAPI handles request of harbor admin... type InternalAPI struct { - BaseAPI + api.BaseAPI } // Prepare validates the URL and parms diff --git a/api/log.go b/src/ui/api/log.go similarity index 92% rename from api/log.go rename to src/ui/api/log.go index bc8b05f74..b5fc51608 100644 --- a/api/log.go +++ b/src/ui/api/log.go @@ -20,14 +20,15 @@ import ( "strconv" "time" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils/log" + "github.com/vmware/harbor/src/common/api" ) //LogAPI handles request api/logs type LogAPI struct { - BaseAPI + api.BaseAPI userID int } diff --git a/api/log_test.go b/src/ui/api/log_test.go similarity index 92% rename from api/log_test.go rename to src/ui/api/log_test.go index 29cb6f1b4..593491be0 100644 --- a/api/log_test.go +++ b/src/ui/api/log_test.go @@ -30,6 +30,7 @@ func TestLogGet(t *testing.T) { } logNum := len(result) + logID := result[0].LogId fmt.Println(result) //add the project first. fmt.Println("add the project first.") @@ -47,7 +48,7 @@ func TestLogGet(t *testing.T) { t.Log(err) } else { assert.Equal(logNum+1, len(result), "lines of logs should be equal") - assert.Equal(int32(logNum+1), result[0].LogId, "LogId should be equal") + assert.Equal(int32(logID+1), result[0].LogId, "LogId should be equal") assert.Equal("my_project/", result[0].RepoName, "RepoName should be equal") assert.Equal("N/A", result[0].RepoTag, "RepoTag should be equal") assert.Equal("create", result[0].Operation, "Operation should be equal") @@ -98,8 +99,14 @@ func TestLogGet(t *testing.T) { t.Error("Error while get log information", err.Error()) t.Log(err) } else { - assert.Equal(logNum+1, len(result), "lines of logs should be equal") - assert.Equal(int32(logNum+1), result[0].LogId, "LogId should be equal") + //default get 10 logs + if logNum+1 >= 10 { + logNum = 10 + } else { + logNum += 1 + } + assert.Equal(logNum, len(result), "lines of logs should be equal") + assert.Equal(int32(logID+1), result[0].LogId, "LogId should be equal") assert.Equal("my_project/", result[0].RepoName, "RepoName should be equal") assert.Equal("N/A", result[0].RepoTag, "RepoTag should be equal") assert.Equal("create", result[0].Operation, "Operation should be equal") diff --git a/api/member.go b/src/ui/api/member.go similarity index 97% rename from api/member.go rename to src/ui/api/member.go index 1fe38a1a7..63cdc7cde 100644 --- a/api/member.go +++ b/src/ui/api/member.go @@ -19,14 +19,15 @@ import ( "net/http" "strconv" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils/log" + "github.com/vmware/harbor/src/common/api" ) // ProjectMemberAPI handles request to /api/projects/{}/members/{} type ProjectMemberAPI struct { - BaseAPI + api.BaseAPI memberID int currentUserID int project *models.Project diff --git a/api/member_test.go b/src/ui/api/member_test.go similarity index 100% rename from api/member_test.go rename to src/ui/api/member_test.go diff --git a/api/project.go b/src/ui/api/project.go similarity index 96% rename from api/project.go rename to src/ui/api/project.go index 92eb543d7..c58941ebc 100644 --- a/api/project.go +++ b/src/ui/api/project.go @@ -20,9 +20,10 @@ import ( "net/http" "regexp" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils/log" + "github.com/vmware/harbor/src/common/api" "strconv" "time" @@ -30,7 +31,7 @@ import ( // ProjectAPI handles request to /api/projects/{} /api/projects/{}/logs type ProjectAPI struct { - BaseAPI + api.BaseAPI userID int projectID int64 projectName string @@ -223,7 +224,7 @@ func (p *ProjectAPI) List() { var public int var err error - page, pageSize := p.getPaginationParams() + page, pageSize := p.GetPaginationParams() var projectList []models.Project projectName := p.GetString("project_name") @@ -300,7 +301,7 @@ func (p *ProjectAPI) List() { projectList[i].RepoCount = len(repos) } - p.setPaginationHeader(total, page, pageSize) + p.SetPaginationHeader(total, page, pageSize) p.Data["json"] = projectList p.ServeJSON() } @@ -347,7 +348,7 @@ func (p *ProjectAPI) FilterAccessLog() { query.BeginTime = time.Unix(query.BeginTimestamp, 0) query.EndTime = time.Unix(query.EndTimestamp, 0) - page, pageSize := p.getPaginationParams() + page, pageSize := p.GetPaginationParams() total, err := dao.GetTotalOfAccessLogs(query) if err != nil { @@ -361,7 +362,7 @@ func (p *ProjectAPI) FilterAccessLog() { p.CustomAbort(http.StatusInternalServerError, "") } - p.setPaginationHeader(total, page, pageSize) + p.SetPaginationHeader(total, page, pageSize) p.Data["json"] = logs diff --git a/api/project_test.go b/src/ui/api/project_test.go similarity index 100% rename from api/project_test.go rename to src/ui/api/project_test.go diff --git a/api/replication_job.go b/src/ui/api/replication_job.go similarity index 94% rename from api/replication_job.go rename to src/ui/api/replication_job.go index f91511f62..5a2165523 100644 --- a/api/replication_job.go +++ b/src/ui/api/replication_job.go @@ -23,14 +23,15 @@ import ( "strconv" "time" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils/log" + "github.com/vmware/harbor/src/common/api" ) // RepJobAPI handles request to /api/replicationJobs /api/replicationJobs/:id/log type RepJobAPI struct { - BaseAPI + api.BaseAPI jobID int64 } @@ -99,7 +100,7 @@ func (ra *RepJobAPI) List() { endTime = &t } - page, pageSize := ra.getPaginationParams() + page, pageSize := ra.GetPaginationParams() jobs, total, err := dao.FilterRepJobs(policyID, repository, status, startTime, endTime, pageSize, pageSize*(page-1)) @@ -109,7 +110,7 @@ func (ra *RepJobAPI) List() { ra.CustomAbort(http.StatusInternalServerError, "") } - ra.setPaginationHeader(total, page, pageSize) + ra.SetPaginationHeader(total, page, pageSize) ra.Data["json"] = jobs ra.ServeJSON() diff --git a/api/replication_policy.go b/src/ui/api/replication_policy.go similarity index 98% rename from api/replication_policy.go rename to src/ui/api/replication_policy.go index 3777f6209..447543a3d 100644 --- a/api/replication_policy.go +++ b/src/ui/api/replication_policy.go @@ -21,14 +21,15 @@ import ( "net/http" "strconv" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils/log" + "github.com/vmware/harbor/src/common/api" ) // RepPolicyAPI handles /api/replicationPolicies /api/replicationPolicies/:id/enablement type RepPolicyAPI struct { - BaseAPI + api.BaseAPI } // Prepare validates whether the user has system admin role diff --git a/api/replication_policy_test.go b/src/ui/api/replication_policy_test.go similarity index 100% rename from api/replication_policy_test.go rename to src/ui/api/replication_policy_test.go diff --git a/api/repository.go b/src/ui/api/repository.go similarity index 93% rename from api/repository.go rename to src/ui/api/repository.go index 50eb19946..867988c3d 100644 --- a/api/repository.go +++ b/src/ui/api/repository.go @@ -24,23 +24,24 @@ import ( "github.com/docker/distribution/manifest/schema1" "github.com/docker/distribution/manifest/schema2" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/service/cache" - svc_utils "github.com/vmware/harbor/service/utils" - "github.com/vmware/harbor/utils/log" - "github.com/vmware/harbor/utils/registry" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/ui/service/cache" + svc_utils "github.com/vmware/harbor/src/ui/service/utils" + "github.com/vmware/harbor/src/common/utils/log" + "github.com/vmware/harbor/src/common/api" + "github.com/vmware/harbor/src/common/utils/registry" - registry_error "github.com/vmware/harbor/utils/registry/error" + registry_error "github.com/vmware/harbor/src/common/utils/registry/error" - "github.com/vmware/harbor/utils" - "github.com/vmware/harbor/utils/registry/auth" + "github.com/vmware/harbor/src/common/utils" + "github.com/vmware/harbor/src/common/utils/registry/auth" ) // RepositoryAPI handles request to /api/repositories /api/repositories/tags /api/repositories/manifests, the parm has to be put // in the query string as the web framework can not parse the URL if it contains veriadic sectors. type RepositoryAPI struct { - BaseAPI + api.BaseAPI } // Get ... @@ -50,7 +51,7 @@ func (ra *RepositoryAPI) Get() { ra.CustomAbort(http.StatusBadRequest, "invalid project_id") } - page, pageSize := ra.getPaginationParams() + page, pageSize := ra.GetPaginationParams() project, err := dao.GetProjectByID(projectID) if err != nil { @@ -94,7 +95,7 @@ func (ra *RepositoryAPI) Get() { repositories = repositories[:pageSize] } - ra.setPaginationHeader(total, page, pageSize) + ra.SetPaginationHeader(total, page, pageSize) ra.Data["json"] = repositories ra.ServeJSON() @@ -364,7 +365,7 @@ func (ra *RepositoryAPI) initRepositoryClient(repoName string) (r *registry.Repo username, password, ok := ra.Ctx.Request.BasicAuth() if ok { - return newRepositoryClient(endpoint, getIsInsecure(), username, password, + return newRepositoryClient(endpoint, api.GetIsInsecure(), username, password, repoName, "repository", repoName, "pull", "push", "*") } @@ -373,7 +374,7 @@ func (ra *RepositoryAPI) initRepositoryClient(repoName string) (r *registry.Repo return nil, err } - return cache.NewRepositoryClient(endpoint, getIsInsecure(), username, repoName, + return cache.NewRepositoryClient(endpoint, api.GetIsInsecure(), username, repoName, "repository", repoName, "pull", "push", "*") } diff --git a/api/repository_test.go b/src/ui/api/repository_test.go similarity index 100% rename from api/repository_test.go rename to src/ui/api/repository_test.go diff --git a/api/search.go b/src/ui/api/search.go similarity index 91% rename from api/search.go rename to src/ui/api/search.go index aac78b3b2..aae80a2dc 100644 --- a/api/search.go +++ b/src/ui/api/search.go @@ -20,16 +20,17 @@ import ( "sort" "strings" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/service/cache" - "github.com/vmware/harbor/utils" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/ui/service/cache" + "github.com/vmware/harbor/src/common/utils" + "github.com/vmware/harbor/src/common/utils/log" + "github.com/vmware/harbor/src/common/api" ) // SearchAPI handles requesst to /api/search type SearchAPI struct { - BaseAPI + api.BaseAPI } type searchResult struct { diff --git a/api/search_test.go b/src/ui/api/search_test.go similarity index 100% rename from api/search_test.go rename to src/ui/api/search_test.go diff --git a/api/statistic.go b/src/ui/api/statistic.go similarity index 95% rename from api/statistic.go rename to src/ui/api/statistic.go index 27693ff9e..e6dab4bd9 100644 --- a/api/statistic.go +++ b/src/ui/api/statistic.go @@ -18,8 +18,9 @@ package api import ( "net/http" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/utils/log" + "github.com/vmware/harbor/src/common/api" ) const ( @@ -39,7 +40,7 @@ const ( // StatisticAPI handles request to /api/statistics/ type StatisticAPI struct { - BaseAPI + api.BaseAPI userID int } diff --git a/api/statistic_test.go b/src/ui/api/statistic_test.go similarity index 100% rename from api/statistic_test.go rename to src/ui/api/statistic_test.go diff --git a/api/target.go b/src/ui/api/target.go similarity index 95% rename from api/target.go rename to src/ui/api/target.go index c3cb205ea..aa19d28f0 100644 --- a/api/target.go +++ b/src/ui/api/target.go @@ -23,18 +23,19 @@ import ( "os" "strconv" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils" - "github.com/vmware/harbor/utils/log" - "github.com/vmware/harbor/utils/registry" - "github.com/vmware/harbor/utils/registry/auth" - registry_error "github.com/vmware/harbor/utils/registry/error" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils" + "github.com/vmware/harbor/src/common/utils/log" + "github.com/vmware/harbor/src/common/api" + "github.com/vmware/harbor/src/common/utils/registry" + "github.com/vmware/harbor/src/common/utils/registry/auth" + registry_error "github.com/vmware/harbor/src/common/utils/registry/error" ) // TargetAPI handles request to /api/targets/ping /api/targets/{} type TargetAPI struct { - BaseAPI + api.BaseAPI secretKey string } @@ -97,7 +98,7 @@ func (t *TargetAPI) Ping() { password = t.GetString("password") } - registry, err := newRegistryClient(endpoint, getIsInsecure(), username, password, + registry, err := newRegistryClient(endpoint, api.GetIsInsecure(), username, password, "", "", "") if err != nil { // timeout, dns resolve error, connection refused, etc. diff --git a/api/target_test.go b/src/ui/api/target_test.go similarity index 100% rename from api/target_test.go rename to src/ui/api/target_test.go diff --git a/api/user.go b/src/ui/api/user.go similarity index 98% rename from api/user.go rename to src/ui/api/user.go index 0bfcfcf31..d75ba7d3e 100644 --- a/api/user.go +++ b/src/ui/api/user.go @@ -23,14 +23,15 @@ import ( "strconv" "strings" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils/log" + "github.com/vmware/harbor/src/common/api" ) // UserAPI handles request to /api/users/{} type UserAPI struct { - BaseAPI + api.BaseAPI currentUserID int userID int SelfRegistration bool diff --git a/api/user_test.go b/src/ui/api/user_test.go similarity index 100% rename from api/user_test.go rename to src/ui/api/user_test.go diff --git a/api/utils.go b/src/ui/api/utils.go similarity index 97% rename from api/utils.go rename to src/ui/api/utils.go index 286d17e4b..42acfe75b 100644 --- a/api/utils.go +++ b/src/ui/api/utils.go @@ -27,13 +27,13 @@ import ( "strings" "time" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/service/cache" - "github.com/vmware/harbor/utils" - "github.com/vmware/harbor/utils/log" - "github.com/vmware/harbor/utils/registry" - registry_error "github.com/vmware/harbor/utils/registry/error" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/ui/service/cache" + "github.com/vmware/harbor/src/common/utils" + "github.com/vmware/harbor/src/common/utils/log" + "github.com/vmware/harbor/src/common/utils/registry" + registry_error "github.com/vmware/harbor/src/common/utils/registry/error" ) func checkProjectPermission(userID int, projectID int64) bool { diff --git a/auth/auth_test.go b/src/ui/auth/auth_test.go similarity index 100% rename from auth/auth_test.go rename to src/ui/auth/auth_test.go diff --git a/auth/authenticator.go b/src/ui/auth/authenticator.go similarity index 95% rename from auth/authenticator.go rename to src/ui/auth/authenticator.go index 66f6bae36..4032e83c0 100644 --- a/auth/authenticator.go +++ b/src/ui/auth/authenticator.go @@ -17,11 +17,11 @@ package auth import ( "fmt" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/utils/log" "os" "time" - "github.com/vmware/harbor/models" + "github.com/vmware/harbor/src/common/models" ) // 1.5 seconds diff --git a/auth/db/db.go b/src/ui/auth/db/db.go similarity index 88% rename from auth/db/db.go rename to src/ui/auth/db/db.go index 2e56cb1a9..f5336e25e 100644 --- a/auth/db/db.go +++ b/src/ui/auth/db/db.go @@ -16,9 +16,9 @@ package db import ( - "github.com/vmware/harbor/auth" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" + "github.com/vmware/harbor/src/ui/auth" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" ) // Auth implements Authenticator interface to authenticate user against DB. diff --git a/auth/db/db_test.go b/src/ui/auth/db/db_test.go similarity index 100% rename from auth/db/db_test.go rename to src/ui/auth/db/db_test.go diff --git a/auth/ldap/ldap.go b/src/ui/auth/ldap/ldap.go similarity index 95% rename from auth/ldap/ldap.go rename to src/ui/auth/ldap/ldap.go index ff66107a2..26f124e67 100644 --- a/auth/ldap/ldap.go +++ b/src/ui/auth/ldap/ldap.go @@ -21,11 +21,11 @@ import ( "os" "strings" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/utils/log" - "github.com/vmware/harbor/auth" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" + "github.com/vmware/harbor/src/ui/auth" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" "github.com/mqu/openldap" ) diff --git a/auth/ldap/ldap_test.go b/src/ui/auth/ldap/ldap_test.go similarity index 100% rename from auth/ldap/ldap_test.go rename to src/ui/auth/ldap/ldap_test.go diff --git a/auth/lock.go b/src/ui/auth/lock.go similarity index 100% rename from auth/lock.go rename to src/ui/auth/lock.go diff --git a/controllers/accountsetting.go b/src/ui/controllers/accountsetting.go similarity index 100% rename from controllers/accountsetting.go rename to src/ui/controllers/accountsetting.go diff --git a/controllers/addnew.go b/src/ui/controllers/addnew.go similarity index 88% rename from controllers/addnew.go rename to src/ui/controllers/addnew.go index c3ec9c571..83e3c86a8 100644 --- a/controllers/addnew.go +++ b/src/ui/controllers/addnew.go @@ -3,8 +3,8 @@ package controllers import ( "net/http" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/utils/log" ) // AddNewController handles requests to /add_new diff --git a/controllers/adminoption.go b/src/ui/controllers/adminoption.go similarity index 100% rename from controllers/adminoption.go rename to src/ui/controllers/adminoption.go diff --git a/controllers/base.go b/src/ui/controllers/base.go similarity index 97% rename from controllers/base.go rename to src/ui/controllers/base.go index bd3171926..5bbba0557 100644 --- a/controllers/base.go +++ b/src/ui/controllers/base.go @@ -8,10 +8,10 @@ import ( "github.com/astaxie/beego" "github.com/beego/i18n" - "github.com/vmware/harbor/auth" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/ui/auth" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils/log" ) // BaseController wraps common methods such as i18n support, forward, which can be leveraged by other UI render controllers. diff --git a/controllers/changepassword.go b/src/ui/controllers/changepassword.go similarity index 100% rename from controllers/changepassword.go rename to src/ui/controllers/changepassword.go diff --git a/controllers/controllers_test.go b/src/ui/controllers/controllers_test.go similarity index 100% rename from controllers/controllers_test.go rename to src/ui/controllers/controllers_test.go diff --git a/controllers/dashboard.go b/src/ui/controllers/dashboard.go similarity index 100% rename from controllers/dashboard.go rename to src/ui/controllers/dashboard.go diff --git a/controllers/index.go b/src/ui/controllers/index.go similarity index 100% rename from controllers/index.go rename to src/ui/controllers/index.go diff --git a/controllers/navigationdetail.go b/src/ui/controllers/navigationdetail.go similarity index 86% rename from controllers/navigationdetail.go rename to src/ui/controllers/navigationdetail.go index 2de56ef41..b7f14a19e 100644 --- a/controllers/navigationdetail.go +++ b/src/ui/controllers/navigationdetail.go @@ -3,9 +3,9 @@ package controllers import ( "net/http" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils/log" ) // NavigationDetailController handles requests to /navigation_detail diff --git a/controllers/navigationheader.go b/src/ui/controllers/navigationheader.go similarity index 87% rename from controllers/navigationheader.go rename to src/ui/controllers/navigationheader.go index 36513764c..1bf3bdff8 100644 --- a/controllers/navigationheader.go +++ b/src/ui/controllers/navigationheader.go @@ -3,9 +3,9 @@ package controllers import ( "net/http" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils/log" ) // NavigationHeaderController handles requests to /navigation_header diff --git a/controllers/optionalmenu.go b/src/ui/controllers/optionalmenu.go similarity index 89% rename from controllers/optionalmenu.go rename to src/ui/controllers/optionalmenu.go index ac4cc3098..80524d55f 100644 --- a/controllers/optionalmenu.go +++ b/src/ui/controllers/optionalmenu.go @@ -3,9 +3,9 @@ package controllers import ( "net/http" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils/log" ) // OptionalMenuController handles request to /optional_menu diff --git a/controllers/password.go b/src/ui/controllers/password.go similarity index 95% rename from controllers/password.go rename to src/ui/controllers/password.go index 8d3b2c0f4..83d23a60d 100644 --- a/controllers/password.go +++ b/src/ui/controllers/password.go @@ -8,10 +8,10 @@ import ( "text/template" "github.com/astaxie/beego" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils" + "github.com/vmware/harbor/src/common/utils/log" ) type messageDetail struct { diff --git a/controllers/project.go b/src/ui/controllers/project.go similarity index 100% rename from controllers/project.go rename to src/ui/controllers/project.go diff --git a/controllers/repository.go b/src/ui/controllers/repository.go similarity index 100% rename from controllers/repository.go rename to src/ui/controllers/repository.go diff --git a/controllers/search.go b/src/ui/controllers/search.go similarity index 100% rename from controllers/search.go rename to src/ui/controllers/search.go diff --git a/controllers/signin.go b/src/ui/controllers/signin.go similarity index 86% rename from controllers/signin.go rename to src/ui/controllers/signin.go index 8f70acf32..b127b9293 100644 --- a/controllers/signin.go +++ b/src/ui/controllers/signin.go @@ -3,9 +3,9 @@ package controllers import ( "net/http" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/common/utils/log" ) // SignInController handles requests to /sign_in diff --git a/controllers/signup.go b/src/ui/controllers/signup.go similarity index 100% rename from controllers/signup.go rename to src/ui/controllers/signup.go diff --git a/ui/main.go b/src/ui/main.go similarity index 86% rename from ui/main.go rename to src/ui/main.go index 61ec384e7..0111f6537 100644 --- a/ui/main.go +++ b/src/ui/main.go @@ -19,17 +19,17 @@ import ( "fmt" "os" - "github.com/vmware/harbor/utils" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/utils" + "github.com/vmware/harbor/src/common/utils/log" "github.com/astaxie/beego" _ "github.com/astaxie/beego/session/redis" - "github.com/vmware/harbor/api" - _ "github.com/vmware/harbor/auth/db" - _ "github.com/vmware/harbor/auth/ldap" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" + "github.com/vmware/harbor/src/ui/api" + _ "github.com/vmware/harbor/src/ui/auth/db" + _ "github.com/vmware/harbor/src/ui/auth/ldap" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" ) const ( diff --git a/ui/router.go b/src/ui/router.go similarity index 96% rename from ui/router.go rename to src/ui/router.go index 5433fb242..5dbab9bae 100644 --- a/ui/router.go +++ b/src/ui/router.go @@ -16,10 +16,10 @@ package main import ( - "github.com/vmware/harbor/api" - "github.com/vmware/harbor/controllers" - "github.com/vmware/harbor/service" - "github.com/vmware/harbor/service/token" + "github.com/vmware/harbor/src/ui/api" + "github.com/vmware/harbor/src/ui/controllers" + "github.com/vmware/harbor/src/ui/service" + "github.com/vmware/harbor/src/ui/service/token" "github.com/astaxie/beego" ) diff --git a/service/cache/cache.go b/src/ui/service/cache/cache.go similarity index 93% rename from service/cache/cache.go rename to src/ui/service/cache/cache.go index 67c3c224f..1f43c7c5d 100644 --- a/service/cache/cache.go +++ b/src/ui/service/cache/cache.go @@ -18,10 +18,10 @@ package cache import ( "time" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/utils/log" - "github.com/vmware/harbor/utils/registry" - "github.com/vmware/harbor/utils/registry/auth" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/utils/log" + "github.com/vmware/harbor/src/common/utils/registry" + "github.com/vmware/harbor/src/common/utils/registry/auth" "github.com/astaxie/beego/cache" ) diff --git a/service/cache/cache_test.go b/src/ui/service/cache/cache_test.go similarity index 100% rename from service/cache/cache_test.go rename to src/ui/service/cache/cache_test.go diff --git a/service/notification.go b/src/ui/service/notification.go similarity index 93% rename from service/notification.go rename to src/ui/service/notification.go index da6825c01..33ef0ba7a 100644 --- a/service/notification.go +++ b/src/ui/service/notification.go @@ -20,12 +20,12 @@ import ( "regexp" "strings" - "github.com/vmware/harbor/api" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/models" - "github.com/vmware/harbor/service/cache" - "github.com/vmware/harbor/utils" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/ui/api" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/models" + "github.com/vmware/harbor/src/ui/service/cache" + "github.com/vmware/harbor/src/common/utils" + "github.com/vmware/harbor/src/common/utils/log" "github.com/astaxie/beego" ) diff --git a/service/service_test.go b/src/ui/service/service_test.go similarity index 100% rename from service/service_test.go rename to src/ui/service/service_test.go diff --git a/service/token/authutils.go b/src/ui/service/token/authutils.go similarity index 98% rename from service/token/authutils.go rename to src/ui/service/token/authutils.go index 08f976bbf..d9ce76400 100644 --- a/service/token/authutils.go +++ b/src/ui/service/token/authutils.go @@ -26,8 +26,8 @@ import ( "strings" "time" - "github.com/vmware/harbor/dao" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/dao" + "github.com/vmware/harbor/src/common/utils/log" "github.com/docker/distribution/registry/auth/token" "github.com/docker/libtrust" diff --git a/service/token/token.go b/src/ui/service/token/token.go similarity index 93% rename from service/token/token.go rename to src/ui/service/token/token.go index 0c2290ab4..2d408cbc5 100644 --- a/service/token/token.go +++ b/src/ui/service/token/token.go @@ -19,10 +19,10 @@ import ( "net/http" "time" - "github.com/vmware/harbor/auth" - "github.com/vmware/harbor/models" - svc_utils "github.com/vmware/harbor/service/utils" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/ui/auth" + "github.com/vmware/harbor/src/common/models" + svc_utils "github.com/vmware/harbor/src/ui/service/utils" + "github.com/vmware/harbor/src/common/utils/log" "github.com/astaxie/beego" "github.com/docker/distribution/registry/auth/token" diff --git a/service/token/token_test.go b/src/ui/service/token/token_test.go similarity index 100% rename from service/token/token_test.go rename to src/ui/service/token/token_test.go diff --git a/service/utils/utils.go b/src/ui/service/utils/utils.go similarity index 95% rename from service/utils/utils.go rename to src/ui/service/utils/utils.go index fb441f6dd..b64fb98cf 100644 --- a/service/utils/utils.go +++ b/src/ui/service/utils/utils.go @@ -20,7 +20,7 @@ import ( "net/http" "os" - "github.com/vmware/harbor/utils/log" + "github.com/vmware/harbor/src/common/utils/log" ) // VerifySecret verifies the UI_SECRET cookie in a http request. diff --git a/service/utils/utils_test.go b/src/ui/service/utils/utils_test.go similarity index 100% rename from service/utils/utils_test.go rename to src/ui/service/utils/utils_test.go diff --git a/static/Gruntfile.js b/src/ui/static/Gruntfile.js similarity index 100% rename from static/Gruntfile.js rename to src/ui/static/Gruntfile.js diff --git a/static/i18n/locale_en-US.ini b/src/ui/static/i18n/locale_en-US.ini similarity index 100% rename from static/i18n/locale_en-US.ini rename to src/ui/static/i18n/locale_en-US.ini diff --git a/static/i18n/locale_zh-CN.ini b/src/ui/static/i18n/locale_zh-CN.ini similarity index 100% rename from static/i18n/locale_zh-CN.ini rename to src/ui/static/i18n/locale_zh-CN.ini diff --git a/static/package.json b/src/ui/static/package.json similarity index 100% rename from static/package.json rename to src/ui/static/package.json diff --git a/static/resources/css/account-settings.css b/src/ui/static/resources/css/account-settings.css similarity index 100% rename from static/resources/css/account-settings.css rename to src/ui/static/resources/css/account-settings.css diff --git a/static/resources/css/admin-options.css b/src/ui/static/resources/css/admin-options.css similarity index 100% rename from static/resources/css/admin-options.css rename to src/ui/static/resources/css/admin-options.css diff --git a/static/resources/css/dashboard.css b/src/ui/static/resources/css/dashboard.css similarity index 100% rename from static/resources/css/dashboard.css rename to src/ui/static/resources/css/dashboard.css diff --git a/static/resources/css/destination.css b/src/ui/static/resources/css/destination.css similarity index 100% rename from static/resources/css/destination.css rename to src/ui/static/resources/css/destination.css diff --git a/static/resources/css/footer.css b/src/ui/static/resources/css/footer.css similarity index 100% rename from static/resources/css/footer.css rename to src/ui/static/resources/css/footer.css diff --git a/static/resources/css/header.css b/src/ui/static/resources/css/header.css similarity index 100% rename from static/resources/css/header.css rename to src/ui/static/resources/css/header.css diff --git a/static/resources/css/index.css b/src/ui/static/resources/css/index.css similarity index 100% rename from static/resources/css/index.css rename to src/ui/static/resources/css/index.css diff --git a/static/resources/css/project.css b/src/ui/static/resources/css/project.css similarity index 100% rename from static/resources/css/project.css rename to src/ui/static/resources/css/project.css diff --git a/static/resources/css/replication.css b/src/ui/static/resources/css/replication.css similarity index 100% rename from static/resources/css/replication.css rename to src/ui/static/resources/css/replication.css diff --git a/static/resources/css/repository.css b/src/ui/static/resources/css/repository.css similarity index 100% rename from static/resources/css/repository.css rename to src/ui/static/resources/css/repository.css diff --git a/static/resources/css/search.css b/src/ui/static/resources/css/search.css similarity index 100% rename from static/resources/css/search.css rename to src/ui/static/resources/css/search.css diff --git a/static/resources/css/sign-up.css b/src/ui/static/resources/css/sign-up.css similarity index 100% rename from static/resources/css/sign-up.css rename to src/ui/static/resources/css/sign-up.css diff --git a/static/resources/img/Harbor_Logo_rec.png b/src/ui/static/resources/img/Harbor_Logo_rec.png similarity index 100% rename from static/resources/img/Harbor_Logo_rec.png rename to src/ui/static/resources/img/Harbor_Logo_rec.png diff --git a/static/resources/img/Step1.png b/src/ui/static/resources/img/Step1.png similarity index 100% rename from static/resources/img/Step1.png rename to src/ui/static/resources/img/Step1.png diff --git a/static/resources/img/Step2.png b/src/ui/static/resources/img/Step2.png similarity index 100% rename from static/resources/img/Step2.png rename to src/ui/static/resources/img/Step2.png diff --git a/static/resources/img/Step3.png b/src/ui/static/resources/img/Step3.png similarity index 100% rename from static/resources/img/Step3.png rename to src/ui/static/resources/img/Step3.png diff --git a/static/resources/img/loading.gif b/src/ui/static/resources/img/loading.gif similarity index 100% rename from static/resources/img/loading.gif rename to src/ui/static/resources/img/loading.gif diff --git a/static/resources/img/magnitude-glass.jpg b/src/ui/static/resources/img/magnitude-glass.jpg similarity index 100% rename from static/resources/img/magnitude-glass.jpg rename to src/ui/static/resources/img/magnitude-glass.jpg diff --git a/static/resources/js/components/details/retrieve-projects.directive.html b/src/ui/static/resources/js/components/details/retrieve-projects.directive.html similarity index 100% rename from static/resources/js/components/details/retrieve-projects.directive.html rename to src/ui/static/resources/js/components/details/retrieve-projects.directive.html diff --git a/static/resources/js/components/details/retrieve-projects.directive.js b/src/ui/static/resources/js/components/details/retrieve-projects.directive.js similarity index 100% rename from static/resources/js/components/details/retrieve-projects.directive.js rename to src/ui/static/resources/js/components/details/retrieve-projects.directive.js diff --git a/static/resources/js/components/details/switch-pane-projects.directive.html b/src/ui/static/resources/js/components/details/switch-pane-projects.directive.html similarity index 100% rename from static/resources/js/components/details/switch-pane-projects.directive.html rename to src/ui/static/resources/js/components/details/switch-pane-projects.directive.html diff --git a/static/resources/js/components/details/switch-pane-projects.directive.js b/src/ui/static/resources/js/components/details/switch-pane-projects.directive.js similarity index 100% rename from static/resources/js/components/details/switch-pane-projects.directive.js rename to src/ui/static/resources/js/components/details/switch-pane-projects.directive.js diff --git a/static/resources/js/components/dismissable-alerts/dismissable-alerts.directive.html b/src/ui/static/resources/js/components/dismissable-alerts/dismissable-alerts.directive.html similarity index 100% rename from static/resources/js/components/dismissable-alerts/dismissable-alerts.directive.html rename to src/ui/static/resources/js/components/dismissable-alerts/dismissable-alerts.directive.html diff --git a/static/resources/js/components/dismissable-alerts/dismissable-alerts.directive.js b/src/ui/static/resources/js/components/dismissable-alerts/dismissable-alerts.directive.js similarity index 100% rename from static/resources/js/components/dismissable-alerts/dismissable-alerts.directive.js rename to src/ui/static/resources/js/components/dismissable-alerts/dismissable-alerts.directive.js diff --git a/static/resources/js/components/dismissable-alerts/dismissable-alerts.module.js b/src/ui/static/resources/js/components/dismissable-alerts/dismissable-alerts.module.js similarity index 100% rename from static/resources/js/components/dismissable-alerts/dismissable-alerts.module.js rename to src/ui/static/resources/js/components/dismissable-alerts/dismissable-alerts.module.js diff --git a/static/resources/js/components/element-height/element-height.inspector.js b/src/ui/static/resources/js/components/element-height/element-height.inspector.js similarity index 100% rename from static/resources/js/components/element-height/element-height.inspector.js rename to src/ui/static/resources/js/components/element-height/element-height.inspector.js diff --git a/static/resources/js/components/element-height/element-height.module.js b/src/ui/static/resources/js/components/element-height/element-height.module.js similarity index 100% rename from static/resources/js/components/element-height/element-height.module.js rename to src/ui/static/resources/js/components/element-height/element-height.module.js diff --git a/static/resources/js/components/inline-help/inline-help.directive.html b/src/ui/static/resources/js/components/inline-help/inline-help.directive.html similarity index 100% rename from static/resources/js/components/inline-help/inline-help.directive.html rename to src/ui/static/resources/js/components/inline-help/inline-help.directive.html diff --git a/static/resources/js/components/inline-help/inline-help.directive.js b/src/ui/static/resources/js/components/inline-help/inline-help.directive.js similarity index 100% rename from static/resources/js/components/inline-help/inline-help.directive.js rename to src/ui/static/resources/js/components/inline-help/inline-help.directive.js diff --git a/static/resources/js/components/inline-help/inline-help.module.js b/src/ui/static/resources/js/components/inline-help/inline-help.module.js similarity index 100% rename from static/resources/js/components/inline-help/inline-help.module.js rename to src/ui/static/resources/js/components/inline-help/inline-help.module.js diff --git a/static/resources/js/components/loading-progress/loading-progress.directive.js b/src/ui/static/resources/js/components/loading-progress/loading-progress.directive.js similarity index 100% rename from static/resources/js/components/loading-progress/loading-progress.directive.js rename to src/ui/static/resources/js/components/loading-progress/loading-progress.directive.js diff --git a/static/resources/js/components/loading-progress/loading-progress.module.js b/src/ui/static/resources/js/components/loading-progress/loading-progress.module.js similarity index 100% rename from static/resources/js/components/loading-progress/loading-progress.module.js rename to src/ui/static/resources/js/components/loading-progress/loading-progress.module.js diff --git a/static/resources/js/components/log/advanced-search.directive.html b/src/ui/static/resources/js/components/log/advanced-search.directive.html similarity index 100% rename from static/resources/js/components/log/advanced-search.directive.html rename to src/ui/static/resources/js/components/log/advanced-search.directive.html diff --git a/static/resources/js/components/log/advanced-search.directive.js b/src/ui/static/resources/js/components/log/advanced-search.directive.js similarity index 100% rename from static/resources/js/components/log/advanced-search.directive.js rename to src/ui/static/resources/js/components/log/advanced-search.directive.js diff --git a/static/resources/js/components/log/list-log.directive.html b/src/ui/static/resources/js/components/log/list-log.directive.html similarity index 100% rename from static/resources/js/components/log/list-log.directive.html rename to src/ui/static/resources/js/components/log/list-log.directive.html diff --git a/static/resources/js/components/log/list-log.directive.js b/src/ui/static/resources/js/components/log/list-log.directive.js similarity index 100% rename from static/resources/js/components/log/list-log.directive.js rename to src/ui/static/resources/js/components/log/list-log.directive.js diff --git a/static/resources/js/components/log/log.config.js b/src/ui/static/resources/js/components/log/log.config.js similarity index 100% rename from static/resources/js/components/log/log.config.js rename to src/ui/static/resources/js/components/log/log.config.js diff --git a/static/resources/js/components/log/log.module.js b/src/ui/static/resources/js/components/log/log.module.js similarity index 100% rename from static/resources/js/components/log/log.module.js rename to src/ui/static/resources/js/components/log/log.module.js diff --git a/static/resources/js/components/modal-dialog/modal-dialog.directive.html b/src/ui/static/resources/js/components/modal-dialog/modal-dialog.directive.html similarity index 100% rename from static/resources/js/components/modal-dialog/modal-dialog.directive.html rename to src/ui/static/resources/js/components/modal-dialog/modal-dialog.directive.html diff --git a/static/resources/js/components/modal-dialog/modal-dialog.directive.js b/src/ui/static/resources/js/components/modal-dialog/modal-dialog.directive.js similarity index 100% rename from static/resources/js/components/modal-dialog/modal-dialog.directive.js rename to src/ui/static/resources/js/components/modal-dialog/modal-dialog.directive.js diff --git a/static/resources/js/components/modal-dialog/modal-dialog.module.js b/src/ui/static/resources/js/components/modal-dialog/modal-dialog.module.js similarity index 100% rename from static/resources/js/components/modal-dialog/modal-dialog.module.js rename to src/ui/static/resources/js/components/modal-dialog/modal-dialog.module.js diff --git a/static/resources/js/components/optional-menu/optional-menu.directive.js b/src/ui/static/resources/js/components/optional-menu/optional-menu.directive.js similarity index 100% rename from static/resources/js/components/optional-menu/optional-menu.directive.js rename to src/ui/static/resources/js/components/optional-menu/optional-menu.directive.js diff --git a/static/resources/js/components/optional-menu/optional-menu.module.js b/src/ui/static/resources/js/components/optional-menu/optional-menu.module.js similarity index 100% rename from static/resources/js/components/optional-menu/optional-menu.module.js rename to src/ui/static/resources/js/components/optional-menu/optional-menu.module.js diff --git a/static/resources/js/components/paginator/paginator.directive.html b/src/ui/static/resources/js/components/paginator/paginator.directive.html similarity index 100% rename from static/resources/js/components/paginator/paginator.directive.html rename to src/ui/static/resources/js/components/paginator/paginator.directive.html diff --git a/static/resources/js/components/paginator/paginator.directive.js b/src/ui/static/resources/js/components/paginator/paginator.directive.js similarity index 100% rename from static/resources/js/components/paginator/paginator.directive.js rename to src/ui/static/resources/js/components/paginator/paginator.directive.js diff --git a/static/resources/js/components/paginator/paginator.module.js b/src/ui/static/resources/js/components/paginator/paginator.module.js similarity index 100% rename from static/resources/js/components/paginator/paginator.module.js rename to src/ui/static/resources/js/components/paginator/paginator.module.js diff --git a/static/resources/js/components/project-member/add-project-member.directive.html b/src/ui/static/resources/js/components/project-member/add-project-member.directive.html similarity index 100% rename from static/resources/js/components/project-member/add-project-member.directive.html rename to src/ui/static/resources/js/components/project-member/add-project-member.directive.html diff --git a/static/resources/js/components/project-member/add-project-member.directive.js b/src/ui/static/resources/js/components/project-member/add-project-member.directive.js similarity index 100% rename from static/resources/js/components/project-member/add-project-member.directive.js rename to src/ui/static/resources/js/components/project-member/add-project-member.directive.js diff --git a/static/resources/js/components/project-member/edit-project-member.directive.html b/src/ui/static/resources/js/components/project-member/edit-project-member.directive.html similarity index 100% rename from static/resources/js/components/project-member/edit-project-member.directive.html rename to src/ui/static/resources/js/components/project-member/edit-project-member.directive.html diff --git a/static/resources/js/components/project-member/edit-project-member.directive.js b/src/ui/static/resources/js/components/project-member/edit-project-member.directive.js similarity index 100% rename from static/resources/js/components/project-member/edit-project-member.directive.js rename to src/ui/static/resources/js/components/project-member/edit-project-member.directive.js diff --git a/static/resources/js/components/project-member/list-project-member.directive.html b/src/ui/static/resources/js/components/project-member/list-project-member.directive.html similarity index 100% rename from static/resources/js/components/project-member/list-project-member.directive.html rename to src/ui/static/resources/js/components/project-member/list-project-member.directive.html diff --git a/static/resources/js/components/project-member/list-project-member.directive.js b/src/ui/static/resources/js/components/project-member/list-project-member.directive.js similarity index 100% rename from static/resources/js/components/project-member/list-project-member.directive.js rename to src/ui/static/resources/js/components/project-member/list-project-member.directive.js diff --git a/static/resources/js/components/project-member/project-member.config.js b/src/ui/static/resources/js/components/project-member/project-member.config.js similarity index 100% rename from static/resources/js/components/project-member/project-member.config.js rename to src/ui/static/resources/js/components/project-member/project-member.config.js diff --git a/static/resources/js/components/project-member/project-member.module.js b/src/ui/static/resources/js/components/project-member/project-member.module.js similarity index 100% rename from static/resources/js/components/project-member/project-member.module.js rename to src/ui/static/resources/js/components/project-member/project-member.module.js diff --git a/static/resources/js/components/project-member/switch-role.directive.html b/src/ui/static/resources/js/components/project-member/switch-role.directive.html similarity index 100% rename from static/resources/js/components/project-member/switch-role.directive.html rename to src/ui/static/resources/js/components/project-member/switch-role.directive.html diff --git a/static/resources/js/components/project-member/switch-role.directive.js b/src/ui/static/resources/js/components/project-member/switch-role.directive.js similarity index 100% rename from static/resources/js/components/project-member/switch-role.directive.js rename to src/ui/static/resources/js/components/project-member/switch-role.directive.js diff --git a/static/resources/js/components/project/add-project.directive.html b/src/ui/static/resources/js/components/project/add-project.directive.html similarity index 100% rename from static/resources/js/components/project/add-project.directive.html rename to src/ui/static/resources/js/components/project/add-project.directive.html diff --git a/static/resources/js/components/project/add-project.directive.js b/src/ui/static/resources/js/components/project/add-project.directive.js similarity index 100% rename from static/resources/js/components/project/add-project.directive.js rename to src/ui/static/resources/js/components/project/add-project.directive.js diff --git a/static/resources/js/components/project/project.module.js b/src/ui/static/resources/js/components/project/project.module.js similarity index 100% rename from static/resources/js/components/project/project.module.js rename to src/ui/static/resources/js/components/project/project.module.js diff --git a/static/resources/js/components/project/publicity-button.directive.html b/src/ui/static/resources/js/components/project/publicity-button.directive.html similarity index 100% rename from static/resources/js/components/project/publicity-button.directive.html rename to src/ui/static/resources/js/components/project/publicity-button.directive.html diff --git a/static/resources/js/components/project/publicity-button.directive.js b/src/ui/static/resources/js/components/project/publicity-button.directive.js similarity index 100% rename from static/resources/js/components/project/publicity-button.directive.js rename to src/ui/static/resources/js/components/project/publicity-button.directive.js diff --git a/static/resources/js/components/replication/create-policy.directive.html b/src/ui/static/resources/js/components/replication/create-policy.directive.html similarity index 100% rename from static/resources/js/components/replication/create-policy.directive.html rename to src/ui/static/resources/js/components/replication/create-policy.directive.html diff --git a/static/resources/js/components/replication/create-policy.directive.js b/src/ui/static/resources/js/components/replication/create-policy.directive.js similarity index 100% rename from static/resources/js/components/replication/create-policy.directive.js rename to src/ui/static/resources/js/components/replication/create-policy.directive.js diff --git a/static/resources/js/components/replication/list-replication.directive.html b/src/ui/static/resources/js/components/replication/list-replication.directive.html similarity index 100% rename from static/resources/js/components/replication/list-replication.directive.html rename to src/ui/static/resources/js/components/replication/list-replication.directive.html diff --git a/static/resources/js/components/replication/list-replication.directive.js b/src/ui/static/resources/js/components/replication/list-replication.directive.js similarity index 100% rename from static/resources/js/components/replication/list-replication.directive.js rename to src/ui/static/resources/js/components/replication/list-replication.directive.js diff --git a/static/resources/js/components/replication/replication.module.js b/src/ui/static/resources/js/components/replication/replication.module.js similarity index 100% rename from static/resources/js/components/replication/replication.module.js rename to src/ui/static/resources/js/components/replication/replication.module.js diff --git a/static/resources/js/components/repository/list-repository.directive.html b/src/ui/static/resources/js/components/repository/list-repository.directive.html similarity index 100% rename from static/resources/js/components/repository/list-repository.directive.html rename to src/ui/static/resources/js/components/repository/list-repository.directive.html diff --git a/static/resources/js/components/repository/list-repository.directive.js b/src/ui/static/resources/js/components/repository/list-repository.directive.js similarity index 100% rename from static/resources/js/components/repository/list-repository.directive.js rename to src/ui/static/resources/js/components/repository/list-repository.directive.js diff --git a/static/resources/js/components/repository/list-tag.directive.html b/src/ui/static/resources/js/components/repository/list-tag.directive.html similarity index 100% rename from static/resources/js/components/repository/list-tag.directive.html rename to src/ui/static/resources/js/components/repository/list-tag.directive.html diff --git a/static/resources/js/components/repository/list-tag.directive.js b/src/ui/static/resources/js/components/repository/list-tag.directive.js similarity index 100% rename from static/resources/js/components/repository/list-tag.directive.js rename to src/ui/static/resources/js/components/repository/list-tag.directive.js diff --git a/static/resources/js/components/repository/popup-details.directive.html b/src/ui/static/resources/js/components/repository/popup-details.directive.html similarity index 100% rename from static/resources/js/components/repository/popup-details.directive.html rename to src/ui/static/resources/js/components/repository/popup-details.directive.html diff --git a/static/resources/js/components/repository/popup-details.directive.js b/src/ui/static/resources/js/components/repository/popup-details.directive.js similarity index 100% rename from static/resources/js/components/repository/popup-details.directive.js rename to src/ui/static/resources/js/components/repository/popup-details.directive.js diff --git a/static/resources/js/components/repository/pull-command.directive.html b/src/ui/static/resources/js/components/repository/pull-command.directive.html similarity index 100% rename from static/resources/js/components/repository/pull-command.directive.html rename to src/ui/static/resources/js/components/repository/pull-command.directive.html diff --git a/static/resources/js/components/repository/pull-command.directive.js b/src/ui/static/resources/js/components/repository/pull-command.directive.js similarity index 100% rename from static/resources/js/components/repository/pull-command.directive.js rename to src/ui/static/resources/js/components/repository/pull-command.directive.js diff --git a/static/resources/js/components/repository/repository.module.js b/src/ui/static/resources/js/components/repository/repository.module.js similarity index 100% rename from static/resources/js/components/repository/repository.module.js rename to src/ui/static/resources/js/components/repository/repository.module.js diff --git a/static/resources/js/components/search/search-input.directive.html b/src/ui/static/resources/js/components/search/search-input.directive.html similarity index 100% rename from static/resources/js/components/search/search-input.directive.html rename to src/ui/static/resources/js/components/search/search-input.directive.html diff --git a/static/resources/js/components/search/search-input.directive.js b/src/ui/static/resources/js/components/search/search-input.directive.js similarity index 100% rename from static/resources/js/components/search/search-input.directive.js rename to src/ui/static/resources/js/components/search/search-input.directive.js diff --git a/static/resources/js/components/search/search.directive.html b/src/ui/static/resources/js/components/search/search.directive.html similarity index 100% rename from static/resources/js/components/search/search.directive.html rename to src/ui/static/resources/js/components/search/search.directive.html diff --git a/static/resources/js/components/search/search.directive.js b/src/ui/static/resources/js/components/search/search.directive.js similarity index 100% rename from static/resources/js/components/search/search.directive.js rename to src/ui/static/resources/js/components/search/search.directive.js diff --git a/static/resources/js/components/search/search.module.js b/src/ui/static/resources/js/components/search/search.module.js similarity index 100% rename from static/resources/js/components/search/search.module.js rename to src/ui/static/resources/js/components/search/search.module.js diff --git a/static/resources/js/components/sign-in/sign-in.directive.js b/src/ui/static/resources/js/components/sign-in/sign-in.directive.js similarity index 100% rename from static/resources/js/components/sign-in/sign-in.directive.js rename to src/ui/static/resources/js/components/sign-in/sign-in.directive.js diff --git a/static/resources/js/components/sign-in/sign-in.module.js b/src/ui/static/resources/js/components/sign-in/sign-in.module.js similarity index 100% rename from static/resources/js/components/sign-in/sign-in.module.js rename to src/ui/static/resources/js/components/sign-in/sign-in.module.js diff --git a/static/resources/js/components/summary/summary.directive.html b/src/ui/static/resources/js/components/summary/summary.directive.html similarity index 100% rename from static/resources/js/components/summary/summary.directive.html rename to src/ui/static/resources/js/components/summary/summary.directive.html diff --git a/static/resources/js/components/summary/summary.directive.js b/src/ui/static/resources/js/components/summary/summary.directive.js similarity index 100% rename from static/resources/js/components/summary/summary.directive.js rename to src/ui/static/resources/js/components/summary/summary.directive.js diff --git a/static/resources/js/components/summary/summary.module.js b/src/ui/static/resources/js/components/summary/summary.module.js similarity index 100% rename from static/resources/js/components/summary/summary.module.js rename to src/ui/static/resources/js/components/summary/summary.module.js diff --git a/static/resources/js/components/system-management/configuration.directive.html b/src/ui/static/resources/js/components/system-management/configuration.directive.html similarity index 100% rename from static/resources/js/components/system-management/configuration.directive.html rename to src/ui/static/resources/js/components/system-management/configuration.directive.html diff --git a/static/resources/js/components/system-management/configuration.directive.js b/src/ui/static/resources/js/components/system-management/configuration.directive.js similarity index 100% rename from static/resources/js/components/system-management/configuration.directive.js rename to src/ui/static/resources/js/components/system-management/configuration.directive.js diff --git a/static/resources/js/components/system-management/create-destination.directive.html b/src/ui/static/resources/js/components/system-management/create-destination.directive.html similarity index 100% rename from static/resources/js/components/system-management/create-destination.directive.html rename to src/ui/static/resources/js/components/system-management/create-destination.directive.html diff --git a/static/resources/js/components/system-management/create-destination.directive.js b/src/ui/static/resources/js/components/system-management/create-destination.directive.js similarity index 100% rename from static/resources/js/components/system-management/create-destination.directive.js rename to src/ui/static/resources/js/components/system-management/create-destination.directive.js diff --git a/static/resources/js/components/system-management/destination.directive.html b/src/ui/static/resources/js/components/system-management/destination.directive.html similarity index 100% rename from static/resources/js/components/system-management/destination.directive.html rename to src/ui/static/resources/js/components/system-management/destination.directive.html diff --git a/static/resources/js/components/system-management/destination.directive.js b/src/ui/static/resources/js/components/system-management/destination.directive.js similarity index 100% rename from static/resources/js/components/system-management/destination.directive.js rename to src/ui/static/resources/js/components/system-management/destination.directive.js diff --git a/static/resources/js/components/system-management/replication.directive.html b/src/ui/static/resources/js/components/system-management/replication.directive.html similarity index 100% rename from static/resources/js/components/system-management/replication.directive.html rename to src/ui/static/resources/js/components/system-management/replication.directive.html diff --git a/static/resources/js/components/system-management/replication.directive.js b/src/ui/static/resources/js/components/system-management/replication.directive.js similarity index 100% rename from static/resources/js/components/system-management/replication.directive.js rename to src/ui/static/resources/js/components/system-management/replication.directive.js diff --git a/static/resources/js/components/system-management/system-management.directive.html b/src/ui/static/resources/js/components/system-management/system-management.directive.html similarity index 100% rename from static/resources/js/components/system-management/system-management.directive.html rename to src/ui/static/resources/js/components/system-management/system-management.directive.html diff --git a/static/resources/js/components/system-management/system-management.directive.js b/src/ui/static/resources/js/components/system-management/system-management.directive.js similarity index 100% rename from static/resources/js/components/system-management/system-management.directive.js rename to src/ui/static/resources/js/components/system-management/system-management.directive.js diff --git a/static/resources/js/components/system-management/system-management.module.js b/src/ui/static/resources/js/components/system-management/system-management.module.js similarity index 100% rename from static/resources/js/components/system-management/system-management.module.js rename to src/ui/static/resources/js/components/system-management/system-management.module.js diff --git a/static/resources/js/components/top-repository/top-repository.directive.html b/src/ui/static/resources/js/components/top-repository/top-repository.directive.html similarity index 100% rename from static/resources/js/components/top-repository/top-repository.directive.html rename to src/ui/static/resources/js/components/top-repository/top-repository.directive.html diff --git a/static/resources/js/components/top-repository/top-repository.directive.js b/src/ui/static/resources/js/components/top-repository/top-repository.directive.js similarity index 100% rename from static/resources/js/components/top-repository/top-repository.directive.js rename to src/ui/static/resources/js/components/top-repository/top-repository.directive.js diff --git a/static/resources/js/components/top-repository/top-repository.module.js b/src/ui/static/resources/js/components/top-repository/top-repository.module.js similarity index 100% rename from static/resources/js/components/top-repository/top-repository.module.js rename to src/ui/static/resources/js/components/top-repository/top-repository.module.js diff --git a/static/resources/js/components/user-log/user-log.directive.html b/src/ui/static/resources/js/components/user-log/user-log.directive.html similarity index 100% rename from static/resources/js/components/user-log/user-log.directive.html rename to src/ui/static/resources/js/components/user-log/user-log.directive.html diff --git a/static/resources/js/components/user-log/user-log.directive.js b/src/ui/static/resources/js/components/user-log/user-log.directive.js similarity index 100% rename from static/resources/js/components/user-log/user-log.directive.js rename to src/ui/static/resources/js/components/user-log/user-log.directive.js diff --git a/static/resources/js/components/user-log/user-log.module.js b/src/ui/static/resources/js/components/user-log/user-log.module.js similarity index 100% rename from static/resources/js/components/user-log/user-log.module.js rename to src/ui/static/resources/js/components/user-log/user-log.module.js diff --git a/static/resources/js/components/user/list-user.directive.html b/src/ui/static/resources/js/components/user/list-user.directive.html similarity index 100% rename from static/resources/js/components/user/list-user.directive.html rename to src/ui/static/resources/js/components/user/list-user.directive.html diff --git a/static/resources/js/components/user/list-user.directive.js b/src/ui/static/resources/js/components/user/list-user.directive.js similarity index 100% rename from static/resources/js/components/user/list-user.directive.js rename to src/ui/static/resources/js/components/user/list-user.directive.js diff --git a/static/resources/js/components/user/toggle-admin.directive.html b/src/ui/static/resources/js/components/user/toggle-admin.directive.html similarity index 100% rename from static/resources/js/components/user/toggle-admin.directive.html rename to src/ui/static/resources/js/components/user/toggle-admin.directive.html diff --git a/static/resources/js/components/user/toggle-admin.directive.js b/src/ui/static/resources/js/components/user/toggle-admin.directive.js similarity index 100% rename from static/resources/js/components/user/toggle-admin.directive.js rename to src/ui/static/resources/js/components/user/toggle-admin.directive.js diff --git a/static/resources/js/components/user/user.module.js b/src/ui/static/resources/js/components/user/user.module.js similarity index 100% rename from static/resources/js/components/user/user.module.js rename to src/ui/static/resources/js/components/user/user.module.js diff --git a/static/resources/js/components/validator/confirm-password.validator.js b/src/ui/static/resources/js/components/validator/confirm-password.validator.js similarity index 100% rename from static/resources/js/components/validator/confirm-password.validator.js rename to src/ui/static/resources/js/components/validator/confirm-password.validator.js diff --git a/static/resources/js/components/validator/invalid-chars.validator.js b/src/ui/static/resources/js/components/validator/invalid-chars.validator.js similarity index 100% rename from static/resources/js/components/validator/invalid-chars.validator.js rename to src/ui/static/resources/js/components/validator/invalid-chars.validator.js diff --git a/static/resources/js/components/validator/password.validator.js b/src/ui/static/resources/js/components/validator/password.validator.js similarity index 100% rename from static/resources/js/components/validator/password.validator.js rename to src/ui/static/resources/js/components/validator/password.validator.js diff --git a/static/resources/js/components/validator/project-name.validator.js b/src/ui/static/resources/js/components/validator/project-name.validator.js similarity index 100% rename from static/resources/js/components/validator/project-name.validator.js rename to src/ui/static/resources/js/components/validator/project-name.validator.js diff --git a/static/resources/js/components/validator/user-exist.validator.js b/src/ui/static/resources/js/components/validator/user-exist.validator.js similarity index 100% rename from static/resources/js/components/validator/user-exist.validator.js rename to src/ui/static/resources/js/components/validator/user-exist.validator.js diff --git a/static/resources/js/components/validator/validator.config.js b/src/ui/static/resources/js/components/validator/validator.config.js similarity index 100% rename from static/resources/js/components/validator/validator.config.js rename to src/ui/static/resources/js/components/validator/validator.config.js diff --git a/static/resources/js/components/validator/validator.module.js b/src/ui/static/resources/js/components/validator/validator.module.js similarity index 100% rename from static/resources/js/components/validator/validator.module.js rename to src/ui/static/resources/js/components/validator/validator.module.js diff --git a/static/resources/js/harbor.config.js b/src/ui/static/resources/js/harbor.config.js similarity index 100% rename from static/resources/js/harbor.config.js rename to src/ui/static/resources/js/harbor.config.js diff --git a/static/resources/js/harbor.constants.js b/src/ui/static/resources/js/harbor.constants.js similarity index 100% rename from static/resources/js/harbor.constants.js rename to src/ui/static/resources/js/harbor.constants.js diff --git a/static/resources/js/harbor.data.js b/src/ui/static/resources/js/harbor.data.js similarity index 100% rename from static/resources/js/harbor.data.js rename to src/ui/static/resources/js/harbor.data.js diff --git a/static/resources/js/harbor.initialize.js b/src/ui/static/resources/js/harbor.initialize.js similarity index 100% rename from static/resources/js/harbor.initialize.js rename to src/ui/static/resources/js/harbor.initialize.js diff --git a/static/resources/js/harbor.module.js b/src/ui/static/resources/js/harbor.module.js similarity index 100% rename from static/resources/js/harbor.module.js rename to src/ui/static/resources/js/harbor.module.js diff --git a/static/resources/js/layout/account-setting/account-setting.controller.js b/src/ui/static/resources/js/layout/account-setting/account-setting.controller.js similarity index 100% rename from static/resources/js/layout/account-setting/account-setting.controller.js rename to src/ui/static/resources/js/layout/account-setting/account-setting.controller.js diff --git a/static/resources/js/layout/account-setting/account-setting.module.js b/src/ui/static/resources/js/layout/account-setting/account-setting.module.js similarity index 100% rename from static/resources/js/layout/account-setting/account-setting.module.js rename to src/ui/static/resources/js/layout/account-setting/account-setting.module.js diff --git a/static/resources/js/layout/add-new/add-new.controller.js b/src/ui/static/resources/js/layout/add-new/add-new.controller.js similarity index 100% rename from static/resources/js/layout/add-new/add-new.controller.js rename to src/ui/static/resources/js/layout/add-new/add-new.controller.js diff --git a/static/resources/js/layout/add-new/add-new.module.js b/src/ui/static/resources/js/layout/add-new/add-new.module.js similarity index 100% rename from static/resources/js/layout/add-new/add-new.module.js rename to src/ui/static/resources/js/layout/add-new/add-new.module.js diff --git a/static/resources/js/layout/admin-option/admin-option.config.js b/src/ui/static/resources/js/layout/admin-option/admin-option.config.js similarity index 100% rename from static/resources/js/layout/admin-option/admin-option.config.js rename to src/ui/static/resources/js/layout/admin-option/admin-option.config.js diff --git a/static/resources/js/layout/admin-option/admin-option.controller.js b/src/ui/static/resources/js/layout/admin-option/admin-option.controller.js similarity index 100% rename from static/resources/js/layout/admin-option/admin-option.controller.js rename to src/ui/static/resources/js/layout/admin-option/admin-option.controller.js diff --git a/static/resources/js/layout/admin-option/admin-option.module.js b/src/ui/static/resources/js/layout/admin-option/admin-option.module.js similarity index 100% rename from static/resources/js/layout/admin-option/admin-option.module.js rename to src/ui/static/resources/js/layout/admin-option/admin-option.module.js diff --git a/static/resources/js/layout/change-password/change-password.controller.js b/src/ui/static/resources/js/layout/change-password/change-password.controller.js similarity index 100% rename from static/resources/js/layout/change-password/change-password.controller.js rename to src/ui/static/resources/js/layout/change-password/change-password.controller.js diff --git a/static/resources/js/layout/change-password/change-password.module.js b/src/ui/static/resources/js/layout/change-password/change-password.module.js similarity index 100% rename from static/resources/js/layout/change-password/change-password.module.js rename to src/ui/static/resources/js/layout/change-password/change-password.module.js diff --git a/static/resources/js/layout/dashboard/dashboard.controller.js b/src/ui/static/resources/js/layout/dashboard/dashboard.controller.js similarity index 100% rename from static/resources/js/layout/dashboard/dashboard.controller.js rename to src/ui/static/resources/js/layout/dashboard/dashboard.controller.js diff --git a/static/resources/js/layout/dashboard/dashboard.module.js b/src/ui/static/resources/js/layout/dashboard/dashboard.module.js similarity index 100% rename from static/resources/js/layout/dashboard/dashboard.module.js rename to src/ui/static/resources/js/layout/dashboard/dashboard.module.js diff --git a/static/resources/js/layout/details/details.config.js b/src/ui/static/resources/js/layout/details/details.config.js similarity index 100% rename from static/resources/js/layout/details/details.config.js rename to src/ui/static/resources/js/layout/details/details.config.js diff --git a/static/resources/js/layout/details/details.controller.js b/src/ui/static/resources/js/layout/details/details.controller.js similarity index 100% rename from static/resources/js/layout/details/details.controller.js rename to src/ui/static/resources/js/layout/details/details.controller.js diff --git a/static/resources/js/layout/details/details.module.js b/src/ui/static/resources/js/layout/details/details.module.js similarity index 100% rename from static/resources/js/layout/details/details.module.js rename to src/ui/static/resources/js/layout/details/details.module.js diff --git a/static/resources/js/layout/footer/footer.controller.js b/src/ui/static/resources/js/layout/footer/footer.controller.js similarity index 100% rename from static/resources/js/layout/footer/footer.controller.js rename to src/ui/static/resources/js/layout/footer/footer.controller.js diff --git a/static/resources/js/layout/footer/footer.module.js b/src/ui/static/resources/js/layout/footer/footer.module.js similarity index 100% rename from static/resources/js/layout/footer/footer.module.js rename to src/ui/static/resources/js/layout/footer/footer.module.js diff --git a/static/resources/js/layout/forgot-password/forgot-password.controller.js b/src/ui/static/resources/js/layout/forgot-password/forgot-password.controller.js similarity index 100% rename from static/resources/js/layout/forgot-password/forgot-password.controller.js rename to src/ui/static/resources/js/layout/forgot-password/forgot-password.controller.js diff --git a/static/resources/js/layout/forgot-password/forgot-password.module.js b/src/ui/static/resources/js/layout/forgot-password/forgot-password.module.js similarity index 100% rename from static/resources/js/layout/forgot-password/forgot-password.module.js rename to src/ui/static/resources/js/layout/forgot-password/forgot-password.module.js diff --git a/static/resources/js/layout/header/header.controller.js b/src/ui/static/resources/js/layout/header/header.controller.js similarity index 100% rename from static/resources/js/layout/header/header.controller.js rename to src/ui/static/resources/js/layout/header/header.controller.js diff --git a/static/resources/js/layout/header/header.module.js b/src/ui/static/resources/js/layout/header/header.module.js similarity index 100% rename from static/resources/js/layout/header/header.module.js rename to src/ui/static/resources/js/layout/header/header.module.js diff --git a/static/resources/js/layout/index/index.controller.js b/src/ui/static/resources/js/layout/index/index.controller.js similarity index 100% rename from static/resources/js/layout/index/index.controller.js rename to src/ui/static/resources/js/layout/index/index.controller.js diff --git a/static/resources/js/layout/index/index.module.js b/src/ui/static/resources/js/layout/index/index.module.js similarity index 100% rename from static/resources/js/layout/index/index.module.js rename to src/ui/static/resources/js/layout/index/index.module.js diff --git a/static/resources/js/layout/navigation/navigation-admin-options.directive.html b/src/ui/static/resources/js/layout/navigation/navigation-admin-options.directive.html similarity index 100% rename from static/resources/js/layout/navigation/navigation-admin-options.directive.html rename to src/ui/static/resources/js/layout/navigation/navigation-admin-options.directive.html diff --git a/static/resources/js/layout/navigation/navigation-admin-options.directive.js b/src/ui/static/resources/js/layout/navigation/navigation-admin-options.directive.js similarity index 100% rename from static/resources/js/layout/navigation/navigation-admin-options.directive.js rename to src/ui/static/resources/js/layout/navigation/navigation-admin-options.directive.js diff --git a/static/resources/js/layout/navigation/navigation-details.directive.js b/src/ui/static/resources/js/layout/navigation/navigation-details.directive.js similarity index 100% rename from static/resources/js/layout/navigation/navigation-details.directive.js rename to src/ui/static/resources/js/layout/navigation/navigation-details.directive.js diff --git a/static/resources/js/layout/navigation/navigation-header.directive.js b/src/ui/static/resources/js/layout/navigation/navigation-header.directive.js similarity index 100% rename from static/resources/js/layout/navigation/navigation-header.directive.js rename to src/ui/static/resources/js/layout/navigation/navigation-header.directive.js diff --git a/static/resources/js/layout/navigation/navigation.module.js b/src/ui/static/resources/js/layout/navigation/navigation.module.js similarity index 100% rename from static/resources/js/layout/navigation/navigation.module.js rename to src/ui/static/resources/js/layout/navigation/navigation.module.js diff --git a/static/resources/js/layout/project/project.controller.js b/src/ui/static/resources/js/layout/project/project.controller.js similarity index 100% rename from static/resources/js/layout/project/project.controller.js rename to src/ui/static/resources/js/layout/project/project.controller.js diff --git a/static/resources/js/layout/project/project.module.js b/src/ui/static/resources/js/layout/project/project.module.js similarity index 100% rename from static/resources/js/layout/project/project.module.js rename to src/ui/static/resources/js/layout/project/project.module.js diff --git a/static/resources/js/layout/reset-password/reset-password.controller.js b/src/ui/static/resources/js/layout/reset-password/reset-password.controller.js similarity index 100% rename from static/resources/js/layout/reset-password/reset-password.controller.js rename to src/ui/static/resources/js/layout/reset-password/reset-password.controller.js diff --git a/static/resources/js/layout/reset-password/reset-password.module.js b/src/ui/static/resources/js/layout/reset-password/reset-password.module.js similarity index 100% rename from static/resources/js/layout/reset-password/reset-password.module.js rename to src/ui/static/resources/js/layout/reset-password/reset-password.module.js diff --git a/static/resources/js/layout/search/search.controller.js b/src/ui/static/resources/js/layout/search/search.controller.js similarity index 100% rename from static/resources/js/layout/search/search.controller.js rename to src/ui/static/resources/js/layout/search/search.controller.js diff --git a/static/resources/js/layout/search/search.module.js b/src/ui/static/resources/js/layout/search/search.module.js similarity index 100% rename from static/resources/js/layout/search/search.module.js rename to src/ui/static/resources/js/layout/search/search.module.js diff --git a/static/resources/js/layout/sign-up/sign-up.controller.js b/src/ui/static/resources/js/layout/sign-up/sign-up.controller.js similarity index 100% rename from static/resources/js/layout/sign-up/sign-up.controller.js rename to src/ui/static/resources/js/layout/sign-up/sign-up.controller.js diff --git a/static/resources/js/layout/sign-up/sign-up.module.js b/src/ui/static/resources/js/layout/sign-up/sign-up.module.js similarity index 100% rename from static/resources/js/layout/sign-up/sign-up.module.js rename to src/ui/static/resources/js/layout/sign-up/sign-up.module.js diff --git a/static/resources/js/services/destination/services.create-destination.js b/src/ui/static/resources/js/services/destination/services.create-destination.js similarity index 100% rename from static/resources/js/services/destination/services.create-destination.js rename to src/ui/static/resources/js/services/destination/services.create-destination.js diff --git a/static/resources/js/services/destination/services.delete-destination.js b/src/ui/static/resources/js/services/destination/services.delete-destination.js similarity index 100% rename from static/resources/js/services/destination/services.delete-destination.js rename to src/ui/static/resources/js/services/destination/services.delete-destination.js diff --git a/static/resources/js/services/destination/services.destination.module.js b/src/ui/static/resources/js/services/destination/services.destination.module.js similarity index 100% rename from static/resources/js/services/destination/services.destination.module.js rename to src/ui/static/resources/js/services/destination/services.destination.module.js diff --git a/static/resources/js/services/destination/services.list-destination-policy.js b/src/ui/static/resources/js/services/destination/services.list-destination-policy.js similarity index 100% rename from static/resources/js/services/destination/services.list-destination-policy.js rename to src/ui/static/resources/js/services/destination/services.list-destination-policy.js diff --git a/static/resources/js/services/destination/services.list-destination.js b/src/ui/static/resources/js/services/destination/services.list-destination.js similarity index 100% rename from static/resources/js/services/destination/services.list-destination.js rename to src/ui/static/resources/js/services/destination/services.list-destination.js diff --git a/static/resources/js/services/destination/services.ping-destination.js b/src/ui/static/resources/js/services/destination/services.ping-destination.js similarity index 100% rename from static/resources/js/services/destination/services.ping-destination.js rename to src/ui/static/resources/js/services/destination/services.ping-destination.js diff --git a/static/resources/js/services/destination/services.update-destination.js b/src/ui/static/resources/js/services/destination/services.update-destination.js similarity index 100% rename from static/resources/js/services/destination/services.update-destination.js rename to src/ui/static/resources/js/services/destination/services.update-destination.js diff --git a/static/resources/js/services/i18n/locale_messages_en-US.js b/src/ui/static/resources/js/services/i18n/locale_messages_en-US.js similarity index 100% rename from static/resources/js/services/i18n/locale_messages_en-US.js rename to src/ui/static/resources/js/services/i18n/locale_messages_en-US.js diff --git a/static/resources/js/services/i18n/locale_messages_zh-CN.js b/src/ui/static/resources/js/services/i18n/locale_messages_zh-CN.js similarity index 100% rename from static/resources/js/services/i18n/locale_messages_zh-CN.js rename to src/ui/static/resources/js/services/i18n/locale_messages_zh-CN.js diff --git a/static/resources/js/services/i18n/services.i18n.js b/src/ui/static/resources/js/services/i18n/services.i18n.js similarity index 100% rename from static/resources/js/services/i18n/services.i18n.js rename to src/ui/static/resources/js/services/i18n/services.i18n.js diff --git a/static/resources/js/services/i18n/services.i18n.module.js b/src/ui/static/resources/js/services/i18n/services.i18n.module.js similarity index 100% rename from static/resources/js/services/i18n/services.i18n.module.js rename to src/ui/static/resources/js/services/i18n/services.i18n.module.js diff --git a/static/resources/js/services/log/services.list-integrated-log.js b/src/ui/static/resources/js/services/log/services.list-integrated-log.js similarity index 100% rename from static/resources/js/services/log/services.list-integrated-log.js rename to src/ui/static/resources/js/services/log/services.list-integrated-log.js diff --git a/static/resources/js/services/log/services.list-log.js b/src/ui/static/resources/js/services/log/services.list-log.js similarity index 100% rename from static/resources/js/services/log/services.list-log.js rename to src/ui/static/resources/js/services/log/services.list-log.js diff --git a/static/resources/js/services/log/services.log.module.js b/src/ui/static/resources/js/services/log/services.log.module.js similarity index 100% rename from static/resources/js/services/log/services.log.module.js rename to src/ui/static/resources/js/services/log/services.log.module.js diff --git a/static/resources/js/services/project-member/services.add-project-member.js b/src/ui/static/resources/js/services/project-member/services.add-project-member.js similarity index 100% rename from static/resources/js/services/project-member/services.add-project-member.js rename to src/ui/static/resources/js/services/project-member/services.add-project-member.js diff --git a/static/resources/js/services/project-member/services.current-project-member.js b/src/ui/static/resources/js/services/project-member/services.current-project-member.js similarity index 100% rename from static/resources/js/services/project-member/services.current-project-member.js rename to src/ui/static/resources/js/services/project-member/services.current-project-member.js diff --git a/static/resources/js/services/project-member/services.delete-project-member.js b/src/ui/static/resources/js/services/project-member/services.delete-project-member.js similarity index 100% rename from static/resources/js/services/project-member/services.delete-project-member.js rename to src/ui/static/resources/js/services/project-member/services.delete-project-member.js diff --git a/static/resources/js/services/project-member/services.edit-project-member.js b/src/ui/static/resources/js/services/project-member/services.edit-project-member.js similarity index 100% rename from static/resources/js/services/project-member/services.edit-project-member.js rename to src/ui/static/resources/js/services/project-member/services.edit-project-member.js diff --git a/static/resources/js/services/project-member/services.list-project-member.js b/src/ui/static/resources/js/services/project-member/services.list-project-member.js similarity index 100% rename from static/resources/js/services/project-member/services.list-project-member.js rename to src/ui/static/resources/js/services/project-member/services.list-project-member.js diff --git a/static/resources/js/services/project-member/services.project-member.module.js b/src/ui/static/resources/js/services/project-member/services.project-member.module.js similarity index 100% rename from static/resources/js/services/project-member/services.project-member.module.js rename to src/ui/static/resources/js/services/project-member/services.project-member.module.js diff --git a/static/resources/js/services/project/services.add-project.js b/src/ui/static/resources/js/services/project/services.add-project.js similarity index 100% rename from static/resources/js/services/project/services.add-project.js rename to src/ui/static/resources/js/services/project/services.add-project.js diff --git a/static/resources/js/services/project/services.delete-project.js b/src/ui/static/resources/js/services/project/services.delete-project.js similarity index 100% rename from static/resources/js/services/project/services.delete-project.js rename to src/ui/static/resources/js/services/project/services.delete-project.js diff --git a/static/resources/js/services/project/services.edit-project.js b/src/ui/static/resources/js/services/project/services.edit-project.js similarity index 100% rename from static/resources/js/services/project/services.edit-project.js rename to src/ui/static/resources/js/services/project/services.edit-project.js diff --git a/static/resources/js/services/project/services.get-project-by-id.js b/src/ui/static/resources/js/services/project/services.get-project-by-id.js similarity index 100% rename from static/resources/js/services/project/services.get-project-by-id.js rename to src/ui/static/resources/js/services/project/services.get-project-by-id.js diff --git a/static/resources/js/services/project/services.list-project.js b/src/ui/static/resources/js/services/project/services.list-project.js similarity index 100% rename from static/resources/js/services/project/services.list-project.js rename to src/ui/static/resources/js/services/project/services.list-project.js diff --git a/static/resources/js/services/project/services.project.module.js b/src/ui/static/resources/js/services/project/services.project.module.js similarity index 100% rename from static/resources/js/services/project/services.project.module.js rename to src/ui/static/resources/js/services/project/services.project.module.js diff --git a/static/resources/js/services/project/services.stat-project.js b/src/ui/static/resources/js/services/project/services.stat-project.js similarity index 100% rename from static/resources/js/services/project/services.stat-project.js rename to src/ui/static/resources/js/services/project/services.stat-project.js diff --git a/static/resources/js/services/project/services.toggle-project-publicity.js b/src/ui/static/resources/js/services/project/services.toggle-project-publicity.js similarity index 100% rename from static/resources/js/services/project/services.toggle-project-publicity.js rename to src/ui/static/resources/js/services/project/services.toggle-project-publicity.js diff --git a/static/resources/js/services/replication-job/services.list-replication-job.js b/src/ui/static/resources/js/services/replication-job/services.list-replication-job.js similarity index 100% rename from static/resources/js/services/replication-job/services.list-replication-job.js rename to src/ui/static/resources/js/services/replication-job/services.list-replication-job.js diff --git a/static/resources/js/services/replication-job/services.replication-job.module.js b/src/ui/static/resources/js/services/replication-job/services.replication-job.module.js similarity index 100% rename from static/resources/js/services/replication-job/services.replication-job.module.js rename to src/ui/static/resources/js/services/replication-job/services.replication-job.module.js diff --git a/static/resources/js/services/replication-policy/services.create-replication-policy.js b/src/ui/static/resources/js/services/replication-policy/services.create-replication-policy.js similarity index 100% rename from static/resources/js/services/replication-policy/services.create-replication-policy.js rename to src/ui/static/resources/js/services/replication-policy/services.create-replication-policy.js diff --git a/static/resources/js/services/replication-policy/services.delete-replication-policy.js b/src/ui/static/resources/js/services/replication-policy/services.delete-replication-policy.js similarity index 100% rename from static/resources/js/services/replication-policy/services.delete-replication-policy.js rename to src/ui/static/resources/js/services/replication-policy/services.delete-replication-policy.js diff --git a/static/resources/js/services/replication-policy/services.list-replication-policy.js b/src/ui/static/resources/js/services/replication-policy/services.list-replication-policy.js similarity index 100% rename from static/resources/js/services/replication-policy/services.list-replication-policy.js rename to src/ui/static/resources/js/services/replication-policy/services.list-replication-policy.js diff --git a/static/resources/js/services/replication-policy/services.replication-policy.module.js b/src/ui/static/resources/js/services/replication-policy/services.replication-policy.module.js similarity index 100% rename from static/resources/js/services/replication-policy/services.replication-policy.module.js rename to src/ui/static/resources/js/services/replication-policy/services.replication-policy.module.js diff --git a/static/resources/js/services/replication-policy/services.toggle-replication-policy.js b/src/ui/static/resources/js/services/replication-policy/services.toggle-replication-policy.js similarity index 100% rename from static/resources/js/services/replication-policy/services.toggle-replication-policy.js rename to src/ui/static/resources/js/services/replication-policy/services.toggle-replication-policy.js diff --git a/static/resources/js/services/replication-policy/services.update-replication-policy.js b/src/ui/static/resources/js/services/replication-policy/services.update-replication-policy.js similarity index 100% rename from static/resources/js/services/replication-policy/services.update-replication-policy.js rename to src/ui/static/resources/js/services/replication-policy/services.update-replication-policy.js diff --git a/static/resources/js/services/repository/services.delete-repository.js b/src/ui/static/resources/js/services/repository/services.delete-repository.js similarity index 100% rename from static/resources/js/services/repository/services.delete-repository.js rename to src/ui/static/resources/js/services/repository/services.delete-repository.js diff --git a/static/resources/js/services/repository/services.list-manifest.js b/src/ui/static/resources/js/services/repository/services.list-manifest.js similarity index 100% rename from static/resources/js/services/repository/services.list-manifest.js rename to src/ui/static/resources/js/services/repository/services.list-manifest.js diff --git a/static/resources/js/services/repository/services.list-repository.js b/src/ui/static/resources/js/services/repository/services.list-repository.js similarity index 100% rename from static/resources/js/services/repository/services.list-repository.js rename to src/ui/static/resources/js/services/repository/services.list-repository.js diff --git a/static/resources/js/services/repository/services.list-tag.js b/src/ui/static/resources/js/services/repository/services.list-tag.js similarity index 100% rename from static/resources/js/services/repository/services.list-tag.js rename to src/ui/static/resources/js/services/repository/services.list-tag.js diff --git a/static/resources/js/services/repository/services.list-top-repository.js b/src/ui/static/resources/js/services/repository/services.list-top-repository.js similarity index 100% rename from static/resources/js/services/repository/services.list-top-repository.js rename to src/ui/static/resources/js/services/repository/services.list-top-repository.js diff --git a/static/resources/js/services/repository/services.repository.module.js b/src/ui/static/resources/js/services/repository/services.repository.module.js similarity index 100% rename from static/resources/js/services/repository/services.repository.module.js rename to src/ui/static/resources/js/services/repository/services.repository.module.js diff --git a/static/resources/js/services/search/services.search.js b/src/ui/static/resources/js/services/search/services.search.js similarity index 100% rename from static/resources/js/services/search/services.search.js rename to src/ui/static/resources/js/services/search/services.search.js diff --git a/static/resources/js/services/search/services.search.module.js b/src/ui/static/resources/js/services/search/services.search.module.js similarity index 100% rename from static/resources/js/services/search/services.search.module.js rename to src/ui/static/resources/js/services/search/services.search.module.js diff --git a/static/resources/js/services/user/services.change-password.js b/src/ui/static/resources/js/services/user/services.change-password.js similarity index 100% rename from static/resources/js/services/user/services.change-password.js rename to src/ui/static/resources/js/services/user/services.change-password.js diff --git a/static/resources/js/services/user/services.current-user.js b/src/ui/static/resources/js/services/user/services.current-user.js similarity index 100% rename from static/resources/js/services/user/services.current-user.js rename to src/ui/static/resources/js/services/user/services.current-user.js diff --git a/static/resources/js/services/user/services.delete-user.js b/src/ui/static/resources/js/services/user/services.delete-user.js similarity index 100% rename from static/resources/js/services/user/services.delete-user.js rename to src/ui/static/resources/js/services/user/services.delete-user.js diff --git a/static/resources/js/services/user/services.list-user.js b/src/ui/static/resources/js/services/user/services.list-user.js similarity index 100% rename from static/resources/js/services/user/services.list-user.js rename to src/ui/static/resources/js/services/user/services.list-user.js diff --git a/static/resources/js/services/user/services.log-out.js b/src/ui/static/resources/js/services/user/services.log-out.js similarity index 100% rename from static/resources/js/services/user/services.log-out.js rename to src/ui/static/resources/js/services/user/services.log-out.js diff --git a/static/resources/js/services/user/services.reset-password.js b/src/ui/static/resources/js/services/user/services.reset-password.js similarity index 100% rename from static/resources/js/services/user/services.reset-password.js rename to src/ui/static/resources/js/services/user/services.reset-password.js diff --git a/static/resources/js/services/user/services.send-mail.js b/src/ui/static/resources/js/services/user/services.send-mail.js similarity index 100% rename from static/resources/js/services/user/services.send-mail.js rename to src/ui/static/resources/js/services/user/services.send-mail.js diff --git a/static/resources/js/services/user/services.sign-in.js b/src/ui/static/resources/js/services/user/services.sign-in.js similarity index 100% rename from static/resources/js/services/user/services.sign-in.js rename to src/ui/static/resources/js/services/user/services.sign-in.js diff --git a/static/resources/js/services/user/services.sign-up.js b/src/ui/static/resources/js/services/user/services.sign-up.js similarity index 100% rename from static/resources/js/services/user/services.sign-up.js rename to src/ui/static/resources/js/services/user/services.sign-up.js diff --git a/static/resources/js/services/user/services.toggle-admin.js b/src/ui/static/resources/js/services/user/services.toggle-admin.js similarity index 100% rename from static/resources/js/services/user/services.toggle-admin.js rename to src/ui/static/resources/js/services/user/services.toggle-admin.js diff --git a/static/resources/js/services/user/services.update-user.js b/src/ui/static/resources/js/services/user/services.update-user.js similarity index 100% rename from static/resources/js/services/user/services.update-user.js rename to src/ui/static/resources/js/services/user/services.update-user.js diff --git a/static/resources/js/services/user/services.user-exist.js b/src/ui/static/resources/js/services/user/services.user-exist.js similarity index 100% rename from static/resources/js/services/user/services.user-exist.js rename to src/ui/static/resources/js/services/user/services.user-exist.js diff --git a/static/resources/js/services/user/services.user.module.js b/src/ui/static/resources/js/services/user/services.user.module.js similarity index 100% rename from static/resources/js/services/user/services.user.module.js rename to src/ui/static/resources/js/services/user/services.user.module.js diff --git a/static/resources/js/session/session.current-user.js b/src/ui/static/resources/js/session/session.current-user.js similarity index 100% rename from static/resources/js/session/session.current-user.js rename to src/ui/static/resources/js/session/session.current-user.js diff --git a/static/resources/js/session/session.module.js b/src/ui/static/resources/js/session/session.module.js similarity index 100% rename from static/resources/js/session/session.module.js rename to src/ui/static/resources/js/session/session.module.js diff --git a/static/vendors/angularjs/angular-cookies.min.js b/src/ui/static/vendors/angularjs/angular-cookies.min.js similarity index 100% rename from static/vendors/angularjs/angular-cookies.min.js rename to src/ui/static/vendors/angularjs/angular-cookies.min.js diff --git a/static/vendors/angularjs/angular-messages.min.js b/src/ui/static/vendors/angularjs/angular-messages.min.js similarity index 100% rename from static/vendors/angularjs/angular-messages.min.js rename to src/ui/static/vendors/angularjs/angular-messages.min.js diff --git a/static/vendors/angularjs/angular.min.js b/src/ui/static/vendors/angularjs/angular.min.js similarity index 100% rename from static/vendors/angularjs/angular.min.js rename to src/ui/static/vendors/angularjs/angular.min.js diff --git a/static/vendors/bootstrap-3.3.6/css/bootstrap.min.css b/src/ui/static/vendors/bootstrap-3.3.6/css/bootstrap.min.css similarity index 100% rename from static/vendors/bootstrap-3.3.6/css/bootstrap.min.css rename to src/ui/static/vendors/bootstrap-3.3.6/css/bootstrap.min.css diff --git a/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.eot b/src/ui/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.eot rename to src/ui/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.eot diff --git a/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.svg b/src/ui/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.svg rename to src/ui/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.svg diff --git a/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.ttf b/src/ui/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.ttf rename to src/ui/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.ttf diff --git a/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.woff b/src/ui/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.woff rename to src/ui/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.woff diff --git a/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.woff2 b/src/ui/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.woff2 rename to src/ui/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.woff2 diff --git a/static/vendors/bootstrap-3.3.6/js/bootstrap.min.js b/src/ui/static/vendors/bootstrap-3.3.6/js/bootstrap.min.js similarity index 100% rename from static/vendors/bootstrap-3.3.6/js/bootstrap.min.js rename to src/ui/static/vendors/bootstrap-3.3.6/js/bootstrap.min.js diff --git a/static/vendors/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css b/src/ui/static/vendors/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css similarity index 100% rename from static/vendors/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css rename to src/ui/static/vendors/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css diff --git a/static/vendors/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js b/src/ui/static/vendors/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js similarity index 100% rename from static/vendors/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js rename to src/ui/static/vendors/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js diff --git a/static/vendors/jquery/jquery-1.11.2.min.js b/src/ui/static/vendors/jquery/jquery-1.11.2.min.js similarity index 100% rename from static/vendors/jquery/jquery-1.11.2.min.js rename to src/ui/static/vendors/jquery/jquery-1.11.2.min.js diff --git a/static/vendors/moment/min/moment-with-locales.min.js b/src/ui/static/vendors/moment/min/moment-with-locales.min.js similarity index 100% rename from static/vendors/moment/min/moment-with-locales.min.js rename to src/ui/static/vendors/moment/min/moment-with-locales.min.js diff --git a/ui/ui_test.go b/src/ui/ui_test.go similarity index 100% rename from ui/ui_test.go rename to src/ui/ui_test.go diff --git a/views/account-settings.htm b/src/ui/views/account-settings.htm similarity index 100% rename from views/account-settings.htm rename to src/ui/views/account-settings.htm diff --git a/views/admin-options.htm b/src/ui/views/admin-options.htm similarity index 100% rename from views/admin-options.htm rename to src/ui/views/admin-options.htm diff --git a/views/change-password.htm b/src/ui/views/change-password.htm similarity index 100% rename from views/change-password.htm rename to src/ui/views/change-password.htm diff --git a/views/dashboard.htm b/src/ui/views/dashboard.htm similarity index 100% rename from views/dashboard.htm rename to src/ui/views/dashboard.htm diff --git a/views/forgot-password.htm b/src/ui/views/forgot-password.htm similarity index 100% rename from views/forgot-password.htm rename to src/ui/views/forgot-password.htm diff --git a/views/index.htm b/src/ui/views/index.htm similarity index 100% rename from views/index.htm rename to src/ui/views/index.htm diff --git a/views/layout.htm b/src/ui/views/layout.htm similarity index 100% rename from views/layout.htm rename to src/ui/views/layout.htm diff --git a/views/mail.tpl b/src/ui/views/mail.tpl similarity index 100% rename from views/mail.tpl rename to src/ui/views/mail.tpl diff --git a/views/navigation-detail.htm b/src/ui/views/navigation-detail.htm similarity index 100% rename from views/navigation-detail.htm rename to src/ui/views/navigation-detail.htm diff --git a/views/navigation-header.htm b/src/ui/views/navigation-header.htm similarity index 100% rename from views/navigation-header.htm rename to src/ui/views/navigation-header.htm diff --git a/views/optional-menu.htm b/src/ui/views/optional-menu.htm similarity index 100% rename from views/optional-menu.htm rename to src/ui/views/optional-menu.htm diff --git a/views/project.htm b/src/ui/views/project.htm similarity index 100% rename from views/project.htm rename to src/ui/views/project.htm diff --git a/views/repository.htm b/src/ui/views/repository.htm similarity index 100% rename from views/repository.htm rename to src/ui/views/repository.htm diff --git a/views/reset-password-mail.tpl b/src/ui/views/reset-password-mail.tpl similarity index 100% rename from views/reset-password-mail.tpl rename to src/ui/views/reset-password-mail.tpl diff --git a/views/reset-password.htm b/src/ui/views/reset-password.htm similarity index 100% rename from views/reset-password.htm rename to src/ui/views/reset-password.htm diff --git a/views/search.htm b/src/ui/views/search.htm similarity index 100% rename from views/search.htm rename to src/ui/views/search.htm diff --git a/views/sections/footer-content.htm b/src/ui/views/sections/footer-content.htm similarity index 100% rename from views/sections/footer-content.htm rename to src/ui/views/sections/footer-content.htm diff --git a/views/sections/footer-include.htm b/src/ui/views/sections/footer-include.htm similarity index 100% rename from views/sections/footer-include.htm rename to src/ui/views/sections/footer-include.htm diff --git a/views/sections/header-content.htm b/src/ui/views/sections/header-content.htm similarity index 100% rename from views/sections/header-content.htm rename to src/ui/views/sections/header-content.htm diff --git a/views/sections/header-include.htm b/src/ui/views/sections/header-include.htm similarity index 100% rename from views/sections/header-include.htm rename to src/ui/views/sections/header-include.htm diff --git a/views/sections/script-include.htm b/src/ui/views/sections/script-include.htm similarity index 100% rename from views/sections/script-include.htm rename to src/ui/views/sections/script-include.htm diff --git a/views/sections/script-min-include.htm b/src/ui/views/sections/script-min-include.htm similarity index 100% rename from views/sections/script-min-include.htm rename to src/ui/views/sections/script-min-include.htm diff --git a/views/sign-in.htm b/src/ui/views/sign-in.htm similarity index 100% rename from views/sign-in.htm rename to src/ui/views/sign-in.htm diff --git a/views/sign-up.htm b/src/ui/views/sign-up.htm similarity index 100% rename from views/sign-up.htm rename to src/ui/views/sign-up.htm diff --git a/vendor/github.com/Sirupsen/logrus/CHANGELOG.md b/src/vendor/github.com/Sirupsen/logrus/CHANGELOG.md similarity index 100% rename from vendor/github.com/Sirupsen/logrus/CHANGELOG.md rename to src/vendor/github.com/Sirupsen/logrus/CHANGELOG.md diff --git a/vendor/github.com/Sirupsen/logrus/LICENSE b/src/vendor/github.com/Sirupsen/logrus/LICENSE similarity index 100% rename from vendor/github.com/Sirupsen/logrus/LICENSE rename to src/vendor/github.com/Sirupsen/logrus/LICENSE diff --git a/vendor/github.com/Sirupsen/logrus/README.md b/src/vendor/github.com/Sirupsen/logrus/README.md similarity index 100% rename from vendor/github.com/Sirupsen/logrus/README.md rename to src/vendor/github.com/Sirupsen/logrus/README.md diff --git a/vendor/github.com/Sirupsen/logrus/alt_exit.go b/src/vendor/github.com/Sirupsen/logrus/alt_exit.go similarity index 100% rename from vendor/github.com/Sirupsen/logrus/alt_exit.go rename to src/vendor/github.com/Sirupsen/logrus/alt_exit.go diff --git a/vendor/github.com/Sirupsen/logrus/doc.go b/src/vendor/github.com/Sirupsen/logrus/doc.go similarity index 100% rename from vendor/github.com/Sirupsen/logrus/doc.go rename to src/vendor/github.com/Sirupsen/logrus/doc.go diff --git a/vendor/github.com/Sirupsen/logrus/entry.go b/src/vendor/github.com/Sirupsen/logrus/entry.go similarity index 100% rename from vendor/github.com/Sirupsen/logrus/entry.go rename to src/vendor/github.com/Sirupsen/logrus/entry.go diff --git a/vendor/github.com/Sirupsen/logrus/exported.go b/src/vendor/github.com/Sirupsen/logrus/exported.go similarity index 100% rename from vendor/github.com/Sirupsen/logrus/exported.go rename to src/vendor/github.com/Sirupsen/logrus/exported.go diff --git a/vendor/github.com/Sirupsen/logrus/formatter.go b/src/vendor/github.com/Sirupsen/logrus/formatter.go similarity index 100% rename from vendor/github.com/Sirupsen/logrus/formatter.go rename to src/vendor/github.com/Sirupsen/logrus/formatter.go diff --git a/vendor/github.com/Sirupsen/logrus/hooks.go b/src/vendor/github.com/Sirupsen/logrus/hooks.go similarity index 100% rename from vendor/github.com/Sirupsen/logrus/hooks.go rename to src/vendor/github.com/Sirupsen/logrus/hooks.go diff --git a/vendor/github.com/Sirupsen/logrus/json_formatter.go b/src/vendor/github.com/Sirupsen/logrus/json_formatter.go similarity index 100% rename from vendor/github.com/Sirupsen/logrus/json_formatter.go rename to src/vendor/github.com/Sirupsen/logrus/json_formatter.go diff --git a/vendor/github.com/Sirupsen/logrus/logger.go b/src/vendor/github.com/Sirupsen/logrus/logger.go similarity index 100% rename from vendor/github.com/Sirupsen/logrus/logger.go rename to src/vendor/github.com/Sirupsen/logrus/logger.go diff --git a/vendor/github.com/Sirupsen/logrus/logrus.go b/src/vendor/github.com/Sirupsen/logrus/logrus.go similarity index 100% rename from vendor/github.com/Sirupsen/logrus/logrus.go rename to src/vendor/github.com/Sirupsen/logrus/logrus.go diff --git a/vendor/github.com/Sirupsen/logrus/terminal_bsd.go b/src/vendor/github.com/Sirupsen/logrus/terminal_bsd.go similarity index 100% rename from vendor/github.com/Sirupsen/logrus/terminal_bsd.go rename to src/vendor/github.com/Sirupsen/logrus/terminal_bsd.go diff --git a/vendor/github.com/Sirupsen/logrus/terminal_linux.go b/src/vendor/github.com/Sirupsen/logrus/terminal_linux.go similarity index 100% rename from vendor/github.com/Sirupsen/logrus/terminal_linux.go rename to src/vendor/github.com/Sirupsen/logrus/terminal_linux.go diff --git a/vendor/github.com/Sirupsen/logrus/terminal_notwindows.go b/src/vendor/github.com/Sirupsen/logrus/terminal_notwindows.go similarity index 100% rename from vendor/github.com/Sirupsen/logrus/terminal_notwindows.go rename to src/vendor/github.com/Sirupsen/logrus/terminal_notwindows.go diff --git a/vendor/github.com/Sirupsen/logrus/terminal_solaris.go b/src/vendor/github.com/Sirupsen/logrus/terminal_solaris.go similarity index 100% rename from vendor/github.com/Sirupsen/logrus/terminal_solaris.go rename to src/vendor/github.com/Sirupsen/logrus/terminal_solaris.go diff --git a/vendor/github.com/Sirupsen/logrus/terminal_windows.go b/src/vendor/github.com/Sirupsen/logrus/terminal_windows.go similarity index 100% rename from vendor/github.com/Sirupsen/logrus/terminal_windows.go rename to src/vendor/github.com/Sirupsen/logrus/terminal_windows.go diff --git a/vendor/github.com/Sirupsen/logrus/text_formatter.go b/src/vendor/github.com/Sirupsen/logrus/text_formatter.go similarity index 100% rename from vendor/github.com/Sirupsen/logrus/text_formatter.go rename to src/vendor/github.com/Sirupsen/logrus/text_formatter.go diff --git a/vendor/github.com/Sirupsen/logrus/writer.go b/src/vendor/github.com/Sirupsen/logrus/writer.go similarity index 100% rename from vendor/github.com/Sirupsen/logrus/writer.go rename to src/vendor/github.com/Sirupsen/logrus/writer.go diff --git a/vendor/github.com/Unknwon/goconfig/LICENSE b/src/vendor/github.com/Unknwon/goconfig/LICENSE similarity index 100% rename from vendor/github.com/Unknwon/goconfig/LICENSE rename to src/vendor/github.com/Unknwon/goconfig/LICENSE diff --git a/vendor/github.com/Unknwon/goconfig/README.md b/src/vendor/github.com/Unknwon/goconfig/README.md similarity index 100% rename from vendor/github.com/Unknwon/goconfig/README.md rename to src/vendor/github.com/Unknwon/goconfig/README.md diff --git a/vendor/github.com/Unknwon/goconfig/README_ZH.md b/src/vendor/github.com/Unknwon/goconfig/README_ZH.md similarity index 100% rename from vendor/github.com/Unknwon/goconfig/README_ZH.md rename to src/vendor/github.com/Unknwon/goconfig/README_ZH.md diff --git a/vendor/github.com/Unknwon/goconfig/conf.go b/src/vendor/github.com/Unknwon/goconfig/conf.go similarity index 100% rename from vendor/github.com/Unknwon/goconfig/conf.go rename to src/vendor/github.com/Unknwon/goconfig/conf.go diff --git a/vendor/github.com/Unknwon/goconfig/read.go b/src/vendor/github.com/Unknwon/goconfig/read.go similarity index 100% rename from vendor/github.com/Unknwon/goconfig/read.go rename to src/vendor/github.com/Unknwon/goconfig/read.go diff --git a/vendor/github.com/Unknwon/goconfig/write.go b/src/vendor/github.com/Unknwon/goconfig/write.go similarity index 100% rename from vendor/github.com/Unknwon/goconfig/write.go rename to src/vendor/github.com/Unknwon/goconfig/write.go diff --git a/vendor/github.com/astaxie/beego/CONTRIBUTING.md b/src/vendor/github.com/astaxie/beego/CONTRIBUTING.md similarity index 100% rename from vendor/github.com/astaxie/beego/CONTRIBUTING.md rename to src/vendor/github.com/astaxie/beego/CONTRIBUTING.md diff --git a/vendor/github.com/astaxie/beego/LICENSE b/src/vendor/github.com/astaxie/beego/LICENSE similarity index 100% rename from vendor/github.com/astaxie/beego/LICENSE rename to src/vendor/github.com/astaxie/beego/LICENSE diff --git a/vendor/github.com/astaxie/beego/README.md b/src/vendor/github.com/astaxie/beego/README.md similarity index 100% rename from vendor/github.com/astaxie/beego/README.md rename to src/vendor/github.com/astaxie/beego/README.md diff --git a/vendor/github.com/astaxie/beego/admin.go b/src/vendor/github.com/astaxie/beego/admin.go similarity index 100% rename from vendor/github.com/astaxie/beego/admin.go rename to src/vendor/github.com/astaxie/beego/admin.go diff --git a/vendor/github.com/astaxie/beego/adminui.go b/src/vendor/github.com/astaxie/beego/adminui.go similarity index 100% rename from vendor/github.com/astaxie/beego/adminui.go rename to src/vendor/github.com/astaxie/beego/adminui.go diff --git a/vendor/github.com/astaxie/beego/app.go b/src/vendor/github.com/astaxie/beego/app.go similarity index 100% rename from vendor/github.com/astaxie/beego/app.go rename to src/vendor/github.com/astaxie/beego/app.go diff --git a/vendor/github.com/astaxie/beego/beego.go b/src/vendor/github.com/astaxie/beego/beego.go similarity index 100% rename from vendor/github.com/astaxie/beego/beego.go rename to src/vendor/github.com/astaxie/beego/beego.go diff --git a/vendor/github.com/astaxie/beego/cache/README.md b/src/vendor/github.com/astaxie/beego/cache/README.md similarity index 100% rename from vendor/github.com/astaxie/beego/cache/README.md rename to src/vendor/github.com/astaxie/beego/cache/README.md diff --git a/vendor/github.com/astaxie/beego/cache/cache.go b/src/vendor/github.com/astaxie/beego/cache/cache.go similarity index 100% rename from vendor/github.com/astaxie/beego/cache/cache.go rename to src/vendor/github.com/astaxie/beego/cache/cache.go diff --git a/vendor/github.com/astaxie/beego/cache/conv.go b/src/vendor/github.com/astaxie/beego/cache/conv.go similarity index 100% rename from vendor/github.com/astaxie/beego/cache/conv.go rename to src/vendor/github.com/astaxie/beego/cache/conv.go diff --git a/vendor/github.com/astaxie/beego/cache/file.go b/src/vendor/github.com/astaxie/beego/cache/file.go similarity index 100% rename from vendor/github.com/astaxie/beego/cache/file.go rename to src/vendor/github.com/astaxie/beego/cache/file.go diff --git a/vendor/github.com/astaxie/beego/cache/memory.go b/src/vendor/github.com/astaxie/beego/cache/memory.go similarity index 100% rename from vendor/github.com/astaxie/beego/cache/memory.go rename to src/vendor/github.com/astaxie/beego/cache/memory.go diff --git a/vendor/github.com/astaxie/beego/cache/redis/redis.go b/src/vendor/github.com/astaxie/beego/cache/redis/redis.go similarity index 100% rename from vendor/github.com/astaxie/beego/cache/redis/redis.go rename to src/vendor/github.com/astaxie/beego/cache/redis/redis.go diff --git a/vendor/github.com/astaxie/beego/config.go b/src/vendor/github.com/astaxie/beego/config.go similarity index 100% rename from vendor/github.com/astaxie/beego/config.go rename to src/vendor/github.com/astaxie/beego/config.go diff --git a/vendor/github.com/astaxie/beego/config/config.go b/src/vendor/github.com/astaxie/beego/config/config.go similarity index 100% rename from vendor/github.com/astaxie/beego/config/config.go rename to src/vendor/github.com/astaxie/beego/config/config.go diff --git a/vendor/github.com/astaxie/beego/config/fake.go b/src/vendor/github.com/astaxie/beego/config/fake.go similarity index 100% rename from vendor/github.com/astaxie/beego/config/fake.go rename to src/vendor/github.com/astaxie/beego/config/fake.go diff --git a/vendor/github.com/astaxie/beego/config/ini.go b/src/vendor/github.com/astaxie/beego/config/ini.go similarity index 100% rename from vendor/github.com/astaxie/beego/config/ini.go rename to src/vendor/github.com/astaxie/beego/config/ini.go diff --git a/vendor/github.com/astaxie/beego/config/json.go b/src/vendor/github.com/astaxie/beego/config/json.go similarity index 100% rename from vendor/github.com/astaxie/beego/config/json.go rename to src/vendor/github.com/astaxie/beego/config/json.go diff --git a/vendor/github.com/astaxie/beego/context/acceptencoder.go b/src/vendor/github.com/astaxie/beego/context/acceptencoder.go similarity index 100% rename from vendor/github.com/astaxie/beego/context/acceptencoder.go rename to src/vendor/github.com/astaxie/beego/context/acceptencoder.go diff --git a/vendor/github.com/astaxie/beego/context/context.go b/src/vendor/github.com/astaxie/beego/context/context.go similarity index 100% rename from vendor/github.com/astaxie/beego/context/context.go rename to src/vendor/github.com/astaxie/beego/context/context.go diff --git a/vendor/github.com/astaxie/beego/context/input.go b/src/vendor/github.com/astaxie/beego/context/input.go similarity index 100% rename from vendor/github.com/astaxie/beego/context/input.go rename to src/vendor/github.com/astaxie/beego/context/input.go diff --git a/vendor/github.com/astaxie/beego/context/output.go b/src/vendor/github.com/astaxie/beego/context/output.go similarity index 100% rename from vendor/github.com/astaxie/beego/context/output.go rename to src/vendor/github.com/astaxie/beego/context/output.go diff --git a/vendor/github.com/astaxie/beego/controller.go b/src/vendor/github.com/astaxie/beego/controller.go similarity index 100% rename from vendor/github.com/astaxie/beego/controller.go rename to src/vendor/github.com/astaxie/beego/controller.go diff --git a/vendor/github.com/astaxie/beego/doc.go b/src/vendor/github.com/astaxie/beego/doc.go similarity index 100% rename from vendor/github.com/astaxie/beego/doc.go rename to src/vendor/github.com/astaxie/beego/doc.go diff --git a/vendor/github.com/astaxie/beego/docs.go b/src/vendor/github.com/astaxie/beego/docs.go similarity index 100% rename from vendor/github.com/astaxie/beego/docs.go rename to src/vendor/github.com/astaxie/beego/docs.go diff --git a/vendor/github.com/astaxie/beego/error.go b/src/vendor/github.com/astaxie/beego/error.go similarity index 100% rename from vendor/github.com/astaxie/beego/error.go rename to src/vendor/github.com/astaxie/beego/error.go diff --git a/vendor/github.com/astaxie/beego/filter.go b/src/vendor/github.com/astaxie/beego/filter.go similarity index 100% rename from vendor/github.com/astaxie/beego/filter.go rename to src/vendor/github.com/astaxie/beego/filter.go diff --git a/vendor/github.com/astaxie/beego/flash.go b/src/vendor/github.com/astaxie/beego/flash.go similarity index 100% rename from vendor/github.com/astaxie/beego/flash.go rename to src/vendor/github.com/astaxie/beego/flash.go diff --git a/vendor/github.com/astaxie/beego/grace/conn.go b/src/vendor/github.com/astaxie/beego/grace/conn.go similarity index 100% rename from vendor/github.com/astaxie/beego/grace/conn.go rename to src/vendor/github.com/astaxie/beego/grace/conn.go diff --git a/vendor/github.com/astaxie/beego/grace/grace.go b/src/vendor/github.com/astaxie/beego/grace/grace.go similarity index 100% rename from vendor/github.com/astaxie/beego/grace/grace.go rename to src/vendor/github.com/astaxie/beego/grace/grace.go diff --git a/vendor/github.com/astaxie/beego/grace/listener.go b/src/vendor/github.com/astaxie/beego/grace/listener.go similarity index 100% rename from vendor/github.com/astaxie/beego/grace/listener.go rename to src/vendor/github.com/astaxie/beego/grace/listener.go diff --git a/vendor/github.com/astaxie/beego/grace/server.go b/src/vendor/github.com/astaxie/beego/grace/server.go similarity index 100% rename from vendor/github.com/astaxie/beego/grace/server.go rename to src/vendor/github.com/astaxie/beego/grace/server.go diff --git a/vendor/github.com/astaxie/beego/hooks.go b/src/vendor/github.com/astaxie/beego/hooks.go similarity index 100% rename from vendor/github.com/astaxie/beego/hooks.go rename to src/vendor/github.com/astaxie/beego/hooks.go diff --git a/vendor/github.com/astaxie/beego/log.go b/src/vendor/github.com/astaxie/beego/log.go similarity index 100% rename from vendor/github.com/astaxie/beego/log.go rename to src/vendor/github.com/astaxie/beego/log.go diff --git a/vendor/github.com/astaxie/beego/logs/README.md b/src/vendor/github.com/astaxie/beego/logs/README.md similarity index 100% rename from vendor/github.com/astaxie/beego/logs/README.md rename to src/vendor/github.com/astaxie/beego/logs/README.md diff --git a/vendor/github.com/astaxie/beego/logs/conn.go b/src/vendor/github.com/astaxie/beego/logs/conn.go similarity index 100% rename from vendor/github.com/astaxie/beego/logs/conn.go rename to src/vendor/github.com/astaxie/beego/logs/conn.go diff --git a/vendor/github.com/astaxie/beego/logs/console.go b/src/vendor/github.com/astaxie/beego/logs/console.go similarity index 100% rename from vendor/github.com/astaxie/beego/logs/console.go rename to src/vendor/github.com/astaxie/beego/logs/console.go diff --git a/vendor/github.com/astaxie/beego/logs/file.go b/src/vendor/github.com/astaxie/beego/logs/file.go similarity index 100% rename from vendor/github.com/astaxie/beego/logs/file.go rename to src/vendor/github.com/astaxie/beego/logs/file.go diff --git a/vendor/github.com/astaxie/beego/logs/log.go b/src/vendor/github.com/astaxie/beego/logs/log.go similarity index 100% rename from vendor/github.com/astaxie/beego/logs/log.go rename to src/vendor/github.com/astaxie/beego/logs/log.go diff --git a/vendor/github.com/astaxie/beego/logs/logger.go b/src/vendor/github.com/astaxie/beego/logs/logger.go similarity index 100% rename from vendor/github.com/astaxie/beego/logs/logger.go rename to src/vendor/github.com/astaxie/beego/logs/logger.go diff --git a/vendor/github.com/astaxie/beego/logs/multifile.go b/src/vendor/github.com/astaxie/beego/logs/multifile.go similarity index 100% rename from vendor/github.com/astaxie/beego/logs/multifile.go rename to src/vendor/github.com/astaxie/beego/logs/multifile.go diff --git a/vendor/github.com/astaxie/beego/logs/smtp.go b/src/vendor/github.com/astaxie/beego/logs/smtp.go similarity index 100% rename from vendor/github.com/astaxie/beego/logs/smtp.go rename to src/vendor/github.com/astaxie/beego/logs/smtp.go diff --git a/vendor/github.com/astaxie/beego/mime.go b/src/vendor/github.com/astaxie/beego/mime.go similarity index 100% rename from vendor/github.com/astaxie/beego/mime.go rename to src/vendor/github.com/astaxie/beego/mime.go diff --git a/vendor/github.com/astaxie/beego/namespace.go b/src/vendor/github.com/astaxie/beego/namespace.go similarity index 100% rename from vendor/github.com/astaxie/beego/namespace.go rename to src/vendor/github.com/astaxie/beego/namespace.go diff --git a/vendor/github.com/astaxie/beego/orm/README.md b/src/vendor/github.com/astaxie/beego/orm/README.md similarity index 100% rename from vendor/github.com/astaxie/beego/orm/README.md rename to src/vendor/github.com/astaxie/beego/orm/README.md diff --git a/vendor/github.com/astaxie/beego/orm/cmd.go b/src/vendor/github.com/astaxie/beego/orm/cmd.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/cmd.go rename to src/vendor/github.com/astaxie/beego/orm/cmd.go diff --git a/vendor/github.com/astaxie/beego/orm/cmd_utils.go b/src/vendor/github.com/astaxie/beego/orm/cmd_utils.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/cmd_utils.go rename to src/vendor/github.com/astaxie/beego/orm/cmd_utils.go diff --git a/vendor/github.com/astaxie/beego/orm/db.go b/src/vendor/github.com/astaxie/beego/orm/db.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/db.go rename to src/vendor/github.com/astaxie/beego/orm/db.go diff --git a/vendor/github.com/astaxie/beego/orm/db_alias.go b/src/vendor/github.com/astaxie/beego/orm/db_alias.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/db_alias.go rename to src/vendor/github.com/astaxie/beego/orm/db_alias.go diff --git a/vendor/github.com/astaxie/beego/orm/db_mysql.go b/src/vendor/github.com/astaxie/beego/orm/db_mysql.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/db_mysql.go rename to src/vendor/github.com/astaxie/beego/orm/db_mysql.go diff --git a/vendor/github.com/astaxie/beego/orm/db_oracle.go b/src/vendor/github.com/astaxie/beego/orm/db_oracle.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/db_oracle.go rename to src/vendor/github.com/astaxie/beego/orm/db_oracle.go diff --git a/vendor/github.com/astaxie/beego/orm/db_postgres.go b/src/vendor/github.com/astaxie/beego/orm/db_postgres.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/db_postgres.go rename to src/vendor/github.com/astaxie/beego/orm/db_postgres.go diff --git a/vendor/github.com/astaxie/beego/orm/db_sqlite.go b/src/vendor/github.com/astaxie/beego/orm/db_sqlite.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/db_sqlite.go rename to src/vendor/github.com/astaxie/beego/orm/db_sqlite.go diff --git a/vendor/github.com/astaxie/beego/orm/db_tables.go b/src/vendor/github.com/astaxie/beego/orm/db_tables.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/db_tables.go rename to src/vendor/github.com/astaxie/beego/orm/db_tables.go diff --git a/vendor/github.com/astaxie/beego/orm/db_tidb.go b/src/vendor/github.com/astaxie/beego/orm/db_tidb.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/db_tidb.go rename to src/vendor/github.com/astaxie/beego/orm/db_tidb.go diff --git a/vendor/github.com/astaxie/beego/orm/db_utils.go b/src/vendor/github.com/astaxie/beego/orm/db_utils.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/db_utils.go rename to src/vendor/github.com/astaxie/beego/orm/db_utils.go diff --git a/vendor/github.com/astaxie/beego/orm/models.go b/src/vendor/github.com/astaxie/beego/orm/models.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/models.go rename to src/vendor/github.com/astaxie/beego/orm/models.go diff --git a/vendor/github.com/astaxie/beego/orm/models_boot.go b/src/vendor/github.com/astaxie/beego/orm/models_boot.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/models_boot.go rename to src/vendor/github.com/astaxie/beego/orm/models_boot.go diff --git a/vendor/github.com/astaxie/beego/orm/models_fields.go b/src/vendor/github.com/astaxie/beego/orm/models_fields.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/models_fields.go rename to src/vendor/github.com/astaxie/beego/orm/models_fields.go diff --git a/vendor/github.com/astaxie/beego/orm/models_info_f.go b/src/vendor/github.com/astaxie/beego/orm/models_info_f.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/models_info_f.go rename to src/vendor/github.com/astaxie/beego/orm/models_info_f.go diff --git a/vendor/github.com/astaxie/beego/orm/models_info_m.go b/src/vendor/github.com/astaxie/beego/orm/models_info_m.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/models_info_m.go rename to src/vendor/github.com/astaxie/beego/orm/models_info_m.go diff --git a/vendor/github.com/astaxie/beego/orm/models_utils.go b/src/vendor/github.com/astaxie/beego/orm/models_utils.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/models_utils.go rename to src/vendor/github.com/astaxie/beego/orm/models_utils.go diff --git a/vendor/github.com/astaxie/beego/orm/orm.go b/src/vendor/github.com/astaxie/beego/orm/orm.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/orm.go rename to src/vendor/github.com/astaxie/beego/orm/orm.go diff --git a/vendor/github.com/astaxie/beego/orm/orm_conds.go b/src/vendor/github.com/astaxie/beego/orm/orm_conds.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/orm_conds.go rename to src/vendor/github.com/astaxie/beego/orm/orm_conds.go diff --git a/vendor/github.com/astaxie/beego/orm/orm_log.go b/src/vendor/github.com/astaxie/beego/orm/orm_log.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/orm_log.go rename to src/vendor/github.com/astaxie/beego/orm/orm_log.go diff --git a/vendor/github.com/astaxie/beego/orm/orm_object.go b/src/vendor/github.com/astaxie/beego/orm/orm_object.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/orm_object.go rename to src/vendor/github.com/astaxie/beego/orm/orm_object.go diff --git a/vendor/github.com/astaxie/beego/orm/orm_querym2m.go b/src/vendor/github.com/astaxie/beego/orm/orm_querym2m.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/orm_querym2m.go rename to src/vendor/github.com/astaxie/beego/orm/orm_querym2m.go diff --git a/vendor/github.com/astaxie/beego/orm/orm_queryset.go b/src/vendor/github.com/astaxie/beego/orm/orm_queryset.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/orm_queryset.go rename to src/vendor/github.com/astaxie/beego/orm/orm_queryset.go diff --git a/vendor/github.com/astaxie/beego/orm/orm_raw.go b/src/vendor/github.com/astaxie/beego/orm/orm_raw.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/orm_raw.go rename to src/vendor/github.com/astaxie/beego/orm/orm_raw.go diff --git a/vendor/github.com/astaxie/beego/orm/qb.go b/src/vendor/github.com/astaxie/beego/orm/qb.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/qb.go rename to src/vendor/github.com/astaxie/beego/orm/qb.go diff --git a/vendor/github.com/astaxie/beego/orm/qb_mysql.go b/src/vendor/github.com/astaxie/beego/orm/qb_mysql.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/qb_mysql.go rename to src/vendor/github.com/astaxie/beego/orm/qb_mysql.go diff --git a/vendor/github.com/astaxie/beego/orm/qb_tidb.go b/src/vendor/github.com/astaxie/beego/orm/qb_tidb.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/qb_tidb.go rename to src/vendor/github.com/astaxie/beego/orm/qb_tidb.go diff --git a/vendor/github.com/astaxie/beego/orm/types.go b/src/vendor/github.com/astaxie/beego/orm/types.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/types.go rename to src/vendor/github.com/astaxie/beego/orm/types.go diff --git a/vendor/github.com/astaxie/beego/orm/utils.go b/src/vendor/github.com/astaxie/beego/orm/utils.go similarity index 100% rename from vendor/github.com/astaxie/beego/orm/utils.go rename to src/vendor/github.com/astaxie/beego/orm/utils.go diff --git a/vendor/github.com/astaxie/beego/parser.go b/src/vendor/github.com/astaxie/beego/parser.go similarity index 100% rename from vendor/github.com/astaxie/beego/parser.go rename to src/vendor/github.com/astaxie/beego/parser.go diff --git a/vendor/github.com/astaxie/beego/router.go b/src/vendor/github.com/astaxie/beego/router.go similarity index 100% rename from vendor/github.com/astaxie/beego/router.go rename to src/vendor/github.com/astaxie/beego/router.go diff --git a/vendor/github.com/astaxie/beego/session/README.md b/src/vendor/github.com/astaxie/beego/session/README.md similarity index 100% rename from vendor/github.com/astaxie/beego/session/README.md rename to src/vendor/github.com/astaxie/beego/session/README.md diff --git a/vendor/github.com/astaxie/beego/session/redis/sess_redis.go b/src/vendor/github.com/astaxie/beego/session/redis/sess_redis.go similarity index 100% rename from vendor/github.com/astaxie/beego/session/redis/sess_redis.go rename to src/vendor/github.com/astaxie/beego/session/redis/sess_redis.go diff --git a/vendor/github.com/astaxie/beego/session/sess_cookie.go b/src/vendor/github.com/astaxie/beego/session/sess_cookie.go similarity index 100% rename from vendor/github.com/astaxie/beego/session/sess_cookie.go rename to src/vendor/github.com/astaxie/beego/session/sess_cookie.go diff --git a/vendor/github.com/astaxie/beego/session/sess_file.go b/src/vendor/github.com/astaxie/beego/session/sess_file.go similarity index 100% rename from vendor/github.com/astaxie/beego/session/sess_file.go rename to src/vendor/github.com/astaxie/beego/session/sess_file.go diff --git a/vendor/github.com/astaxie/beego/session/sess_mem.go b/src/vendor/github.com/astaxie/beego/session/sess_mem.go similarity index 100% rename from vendor/github.com/astaxie/beego/session/sess_mem.go rename to src/vendor/github.com/astaxie/beego/session/sess_mem.go diff --git a/vendor/github.com/astaxie/beego/session/sess_utils.go b/src/vendor/github.com/astaxie/beego/session/sess_utils.go similarity index 100% rename from vendor/github.com/astaxie/beego/session/sess_utils.go rename to src/vendor/github.com/astaxie/beego/session/sess_utils.go diff --git a/vendor/github.com/astaxie/beego/session/session.go b/src/vendor/github.com/astaxie/beego/session/session.go similarity index 100% rename from vendor/github.com/astaxie/beego/session/session.go rename to src/vendor/github.com/astaxie/beego/session/session.go diff --git a/vendor/github.com/astaxie/beego/staticfile.go b/src/vendor/github.com/astaxie/beego/staticfile.go similarity index 100% rename from vendor/github.com/astaxie/beego/staticfile.go rename to src/vendor/github.com/astaxie/beego/staticfile.go diff --git a/vendor/github.com/astaxie/beego/template.go b/src/vendor/github.com/astaxie/beego/template.go similarity index 100% rename from vendor/github.com/astaxie/beego/template.go rename to src/vendor/github.com/astaxie/beego/template.go diff --git a/vendor/github.com/astaxie/beego/templatefunc.go b/src/vendor/github.com/astaxie/beego/templatefunc.go similarity index 100% rename from vendor/github.com/astaxie/beego/templatefunc.go rename to src/vendor/github.com/astaxie/beego/templatefunc.go diff --git a/vendor/github.com/astaxie/beego/toolbox/healthcheck.go b/src/vendor/github.com/astaxie/beego/toolbox/healthcheck.go similarity index 100% rename from vendor/github.com/astaxie/beego/toolbox/healthcheck.go rename to src/vendor/github.com/astaxie/beego/toolbox/healthcheck.go diff --git a/vendor/github.com/astaxie/beego/toolbox/profile.go b/src/vendor/github.com/astaxie/beego/toolbox/profile.go similarity index 100% rename from vendor/github.com/astaxie/beego/toolbox/profile.go rename to src/vendor/github.com/astaxie/beego/toolbox/profile.go diff --git a/vendor/github.com/astaxie/beego/toolbox/statistics.go b/src/vendor/github.com/astaxie/beego/toolbox/statistics.go similarity index 100% rename from vendor/github.com/astaxie/beego/toolbox/statistics.go rename to src/vendor/github.com/astaxie/beego/toolbox/statistics.go diff --git a/vendor/github.com/astaxie/beego/toolbox/task.go b/src/vendor/github.com/astaxie/beego/toolbox/task.go similarity index 100% rename from vendor/github.com/astaxie/beego/toolbox/task.go rename to src/vendor/github.com/astaxie/beego/toolbox/task.go diff --git a/vendor/github.com/astaxie/beego/tree.go b/src/vendor/github.com/astaxie/beego/tree.go similarity index 100% rename from vendor/github.com/astaxie/beego/tree.go rename to src/vendor/github.com/astaxie/beego/tree.go diff --git a/vendor/github.com/astaxie/beego/utils/caller.go b/src/vendor/github.com/astaxie/beego/utils/caller.go similarity index 100% rename from vendor/github.com/astaxie/beego/utils/caller.go rename to src/vendor/github.com/astaxie/beego/utils/caller.go diff --git a/vendor/github.com/astaxie/beego/utils/debug.go b/src/vendor/github.com/astaxie/beego/utils/debug.go similarity index 100% rename from vendor/github.com/astaxie/beego/utils/debug.go rename to src/vendor/github.com/astaxie/beego/utils/debug.go diff --git a/vendor/github.com/astaxie/beego/utils/file.go b/src/vendor/github.com/astaxie/beego/utils/file.go similarity index 100% rename from vendor/github.com/astaxie/beego/utils/file.go rename to src/vendor/github.com/astaxie/beego/utils/file.go diff --git a/vendor/github.com/astaxie/beego/utils/mail.go b/src/vendor/github.com/astaxie/beego/utils/mail.go similarity index 100% rename from vendor/github.com/astaxie/beego/utils/mail.go rename to src/vendor/github.com/astaxie/beego/utils/mail.go diff --git a/vendor/github.com/astaxie/beego/utils/rand.go b/src/vendor/github.com/astaxie/beego/utils/rand.go similarity index 100% rename from vendor/github.com/astaxie/beego/utils/rand.go rename to src/vendor/github.com/astaxie/beego/utils/rand.go diff --git a/vendor/github.com/astaxie/beego/utils/safemap.go b/src/vendor/github.com/astaxie/beego/utils/safemap.go similarity index 100% rename from vendor/github.com/astaxie/beego/utils/safemap.go rename to src/vendor/github.com/astaxie/beego/utils/safemap.go diff --git a/vendor/github.com/astaxie/beego/utils/slice.go b/src/vendor/github.com/astaxie/beego/utils/slice.go similarity index 100% rename from vendor/github.com/astaxie/beego/utils/slice.go rename to src/vendor/github.com/astaxie/beego/utils/slice.go diff --git a/vendor/github.com/astaxie/beego/validation/README.md b/src/vendor/github.com/astaxie/beego/validation/README.md similarity index 100% rename from vendor/github.com/astaxie/beego/validation/README.md rename to src/vendor/github.com/astaxie/beego/validation/README.md diff --git a/vendor/github.com/astaxie/beego/validation/util.go b/src/vendor/github.com/astaxie/beego/validation/util.go similarity index 100% rename from vendor/github.com/astaxie/beego/validation/util.go rename to src/vendor/github.com/astaxie/beego/validation/util.go diff --git a/vendor/github.com/astaxie/beego/validation/validation.go b/src/vendor/github.com/astaxie/beego/validation/validation.go similarity index 100% rename from vendor/github.com/astaxie/beego/validation/validation.go rename to src/vendor/github.com/astaxie/beego/validation/validation.go diff --git a/vendor/github.com/astaxie/beego/validation/validators.go b/src/vendor/github.com/astaxie/beego/validation/validators.go similarity index 100% rename from vendor/github.com/astaxie/beego/validation/validators.go rename to src/vendor/github.com/astaxie/beego/validation/validators.go diff --git a/vendor/github.com/beego/i18n/LICENSE b/src/vendor/github.com/beego/i18n/LICENSE similarity index 100% rename from vendor/github.com/beego/i18n/LICENSE rename to src/vendor/github.com/beego/i18n/LICENSE diff --git a/vendor/github.com/beego/i18n/README.md b/src/vendor/github.com/beego/i18n/README.md similarity index 100% rename from vendor/github.com/beego/i18n/README.md rename to src/vendor/github.com/beego/i18n/README.md diff --git a/vendor/github.com/beego/i18n/i18n.go b/src/vendor/github.com/beego/i18n/i18n.go similarity index 100% rename from vendor/github.com/beego/i18n/i18n.go rename to src/vendor/github.com/beego/i18n/i18n.go diff --git a/vendor/github.com/docker/distribution/AUTHORS b/src/vendor/github.com/docker/distribution/AUTHORS similarity index 100% rename from vendor/github.com/docker/distribution/AUTHORS rename to src/vendor/github.com/docker/distribution/AUTHORS diff --git a/vendor/github.com/docker/distribution/BUILDING.md b/src/vendor/github.com/docker/distribution/BUILDING.md similarity index 100% rename from vendor/github.com/docker/distribution/BUILDING.md rename to src/vendor/github.com/docker/distribution/BUILDING.md diff --git a/vendor/github.com/docker/distribution/CHANGELOG.md b/src/vendor/github.com/docker/distribution/CHANGELOG.md similarity index 100% rename from vendor/github.com/docker/distribution/CHANGELOG.md rename to src/vendor/github.com/docker/distribution/CHANGELOG.md diff --git a/vendor/github.com/docker/distribution/CONTRIBUTING.md b/src/vendor/github.com/docker/distribution/CONTRIBUTING.md similarity index 100% rename from vendor/github.com/docker/distribution/CONTRIBUTING.md rename to src/vendor/github.com/docker/distribution/CONTRIBUTING.md diff --git a/vendor/github.com/docker/distribution/Dockerfile b/src/vendor/github.com/docker/distribution/Dockerfile similarity index 100% rename from vendor/github.com/docker/distribution/Dockerfile rename to src/vendor/github.com/docker/distribution/Dockerfile diff --git a/vendor/github.com/docker/distribution/LICENSE b/src/vendor/github.com/docker/distribution/LICENSE similarity index 100% rename from vendor/github.com/docker/distribution/LICENSE rename to src/vendor/github.com/docker/distribution/LICENSE diff --git a/vendor/github.com/docker/distribution/MAINTAINERS b/src/vendor/github.com/docker/distribution/MAINTAINERS similarity index 100% rename from vendor/github.com/docker/distribution/MAINTAINERS rename to src/vendor/github.com/docker/distribution/MAINTAINERS diff --git a/vendor/github.com/docker/distribution/Makefile b/src/vendor/github.com/docker/distribution/Makefile similarity index 100% rename from vendor/github.com/docker/distribution/Makefile rename to src/vendor/github.com/docker/distribution/Makefile diff --git a/vendor/github.com/docker/distribution/README.md b/src/vendor/github.com/docker/distribution/README.md similarity index 100% rename from vendor/github.com/docker/distribution/README.md rename to src/vendor/github.com/docker/distribution/README.md diff --git a/vendor/github.com/docker/distribution/ROADMAP.md b/src/vendor/github.com/docker/distribution/ROADMAP.md similarity index 100% rename from vendor/github.com/docker/distribution/ROADMAP.md rename to src/vendor/github.com/docker/distribution/ROADMAP.md diff --git a/vendor/github.com/docker/distribution/blobs.go b/src/vendor/github.com/docker/distribution/blobs.go similarity index 100% rename from vendor/github.com/docker/distribution/blobs.go rename to src/vendor/github.com/docker/distribution/blobs.go diff --git a/vendor/github.com/docker/distribution/circle.yml b/src/vendor/github.com/docker/distribution/circle.yml similarity index 100% rename from vendor/github.com/docker/distribution/circle.yml rename to src/vendor/github.com/docker/distribution/circle.yml diff --git a/vendor/github.com/docker/distribution/context/context.go b/src/vendor/github.com/docker/distribution/context/context.go similarity index 100% rename from vendor/github.com/docker/distribution/context/context.go rename to src/vendor/github.com/docker/distribution/context/context.go diff --git a/vendor/github.com/docker/distribution/context/doc.go b/src/vendor/github.com/docker/distribution/context/doc.go similarity index 100% rename from vendor/github.com/docker/distribution/context/doc.go rename to src/vendor/github.com/docker/distribution/context/doc.go diff --git a/vendor/github.com/docker/distribution/context/http.go b/src/vendor/github.com/docker/distribution/context/http.go similarity index 100% rename from vendor/github.com/docker/distribution/context/http.go rename to src/vendor/github.com/docker/distribution/context/http.go diff --git a/vendor/github.com/docker/distribution/context/logger.go b/src/vendor/github.com/docker/distribution/context/logger.go similarity index 100% rename from vendor/github.com/docker/distribution/context/logger.go rename to src/vendor/github.com/docker/distribution/context/logger.go diff --git a/vendor/github.com/docker/distribution/context/trace.go b/src/vendor/github.com/docker/distribution/context/trace.go similarity index 100% rename from vendor/github.com/docker/distribution/context/trace.go rename to src/vendor/github.com/docker/distribution/context/trace.go diff --git a/vendor/github.com/docker/distribution/context/util.go b/src/vendor/github.com/docker/distribution/context/util.go similarity index 100% rename from vendor/github.com/docker/distribution/context/util.go rename to src/vendor/github.com/docker/distribution/context/util.go diff --git a/vendor/github.com/docker/distribution/context/version.go b/src/vendor/github.com/docker/distribution/context/version.go similarity index 100% rename from vendor/github.com/docker/distribution/context/version.go rename to src/vendor/github.com/docker/distribution/context/version.go diff --git a/vendor/github.com/docker/distribution/coverpkg.sh b/src/vendor/github.com/docker/distribution/coverpkg.sh similarity index 100% rename from vendor/github.com/docker/distribution/coverpkg.sh rename to src/vendor/github.com/docker/distribution/coverpkg.sh diff --git a/vendor/github.com/docker/distribution/digest/digest.go b/src/vendor/github.com/docker/distribution/digest/digest.go similarity index 100% rename from vendor/github.com/docker/distribution/digest/digest.go rename to src/vendor/github.com/docker/distribution/digest/digest.go diff --git a/vendor/github.com/docker/distribution/digest/digester.go b/src/vendor/github.com/docker/distribution/digest/digester.go similarity index 100% rename from vendor/github.com/docker/distribution/digest/digester.go rename to src/vendor/github.com/docker/distribution/digest/digester.go diff --git a/vendor/github.com/docker/distribution/digest/doc.go b/src/vendor/github.com/docker/distribution/digest/doc.go similarity index 100% rename from vendor/github.com/docker/distribution/digest/doc.go rename to src/vendor/github.com/docker/distribution/digest/doc.go diff --git a/vendor/github.com/docker/distribution/digest/set.go b/src/vendor/github.com/docker/distribution/digest/set.go similarity index 100% rename from vendor/github.com/docker/distribution/digest/set.go rename to src/vendor/github.com/docker/distribution/digest/set.go diff --git a/vendor/github.com/docker/distribution/digest/verifiers.go b/src/vendor/github.com/docker/distribution/digest/verifiers.go similarity index 100% rename from vendor/github.com/docker/distribution/digest/verifiers.go rename to src/vendor/github.com/docker/distribution/digest/verifiers.go diff --git a/vendor/github.com/docker/distribution/doc.go b/src/vendor/github.com/docker/distribution/doc.go similarity index 100% rename from vendor/github.com/docker/distribution/doc.go rename to src/vendor/github.com/docker/distribution/doc.go diff --git a/vendor/github.com/docker/distribution/errors.go b/src/vendor/github.com/docker/distribution/errors.go similarity index 100% rename from vendor/github.com/docker/distribution/errors.go rename to src/vendor/github.com/docker/distribution/errors.go diff --git a/vendor/github.com/docker/distribution/manifest/doc.go b/src/vendor/github.com/docker/distribution/manifest/doc.go similarity index 100% rename from vendor/github.com/docker/distribution/manifest/doc.go rename to src/vendor/github.com/docker/distribution/manifest/doc.go diff --git a/vendor/github.com/docker/distribution/manifest/schema1/config_builder.go b/src/vendor/github.com/docker/distribution/manifest/schema1/config_builder.go similarity index 100% rename from vendor/github.com/docker/distribution/manifest/schema1/config_builder.go rename to src/vendor/github.com/docker/distribution/manifest/schema1/config_builder.go diff --git a/vendor/github.com/docker/distribution/manifest/schema1/manifest.go b/src/vendor/github.com/docker/distribution/manifest/schema1/manifest.go similarity index 100% rename from vendor/github.com/docker/distribution/manifest/schema1/manifest.go rename to src/vendor/github.com/docker/distribution/manifest/schema1/manifest.go diff --git a/vendor/github.com/docker/distribution/manifest/schema1/reference_builder.go b/src/vendor/github.com/docker/distribution/manifest/schema1/reference_builder.go similarity index 100% rename from vendor/github.com/docker/distribution/manifest/schema1/reference_builder.go rename to src/vendor/github.com/docker/distribution/manifest/schema1/reference_builder.go diff --git a/vendor/github.com/docker/distribution/manifest/schema1/sign.go b/src/vendor/github.com/docker/distribution/manifest/schema1/sign.go similarity index 100% rename from vendor/github.com/docker/distribution/manifest/schema1/sign.go rename to src/vendor/github.com/docker/distribution/manifest/schema1/sign.go diff --git a/vendor/github.com/docker/distribution/manifest/schema1/verify.go b/src/vendor/github.com/docker/distribution/manifest/schema1/verify.go similarity index 100% rename from vendor/github.com/docker/distribution/manifest/schema1/verify.go rename to src/vendor/github.com/docker/distribution/manifest/schema1/verify.go diff --git a/vendor/github.com/docker/distribution/manifest/schema2/builder.go b/src/vendor/github.com/docker/distribution/manifest/schema2/builder.go similarity index 100% rename from vendor/github.com/docker/distribution/manifest/schema2/builder.go rename to src/vendor/github.com/docker/distribution/manifest/schema2/builder.go diff --git a/vendor/github.com/docker/distribution/manifest/schema2/manifest.go b/src/vendor/github.com/docker/distribution/manifest/schema2/manifest.go similarity index 100% rename from vendor/github.com/docker/distribution/manifest/schema2/manifest.go rename to src/vendor/github.com/docker/distribution/manifest/schema2/manifest.go diff --git a/vendor/github.com/docker/distribution/manifest/versioned.go b/src/vendor/github.com/docker/distribution/manifest/versioned.go similarity index 100% rename from vendor/github.com/docker/distribution/manifest/versioned.go rename to src/vendor/github.com/docker/distribution/manifest/versioned.go diff --git a/vendor/github.com/docker/distribution/manifests.go b/src/vendor/github.com/docker/distribution/manifests.go similarity index 100% rename from vendor/github.com/docker/distribution/manifests.go rename to src/vendor/github.com/docker/distribution/manifests.go diff --git a/vendor/github.com/docker/distribution/reference/reference.go b/src/vendor/github.com/docker/distribution/reference/reference.go similarity index 100% rename from vendor/github.com/docker/distribution/reference/reference.go rename to src/vendor/github.com/docker/distribution/reference/reference.go diff --git a/vendor/github.com/docker/distribution/reference/regexp.go b/src/vendor/github.com/docker/distribution/reference/regexp.go similarity index 100% rename from vendor/github.com/docker/distribution/reference/regexp.go rename to src/vendor/github.com/docker/distribution/reference/regexp.go diff --git a/vendor/github.com/docker/distribution/registry.go b/src/vendor/github.com/docker/distribution/registry.go similarity index 100% rename from vendor/github.com/docker/distribution/registry.go rename to src/vendor/github.com/docker/distribution/registry.go diff --git a/vendor/github.com/docker/distribution/registry/api/errcode/errors.go b/src/vendor/github.com/docker/distribution/registry/api/errcode/errors.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/api/errcode/errors.go rename to src/vendor/github.com/docker/distribution/registry/api/errcode/errors.go diff --git a/vendor/github.com/docker/distribution/registry/api/errcode/handler.go b/src/vendor/github.com/docker/distribution/registry/api/errcode/handler.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/api/errcode/handler.go rename to src/vendor/github.com/docker/distribution/registry/api/errcode/handler.go diff --git a/vendor/github.com/docker/distribution/registry/api/errcode/register.go b/src/vendor/github.com/docker/distribution/registry/api/errcode/register.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/api/errcode/register.go rename to src/vendor/github.com/docker/distribution/registry/api/errcode/register.go diff --git a/vendor/github.com/docker/distribution/registry/api/v2/descriptors.go b/src/vendor/github.com/docker/distribution/registry/api/v2/descriptors.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/api/v2/descriptors.go rename to src/vendor/github.com/docker/distribution/registry/api/v2/descriptors.go diff --git a/vendor/github.com/docker/distribution/registry/api/v2/doc.go b/src/vendor/github.com/docker/distribution/registry/api/v2/doc.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/api/v2/doc.go rename to src/vendor/github.com/docker/distribution/registry/api/v2/doc.go diff --git a/vendor/github.com/docker/distribution/registry/api/v2/errors.go b/src/vendor/github.com/docker/distribution/registry/api/v2/errors.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/api/v2/errors.go rename to src/vendor/github.com/docker/distribution/registry/api/v2/errors.go diff --git a/vendor/github.com/docker/distribution/registry/api/v2/routes.go b/src/vendor/github.com/docker/distribution/registry/api/v2/routes.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/api/v2/routes.go rename to src/vendor/github.com/docker/distribution/registry/api/v2/routes.go diff --git a/vendor/github.com/docker/distribution/registry/api/v2/urls.go b/src/vendor/github.com/docker/distribution/registry/api/v2/urls.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/api/v2/urls.go rename to src/vendor/github.com/docker/distribution/registry/api/v2/urls.go diff --git a/vendor/github.com/docker/distribution/registry/auth/auth.go b/src/vendor/github.com/docker/distribution/registry/auth/auth.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/auth/auth.go rename to src/vendor/github.com/docker/distribution/registry/auth/auth.go diff --git a/vendor/github.com/docker/distribution/registry/auth/token/accesscontroller.go b/src/vendor/github.com/docker/distribution/registry/auth/token/accesscontroller.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/auth/token/accesscontroller.go rename to src/vendor/github.com/docker/distribution/registry/auth/token/accesscontroller.go diff --git a/vendor/github.com/docker/distribution/registry/auth/token/stringset.go b/src/vendor/github.com/docker/distribution/registry/auth/token/stringset.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/auth/token/stringset.go rename to src/vendor/github.com/docker/distribution/registry/auth/token/stringset.go diff --git a/vendor/github.com/docker/distribution/registry/auth/token/token.go b/src/vendor/github.com/docker/distribution/registry/auth/token/token.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/auth/token/token.go rename to src/vendor/github.com/docker/distribution/registry/auth/token/token.go diff --git a/vendor/github.com/docker/distribution/registry/auth/token/util.go b/src/vendor/github.com/docker/distribution/registry/auth/token/util.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/auth/token/util.go rename to src/vendor/github.com/docker/distribution/registry/auth/token/util.go diff --git a/vendor/github.com/docker/distribution/registry/client/auth/api_version.go b/src/vendor/github.com/docker/distribution/registry/client/auth/api_version.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/client/auth/api_version.go rename to src/vendor/github.com/docker/distribution/registry/client/auth/api_version.go diff --git a/vendor/github.com/docker/distribution/registry/client/auth/authchallenge.go b/src/vendor/github.com/docker/distribution/registry/client/auth/authchallenge.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/client/auth/authchallenge.go rename to src/vendor/github.com/docker/distribution/registry/client/auth/authchallenge.go diff --git a/vendor/github.com/docker/distribution/registry/client/auth/session.go b/src/vendor/github.com/docker/distribution/registry/client/auth/session.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/client/auth/session.go rename to src/vendor/github.com/docker/distribution/registry/client/auth/session.go diff --git a/vendor/github.com/docker/distribution/registry/client/blob_writer.go b/src/vendor/github.com/docker/distribution/registry/client/blob_writer.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/client/blob_writer.go rename to src/vendor/github.com/docker/distribution/registry/client/blob_writer.go diff --git a/vendor/github.com/docker/distribution/registry/client/errors.go b/src/vendor/github.com/docker/distribution/registry/client/errors.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/client/errors.go rename to src/vendor/github.com/docker/distribution/registry/client/errors.go diff --git a/vendor/github.com/docker/distribution/registry/client/repository.go b/src/vendor/github.com/docker/distribution/registry/client/repository.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/client/repository.go rename to src/vendor/github.com/docker/distribution/registry/client/repository.go diff --git a/vendor/github.com/docker/distribution/registry/client/transport/http_reader.go b/src/vendor/github.com/docker/distribution/registry/client/transport/http_reader.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/client/transport/http_reader.go rename to src/vendor/github.com/docker/distribution/registry/client/transport/http_reader.go diff --git a/vendor/github.com/docker/distribution/registry/client/transport/transport.go b/src/vendor/github.com/docker/distribution/registry/client/transport/transport.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/client/transport/transport.go rename to src/vendor/github.com/docker/distribution/registry/client/transport/transport.go diff --git a/vendor/github.com/docker/distribution/registry/storage/cache/cache.go b/src/vendor/github.com/docker/distribution/registry/storage/cache/cache.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/storage/cache/cache.go rename to src/vendor/github.com/docker/distribution/registry/storage/cache/cache.go diff --git a/vendor/github.com/docker/distribution/registry/storage/cache/cachedblobdescriptorstore.go b/src/vendor/github.com/docker/distribution/registry/storage/cache/cachedblobdescriptorstore.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/storage/cache/cachedblobdescriptorstore.go rename to src/vendor/github.com/docker/distribution/registry/storage/cache/cachedblobdescriptorstore.go diff --git a/vendor/github.com/docker/distribution/registry/storage/cache/memory/memory.go b/src/vendor/github.com/docker/distribution/registry/storage/cache/memory/memory.go similarity index 100% rename from vendor/github.com/docker/distribution/registry/storage/cache/memory/memory.go rename to src/vendor/github.com/docker/distribution/registry/storage/cache/memory/memory.go diff --git a/vendor/github.com/docker/distribution/tags.go b/src/vendor/github.com/docker/distribution/tags.go similarity index 100% rename from vendor/github.com/docker/distribution/tags.go rename to src/vendor/github.com/docker/distribution/tags.go diff --git a/vendor/github.com/docker/distribution/uuid/uuid.go b/src/vendor/github.com/docker/distribution/uuid/uuid.go similarity index 100% rename from vendor/github.com/docker/distribution/uuid/uuid.go rename to src/vendor/github.com/docker/distribution/uuid/uuid.go diff --git a/vendor/github.com/docker/libtrust/CONTRIBUTING.md b/src/vendor/github.com/docker/libtrust/CONTRIBUTING.md similarity index 100% rename from vendor/github.com/docker/libtrust/CONTRIBUTING.md rename to src/vendor/github.com/docker/libtrust/CONTRIBUTING.md diff --git a/vendor/github.com/docker/libtrust/LICENSE b/src/vendor/github.com/docker/libtrust/LICENSE similarity index 100% rename from vendor/github.com/docker/libtrust/LICENSE rename to src/vendor/github.com/docker/libtrust/LICENSE diff --git a/vendor/github.com/docker/libtrust/MAINTAINERS b/src/vendor/github.com/docker/libtrust/MAINTAINERS similarity index 100% rename from vendor/github.com/docker/libtrust/MAINTAINERS rename to src/vendor/github.com/docker/libtrust/MAINTAINERS diff --git a/vendor/github.com/docker/libtrust/README.md b/src/vendor/github.com/docker/libtrust/README.md similarity index 100% rename from vendor/github.com/docker/libtrust/README.md rename to src/vendor/github.com/docker/libtrust/README.md diff --git a/vendor/github.com/docker/libtrust/certificates.go b/src/vendor/github.com/docker/libtrust/certificates.go similarity index 100% rename from vendor/github.com/docker/libtrust/certificates.go rename to src/vendor/github.com/docker/libtrust/certificates.go diff --git a/vendor/github.com/docker/libtrust/doc.go b/src/vendor/github.com/docker/libtrust/doc.go similarity index 100% rename from vendor/github.com/docker/libtrust/doc.go rename to src/vendor/github.com/docker/libtrust/doc.go diff --git a/vendor/github.com/docker/libtrust/ec_key.go b/src/vendor/github.com/docker/libtrust/ec_key.go similarity index 100% rename from vendor/github.com/docker/libtrust/ec_key.go rename to src/vendor/github.com/docker/libtrust/ec_key.go diff --git a/vendor/github.com/docker/libtrust/filter.go b/src/vendor/github.com/docker/libtrust/filter.go similarity index 100% rename from vendor/github.com/docker/libtrust/filter.go rename to src/vendor/github.com/docker/libtrust/filter.go diff --git a/vendor/github.com/docker/libtrust/hash.go b/src/vendor/github.com/docker/libtrust/hash.go similarity index 100% rename from vendor/github.com/docker/libtrust/hash.go rename to src/vendor/github.com/docker/libtrust/hash.go diff --git a/vendor/github.com/docker/libtrust/jsonsign.go b/src/vendor/github.com/docker/libtrust/jsonsign.go similarity index 100% rename from vendor/github.com/docker/libtrust/jsonsign.go rename to src/vendor/github.com/docker/libtrust/jsonsign.go diff --git a/vendor/github.com/docker/libtrust/key.go b/src/vendor/github.com/docker/libtrust/key.go similarity index 100% rename from vendor/github.com/docker/libtrust/key.go rename to src/vendor/github.com/docker/libtrust/key.go diff --git a/vendor/github.com/docker/libtrust/key_files.go b/src/vendor/github.com/docker/libtrust/key_files.go similarity index 100% rename from vendor/github.com/docker/libtrust/key_files.go rename to src/vendor/github.com/docker/libtrust/key_files.go diff --git a/vendor/github.com/docker/libtrust/key_manager.go b/src/vendor/github.com/docker/libtrust/key_manager.go similarity index 100% rename from vendor/github.com/docker/libtrust/key_manager.go rename to src/vendor/github.com/docker/libtrust/key_manager.go diff --git a/vendor/github.com/docker/libtrust/rsa_key.go b/src/vendor/github.com/docker/libtrust/rsa_key.go similarity index 100% rename from vendor/github.com/docker/libtrust/rsa_key.go rename to src/vendor/github.com/docker/libtrust/rsa_key.go diff --git a/vendor/github.com/docker/libtrust/util.go b/src/vendor/github.com/docker/libtrust/util.go similarity index 100% rename from vendor/github.com/docker/libtrust/util.go rename to src/vendor/github.com/docker/libtrust/util.go diff --git a/vendor/github.com/garyburd/redigo/LICENSE b/src/vendor/github.com/garyburd/redigo/LICENSE similarity index 100% rename from vendor/github.com/garyburd/redigo/LICENSE rename to src/vendor/github.com/garyburd/redigo/LICENSE diff --git a/vendor/github.com/garyburd/redigo/internal/commandinfo.go b/src/vendor/github.com/garyburd/redigo/internal/commandinfo.go similarity index 100% rename from vendor/github.com/garyburd/redigo/internal/commandinfo.go rename to src/vendor/github.com/garyburd/redigo/internal/commandinfo.go diff --git a/vendor/github.com/garyburd/redigo/redis/conn.go b/src/vendor/github.com/garyburd/redigo/redis/conn.go similarity index 100% rename from vendor/github.com/garyburd/redigo/redis/conn.go rename to src/vendor/github.com/garyburd/redigo/redis/conn.go diff --git a/vendor/github.com/garyburd/redigo/redis/doc.go b/src/vendor/github.com/garyburd/redigo/redis/doc.go similarity index 100% rename from vendor/github.com/garyburd/redigo/redis/doc.go rename to src/vendor/github.com/garyburd/redigo/redis/doc.go diff --git a/vendor/github.com/garyburd/redigo/redis/log.go b/src/vendor/github.com/garyburd/redigo/redis/log.go similarity index 100% rename from vendor/github.com/garyburd/redigo/redis/log.go rename to src/vendor/github.com/garyburd/redigo/redis/log.go diff --git a/vendor/github.com/garyburd/redigo/redis/pool.go b/src/vendor/github.com/garyburd/redigo/redis/pool.go similarity index 100% rename from vendor/github.com/garyburd/redigo/redis/pool.go rename to src/vendor/github.com/garyburd/redigo/redis/pool.go diff --git a/vendor/github.com/garyburd/redigo/redis/pubsub.go b/src/vendor/github.com/garyburd/redigo/redis/pubsub.go similarity index 100% rename from vendor/github.com/garyburd/redigo/redis/pubsub.go rename to src/vendor/github.com/garyburd/redigo/redis/pubsub.go diff --git a/vendor/github.com/garyburd/redigo/redis/redis.go b/src/vendor/github.com/garyburd/redigo/redis/redis.go similarity index 100% rename from vendor/github.com/garyburd/redigo/redis/redis.go rename to src/vendor/github.com/garyburd/redigo/redis/redis.go diff --git a/vendor/github.com/garyburd/redigo/redis/reply.go b/src/vendor/github.com/garyburd/redigo/redis/reply.go similarity index 100% rename from vendor/github.com/garyburd/redigo/redis/reply.go rename to src/vendor/github.com/garyburd/redigo/redis/reply.go diff --git a/vendor/github.com/garyburd/redigo/redis/scan.go b/src/vendor/github.com/garyburd/redigo/redis/scan.go similarity index 100% rename from vendor/github.com/garyburd/redigo/redis/scan.go rename to src/vendor/github.com/garyburd/redigo/redis/scan.go diff --git a/vendor/github.com/garyburd/redigo/redis/script.go b/src/vendor/github.com/garyburd/redigo/redis/script.go similarity index 100% rename from vendor/github.com/garyburd/redigo/redis/script.go rename to src/vendor/github.com/garyburd/redigo/redis/script.go diff --git a/vendor/github.com/go-sql-driver/mysql/AUTHORS b/src/vendor/github.com/go-sql-driver/mysql/AUTHORS similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/AUTHORS rename to src/vendor/github.com/go-sql-driver/mysql/AUTHORS diff --git a/vendor/github.com/go-sql-driver/mysql/CHANGELOG.md b/src/vendor/github.com/go-sql-driver/mysql/CHANGELOG.md similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/CHANGELOG.md rename to src/vendor/github.com/go-sql-driver/mysql/CHANGELOG.md diff --git a/vendor/github.com/go-sql-driver/mysql/CONTRIBUTING.md b/src/vendor/github.com/go-sql-driver/mysql/CONTRIBUTING.md similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/CONTRIBUTING.md rename to src/vendor/github.com/go-sql-driver/mysql/CONTRIBUTING.md diff --git a/vendor/github.com/go-sql-driver/mysql/LICENSE b/src/vendor/github.com/go-sql-driver/mysql/LICENSE similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/LICENSE rename to src/vendor/github.com/go-sql-driver/mysql/LICENSE diff --git a/vendor/github.com/go-sql-driver/mysql/README.md b/src/vendor/github.com/go-sql-driver/mysql/README.md similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/README.md rename to src/vendor/github.com/go-sql-driver/mysql/README.md diff --git a/vendor/github.com/go-sql-driver/mysql/appengine.go b/src/vendor/github.com/go-sql-driver/mysql/appengine.go similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/appengine.go rename to src/vendor/github.com/go-sql-driver/mysql/appengine.go diff --git a/vendor/github.com/go-sql-driver/mysql/buffer.go b/src/vendor/github.com/go-sql-driver/mysql/buffer.go similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/buffer.go rename to src/vendor/github.com/go-sql-driver/mysql/buffer.go diff --git a/vendor/github.com/go-sql-driver/mysql/collations.go b/src/vendor/github.com/go-sql-driver/mysql/collations.go similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/collations.go rename to src/vendor/github.com/go-sql-driver/mysql/collations.go diff --git a/vendor/github.com/go-sql-driver/mysql/connection.go b/src/vendor/github.com/go-sql-driver/mysql/connection.go similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/connection.go rename to src/vendor/github.com/go-sql-driver/mysql/connection.go diff --git a/vendor/github.com/go-sql-driver/mysql/const.go b/src/vendor/github.com/go-sql-driver/mysql/const.go similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/const.go rename to src/vendor/github.com/go-sql-driver/mysql/const.go diff --git a/vendor/github.com/go-sql-driver/mysql/driver.go b/src/vendor/github.com/go-sql-driver/mysql/driver.go similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/driver.go rename to src/vendor/github.com/go-sql-driver/mysql/driver.go diff --git a/vendor/github.com/go-sql-driver/mysql/errors.go b/src/vendor/github.com/go-sql-driver/mysql/errors.go similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/errors.go rename to src/vendor/github.com/go-sql-driver/mysql/errors.go diff --git a/vendor/github.com/go-sql-driver/mysql/infile.go b/src/vendor/github.com/go-sql-driver/mysql/infile.go similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/infile.go rename to src/vendor/github.com/go-sql-driver/mysql/infile.go diff --git a/vendor/github.com/go-sql-driver/mysql/packets.go b/src/vendor/github.com/go-sql-driver/mysql/packets.go similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/packets.go rename to src/vendor/github.com/go-sql-driver/mysql/packets.go diff --git a/vendor/github.com/go-sql-driver/mysql/result.go b/src/vendor/github.com/go-sql-driver/mysql/result.go similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/result.go rename to src/vendor/github.com/go-sql-driver/mysql/result.go diff --git a/vendor/github.com/go-sql-driver/mysql/rows.go b/src/vendor/github.com/go-sql-driver/mysql/rows.go similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/rows.go rename to src/vendor/github.com/go-sql-driver/mysql/rows.go diff --git a/vendor/github.com/go-sql-driver/mysql/statement.go b/src/vendor/github.com/go-sql-driver/mysql/statement.go similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/statement.go rename to src/vendor/github.com/go-sql-driver/mysql/statement.go diff --git a/vendor/github.com/go-sql-driver/mysql/transaction.go b/src/vendor/github.com/go-sql-driver/mysql/transaction.go similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/transaction.go rename to src/vendor/github.com/go-sql-driver/mysql/transaction.go diff --git a/vendor/github.com/go-sql-driver/mysql/utils.go b/src/vendor/github.com/go-sql-driver/mysql/utils.go similarity index 100% rename from vendor/github.com/go-sql-driver/mysql/utils.go rename to src/vendor/github.com/go-sql-driver/mysql/utils.go diff --git a/vendor/github.com/gorilla/context/LICENSE b/src/vendor/github.com/gorilla/context/LICENSE similarity index 100% rename from vendor/github.com/gorilla/context/LICENSE rename to src/vendor/github.com/gorilla/context/LICENSE diff --git a/vendor/github.com/gorilla/context/README.md b/src/vendor/github.com/gorilla/context/README.md similarity index 100% rename from vendor/github.com/gorilla/context/README.md rename to src/vendor/github.com/gorilla/context/README.md diff --git a/vendor/github.com/gorilla/context/context.go b/src/vendor/github.com/gorilla/context/context.go similarity index 100% rename from vendor/github.com/gorilla/context/context.go rename to src/vendor/github.com/gorilla/context/context.go diff --git a/vendor/github.com/gorilla/context/doc.go b/src/vendor/github.com/gorilla/context/doc.go similarity index 100% rename from vendor/github.com/gorilla/context/doc.go rename to src/vendor/github.com/gorilla/context/doc.go diff --git a/vendor/github.com/gorilla/mux/LICENSE b/src/vendor/github.com/gorilla/mux/LICENSE similarity index 100% rename from vendor/github.com/gorilla/mux/LICENSE rename to src/vendor/github.com/gorilla/mux/LICENSE diff --git a/vendor/github.com/gorilla/mux/README.md b/src/vendor/github.com/gorilla/mux/README.md similarity index 100% rename from vendor/github.com/gorilla/mux/README.md rename to src/vendor/github.com/gorilla/mux/README.md diff --git a/vendor/github.com/gorilla/mux/context_gorilla.go b/src/vendor/github.com/gorilla/mux/context_gorilla.go similarity index 100% rename from vendor/github.com/gorilla/mux/context_gorilla.go rename to src/vendor/github.com/gorilla/mux/context_gorilla.go diff --git a/vendor/github.com/gorilla/mux/context_native.go b/src/vendor/github.com/gorilla/mux/context_native.go similarity index 100% rename from vendor/github.com/gorilla/mux/context_native.go rename to src/vendor/github.com/gorilla/mux/context_native.go diff --git a/vendor/github.com/gorilla/mux/doc.go b/src/vendor/github.com/gorilla/mux/doc.go similarity index 100% rename from vendor/github.com/gorilla/mux/doc.go rename to src/vendor/github.com/gorilla/mux/doc.go diff --git a/vendor/github.com/gorilla/mux/mux.go b/src/vendor/github.com/gorilla/mux/mux.go similarity index 100% rename from vendor/github.com/gorilla/mux/mux.go rename to src/vendor/github.com/gorilla/mux/mux.go diff --git a/vendor/github.com/gorilla/mux/regexp.go b/src/vendor/github.com/gorilla/mux/regexp.go similarity index 100% rename from vendor/github.com/gorilla/mux/regexp.go rename to src/vendor/github.com/gorilla/mux/regexp.go diff --git a/vendor/github.com/gorilla/mux/route.go b/src/vendor/github.com/gorilla/mux/route.go similarity index 100% rename from vendor/github.com/gorilla/mux/route.go rename to src/vendor/github.com/gorilla/mux/route.go diff --git a/vendor/github.com/mattn/go-sqlite3/LICENSE b/src/vendor/github.com/mattn/go-sqlite3/LICENSE similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/LICENSE rename to src/vendor/github.com/mattn/go-sqlite3/LICENSE diff --git a/vendor/github.com/mattn/go-sqlite3/README.md b/src/vendor/github.com/mattn/go-sqlite3/README.md similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/README.md rename to src/vendor/github.com/mattn/go-sqlite3/README.md diff --git a/vendor/github.com/mattn/go-sqlite3/backup.go b/src/vendor/github.com/mattn/go-sqlite3/backup.go similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/backup.go rename to src/vendor/github.com/mattn/go-sqlite3/backup.go diff --git a/vendor/github.com/mattn/go-sqlite3/callback.go b/src/vendor/github.com/mattn/go-sqlite3/callback.go similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/callback.go rename to src/vendor/github.com/mattn/go-sqlite3/callback.go diff --git a/vendor/github.com/mattn/go-sqlite3/doc.go b/src/vendor/github.com/mattn/go-sqlite3/doc.go similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/doc.go rename to src/vendor/github.com/mattn/go-sqlite3/doc.go diff --git a/vendor/github.com/mattn/go-sqlite3/error.go b/src/vendor/github.com/mattn/go-sqlite3/error.go similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/error.go rename to src/vendor/github.com/mattn/go-sqlite3/error.go diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c b/src/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c rename to src/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h b/src/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h rename to src/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3.go b/src/vendor/github.com/mattn/go-sqlite3/sqlite3.go similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/sqlite3.go rename to src/vendor/github.com/mattn/go-sqlite3/sqlite3.go diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3_fts5.go b/src/vendor/github.com/mattn/go-sqlite3/sqlite3_fts5.go similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/sqlite3_fts5.go rename to src/vendor/github.com/mattn/go-sqlite3/sqlite3_fts5.go diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3_icu.go b/src/vendor/github.com/mattn/go-sqlite3/sqlite3_icu.go similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/sqlite3_icu.go rename to src/vendor/github.com/mattn/go-sqlite3/sqlite3_icu.go diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3_json1.go b/src/vendor/github.com/mattn/go-sqlite3/sqlite3_json1.go similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/sqlite3_json1.go rename to src/vendor/github.com/mattn/go-sqlite3/sqlite3_json1.go diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3_libsqlite3.go b/src/vendor/github.com/mattn/go-sqlite3/sqlite3_libsqlite3.go similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/sqlite3_libsqlite3.go rename to src/vendor/github.com/mattn/go-sqlite3/sqlite3_libsqlite3.go diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3_load_extension.go b/src/vendor/github.com/mattn/go-sqlite3/sqlite3_load_extension.go similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/sqlite3_load_extension.go rename to src/vendor/github.com/mattn/go-sqlite3/sqlite3_load_extension.go diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3_omit_load_extension.go b/src/vendor/github.com/mattn/go-sqlite3/sqlite3_omit_load_extension.go similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/sqlite3_omit_load_extension.go rename to src/vendor/github.com/mattn/go-sqlite3/sqlite3_omit_load_extension.go diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3_other.go b/src/vendor/github.com/mattn/go-sqlite3/sqlite3_other.go similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/sqlite3_other.go rename to src/vendor/github.com/mattn/go-sqlite3/sqlite3_other.go diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3_windows.go b/src/vendor/github.com/mattn/go-sqlite3/sqlite3_windows.go similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/sqlite3_windows.go rename to src/vendor/github.com/mattn/go-sqlite3/sqlite3_windows.go diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3ext.h b/src/vendor/github.com/mattn/go-sqlite3/sqlite3ext.h similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/sqlite3ext.h rename to src/vendor/github.com/mattn/go-sqlite3/sqlite3ext.h diff --git a/vendor/github.com/mattn/go-sqlite3/tracecallback.go b/src/vendor/github.com/mattn/go-sqlite3/tracecallback.go similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/tracecallback.go rename to src/vendor/github.com/mattn/go-sqlite3/tracecallback.go diff --git a/vendor/github.com/mattn/go-sqlite3/tracecallback_noimpl.go b/src/vendor/github.com/mattn/go-sqlite3/tracecallback_noimpl.go similarity index 100% rename from vendor/github.com/mattn/go-sqlite3/tracecallback_noimpl.go rename to src/vendor/github.com/mattn/go-sqlite3/tracecallback_noimpl.go diff --git a/vendor/github.com/mqu/openldap/LICENCE.txt b/src/vendor/github.com/mqu/openldap/LICENCE.txt similarity index 100% rename from vendor/github.com/mqu/openldap/LICENCE.txt rename to src/vendor/github.com/mqu/openldap/LICENCE.txt diff --git a/vendor/github.com/mqu/openldap/README.md b/src/vendor/github.com/mqu/openldap/README.md similarity index 100% rename from vendor/github.com/mqu/openldap/README.md rename to src/vendor/github.com/mqu/openldap/README.md diff --git a/vendor/github.com/mqu/openldap/add-modify-delete.go b/src/vendor/github.com/mqu/openldap/add-modify-delete.go similarity index 100% rename from vendor/github.com/mqu/openldap/add-modify-delete.go rename to src/vendor/github.com/mqu/openldap/add-modify-delete.go diff --git a/vendor/github.com/mqu/openldap/defines.go b/src/vendor/github.com/mqu/openldap/defines.go similarity index 100% rename from vendor/github.com/mqu/openldap/defines.go rename to src/vendor/github.com/mqu/openldap/defines.go diff --git a/vendor/github.com/mqu/openldap/openldap.go b/src/vendor/github.com/mqu/openldap/openldap.go similarity index 100% rename from vendor/github.com/mqu/openldap/openldap.go rename to src/vendor/github.com/mqu/openldap/openldap.go diff --git a/vendor/github.com/mqu/openldap/options-errors.go b/src/vendor/github.com/mqu/openldap/options-errors.go similarity index 100% rename from vendor/github.com/mqu/openldap/options-errors.go rename to src/vendor/github.com/mqu/openldap/options-errors.go diff --git a/vendor/github.com/mqu/openldap/results.go b/src/vendor/github.com/mqu/openldap/results.go similarity index 100% rename from vendor/github.com/mqu/openldap/results.go rename to src/vendor/github.com/mqu/openldap/results.go diff --git a/vendor/github.com/mqu/openldap/types.go b/src/vendor/github.com/mqu/openldap/types.go similarity index 100% rename from vendor/github.com/mqu/openldap/types.go rename to src/vendor/github.com/mqu/openldap/types.go diff --git a/vendor/golang.org/x/crypto/LICENSE b/src/vendor/golang.org/x/crypto/LICENSE similarity index 100% rename from vendor/golang.org/x/crypto/LICENSE rename to src/vendor/golang.org/x/crypto/LICENSE diff --git a/vendor/golang.org/x/crypto/PATENTS b/src/vendor/golang.org/x/crypto/PATENTS similarity index 100% rename from vendor/golang.org/x/crypto/PATENTS rename to src/vendor/golang.org/x/crypto/PATENTS diff --git a/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go b/src/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go similarity index 100% rename from vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go rename to src/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go diff --git a/vendor/golang.org/x/net/LICENSE b/src/vendor/golang.org/x/net/LICENSE similarity index 100% rename from vendor/golang.org/x/net/LICENSE rename to src/vendor/golang.org/x/net/LICENSE diff --git a/vendor/golang.org/x/net/PATENTS b/src/vendor/golang.org/x/net/PATENTS similarity index 100% rename from vendor/golang.org/x/net/PATENTS rename to src/vendor/golang.org/x/net/PATENTS diff --git a/vendor/golang.org/x/net/context/context.go b/src/vendor/golang.org/x/net/context/context.go similarity index 100% rename from vendor/golang.org/x/net/context/context.go rename to src/vendor/golang.org/x/net/context/context.go diff --git a/vendor/golang.org/x/net/context/go17.go b/src/vendor/golang.org/x/net/context/go17.go similarity index 100% rename from vendor/golang.org/x/net/context/go17.go rename to src/vendor/golang.org/x/net/context/go17.go diff --git a/vendor/golang.org/x/net/context/pre_go17.go b/src/vendor/golang.org/x/net/context/pre_go17.go similarity index 100% rename from vendor/golang.org/x/net/context/pre_go17.go rename to src/vendor/golang.org/x/net/context/pre_go17.go diff --git a/vendor/vendor.json b/src/vendor/vendor.json similarity index 100% rename from vendor/vendor.json rename to src/vendor/vendor.json diff --git a/Deploy/coverage4gotest.sh b/tests/coverage4gotest.sh similarity index 100% rename from Deploy/coverage4gotest.sh rename to tests/coverage4gotest.sh diff --git a/tests/docker-compose.test.yml b/tests/docker-compose.test.yml index 343b50870..e37f16bc8 100644 --- a/tests/docker-compose.test.yml +++ b/tests/docker-compose.test.yml @@ -5,7 +5,7 @@ services: restart: always volumes: - /data/registry:/storage - - ./config/registry/:/etc/registry/ + - ./common/config/registry/:/etc/registry/ environment: - GODEBUG=netdns=cgo ports: @@ -13,11 +13,11 @@ services: command: ["serve", "/etc/docker/registry/config.yml"] mysql: - build: ./db/ + build: ./common/db/ restart: always volumes: - /data/database:/var/lib/mysql env_file: - - ./config/db/env + - ./common/config/db/env ports: - 3306:3306 diff --git a/tests/hostcfg.sh b/tests/hostcfg.sh index e969f4c16..c3675668d 100755 --- a/tests/hostcfg.sh +++ b/tests/hostcfg.sh @@ -1,4 +1,4 @@ #!/bin/bash IP=`ip addr s eth0 |grep "inet "|awk '{print $2}' |awk -F "/" '{print $1}'` #echo $IP -sudo sed "s/reg.mydomain.com/$IP/" -i Deploy/harbor.cfg +sudo sed "s/reg.mydomain.com/$IP/" -i make/harbor.cfg diff --git a/tests/testprepare.sh b/tests/testprepare.sh index 671256451..debcad72d 100755 --- a/tests/testprepare.sh +++ b/tests/testprepare.sh @@ -1,9 +1,9 @@ #!/bin/bash -cp tests/docker-compose.test.yml Deploy/. +cp tests/docker-compose.test.yml make/. mkdir /etc/ui -cp Deploy/config/ui/private_key.pem /etc/ui/. +cp make/common/config/ui/private_key.pem /etc/ui/. mkdir conf -cp Deploy/config/ui/app.conf conf/. +cp make/common/config/ui/app.conf conf/. diff --git a/migration/Dockerfile b/tools/migration/Dockerfile similarity index 100% rename from migration/Dockerfile rename to tools/migration/Dockerfile diff --git a/migration/alembic.sql b/tools/migration/alembic.sql similarity index 100% rename from migration/alembic.sql rename to tools/migration/alembic.sql diff --git a/migration/alembic.tpl b/tools/migration/alembic.tpl similarity index 100% rename from migration/alembic.tpl rename to tools/migration/alembic.tpl diff --git a/migration/changelog.md b/tools/migration/changelog.md similarity index 100% rename from migration/changelog.md rename to tools/migration/changelog.md diff --git a/migration/db_meta.py b/tools/migration/db_meta.py similarity index 100% rename from migration/db_meta.py rename to tools/migration/db_meta.py diff --git a/migration/migration.cfg b/tools/migration/migration.cfg similarity index 100% rename from migration/migration.cfg rename to tools/migration/migration.cfg diff --git a/migration/migration_harbor/env.py b/tools/migration/migration_harbor/env.py similarity index 100% rename from migration/migration_harbor/env.py rename to tools/migration/migration_harbor/env.py diff --git a/migration/migration_harbor/script.py.mako b/tools/migration/migration_harbor/script.py.mako similarity index 100% rename from migration/migration_harbor/script.py.mako rename to tools/migration/migration_harbor/script.py.mako diff --git a/migration/migration_harbor/versions/0_1_1.py b/tools/migration/migration_harbor/versions/0_1_1.py similarity index 100% rename from migration/migration_harbor/versions/0_1_1.py rename to tools/migration/migration_harbor/versions/0_1_1.py diff --git a/migration/migration_harbor/versions/0_3_0.py b/tools/migration/migration_harbor/versions/0_3_0.py similarity index 100% rename from migration/migration_harbor/versions/0_3_0.py rename to tools/migration/migration_harbor/versions/0_3_0.py diff --git a/migration/migration_harbor/versions/0_4_0.py b/tools/migration/migration_harbor/versions/0_4_0.py similarity index 100% rename from migration/migration_harbor/versions/0_4_0.py rename to tools/migration/migration_harbor/versions/0_4_0.py diff --git a/migration/prepare.sh b/tools/migration/prepare.sh similarity index 100% rename from migration/prepare.sh rename to tools/migration/prepare.sh diff --git a/migration/run.sh b/tools/migration/run.sh similarity index 100% rename from migration/run.sh rename to tools/migration/run.sh