├── .gitattributes ├── .gitignore ├── .travis.yml ├── GITBOOK.md ├── LICENSE.txt ├── NOTICE.txt ├── README.md ├── SUMMARY.md ├── book.json ├── config ├── django │ └── django_gunicorn_ovs.cfg.py ├── env │ └── ovs.sh ├── logrotate │ └── openvstorage-logs ├── nginx │ ├── nginx.centos.conf │ ├── openvstorage.conf │ └── openvstorage_ssl.conf └── templates │ ├── systemd │ ├── ovs-albaproxy.service │ ├── ovs-arakoon.service │ ├── ovs-dtl.service │ ├── ovs-scheduled-tasks.service │ ├── ovs-support-agent.service │ ├── ovs-volumedriver.service │ ├── ovs-volumerouter-consumer.service │ ├── ovs-watcher-config.service │ ├── ovs-watcher-framework.service │ ├── ovs-watcher-volumedriver.service │ ├── ovs-webapp-api.service │ └── ovs-workers.service │ └── upstart │ ├── ovs-albaproxy.conf │ ├── ovs-arakoon.conf │ ├── ovs-dtl.conf │ ├── ovs-scheduled-tasks.conf │ ├── ovs-support-agent.conf │ ├── ovs-volumedriver.conf │ ├── ovs-volumerouter-consumer.conf │ ├── ovs-watcher-config.conf │ ├── ovs-watcher-framework.conf │ ├── ovs-watcher-volumedriver.conf │ ├── ovs-webapp-api.conf │ └── ovs-workers.conf ├── docs ├── Images │ └── Open-vStorge-Services.png ├── README.md ├── components.md ├── concepts.md ├── configmgmt.md ├── dal.md ├── internal │ ├── api.md │ ├── celery_task_fetching.py │ ├── celery_task_list.md │ ├── development_environment.md │ ├── directory_structure.md │ ├── frontend.md │ ├── plugin_loading.md │ ├── readme.md │ ├── update.md │ ├── volumedriver_events.md │ └── workers.md ├── log.md ├── masterextra.md ├── openvstorage-erd.pdf ├── scheduledtasks.md ├── scrubber.md ├── support_agent.md ├── testing.md ├── troubleshooting.md ├── unittests.md └── watchers.md ├── ovs ├── __init__.py ├── celery_beat.py ├── celery_run.py ├── cli │ ├── __init__.py │ ├── commands.py │ ├── config │ │ ├── __init__.py │ │ └── config.py │ ├── entry.py │ ├── local_update │ │ ├── __init__.py │ │ └── local_update.py │ ├── misc │ │ ├── __init__.py │ │ └── misc.py │ ├── monitor │ │ ├── __init__.py │ │ └── monitor.py │ ├── remove │ │ ├── __init__.py │ │ └── remove.py │ ├── rollback │ │ └── __init__.py │ ├── services │ │ └── __init__.py │ ├── setup │ │ ├── __init__.py │ │ └── setup.py │ ├── unittesting │ │ └── __init__.py │ └── update │ │ └── __init__.py ├── constants │ ├── __init__.py │ ├── celery.py │ ├── dal.py │ ├── ipython.py │ ├── logging.py │ ├── packages.py │ ├── roles.py │ ├── s3.py │ ├── statuses.py │ ├── storagedriver.py │ ├── vdisk.py │ └── vpool.py ├── dal │ ├── __init__.py │ ├── datalist.py │ ├── dataobject.py │ ├── exceptions.py │ ├── helpers.py │ ├── hybrids │ │ ├── __init__.py │ │ ├── backend.py │ │ ├── backendtype.py │ │ ├── bearertoken.py │ │ ├── branding.py │ │ ├── client.py │ │ ├── disk.py │ │ ├── diskpartition.py │ │ ├── domain.py │ │ ├── group.py │ │ ├── j_albaproxy.py │ │ ├── j_backendclient.py │ │ ├── j_backenddomain.py │ │ ├── j_backenduser.py │ │ ├── j_mdsservice.py │ │ ├── j_mdsservicevdisk.py │ │ ├── j_rolebearertoken.py │ │ ├── j_roleclient.py │ │ ├── j_rolegroup.py │ │ ├── j_storagedriverpartition.py │ │ ├── j_storagerouterdomain.py │ │ ├── j_vdiskdomain.py │ │ ├── role.py │ │ ├── service.py │ │ ├── servicetype.py │ │ ├── storagedriver.py │ │ ├── storagerouter.py │ │ ├── t_testdisk.py │ │ ├── t_testemachine.py │ │ ├── t_testmachine.py │ │ ├── t_teststoragedriver.py │ │ ├── t_teststoragerouter.py │ │ ├── t_testvpool.py │ │ ├── user.py │ │ ├── vdisk.py │ │ └── vpool.py │ ├── lists │ │ ├── __init__.py │ │ ├── backendlist.py │ │ ├── backendtypelist.py │ │ ├── bearertokenlist.py │ │ ├── brandinglist.py │ │ ├── clientlist.py │ │ ├── disklist.py │ │ ├── diskpartitionlist.py │ │ ├── domainlist.py │ │ ├── grouplist.py │ │ ├── mdsservicelist.py │ │ ├── rolelist.py │ │ ├── servicelist.py │ │ ├── servicetypelist.py │ │ ├── storagedriverlist.py │ │ ├── storagerouterlist.py │ │ ├── userlist.py │ │ ├── vdisklist.py │ │ └── vpoollist.py │ ├── migration │ │ ├── __init__.py │ │ └── ovsmigrator.py │ ├── performance_test.py │ ├── relations.py │ ├── structures.py │ └── tests │ │ ├── __init__.py │ │ ├── helpers.py │ │ ├── test_basic.py │ │ └── test_hybrids.py ├── extensions │ ├── __init__.py │ ├── celery │ │ ├── __init__.py │ │ ├── arakoonresult.py │ │ └── extendedyaml.py │ ├── db │ │ ├── __init__.py │ │ └── arakooninstaller.py │ ├── generic │ │ ├── __init__.py │ │ ├── configuration.py │ │ ├── disk.py │ │ ├── graphiteclient.py │ │ ├── heartbeat.py │ │ ├── logger.py │ │ ├── plugins.py │ │ ├── sshclient.py │ │ ├── system.py │ │ ├── volatilemutex.py │ │ └── watcher.py │ ├── log.py │ ├── migration │ │ ├── __init__.py │ │ ├── migration │ │ │ ├── __init__.py │ │ │ └── ovsmigrator.py │ │ └── migrator.py │ ├── os │ │ ├── __init__.py │ │ └── osfactory.py │ ├── packages │ │ ├── __init__.py │ │ └── packagefactory.py │ ├── plugins │ │ ├── __init__.py │ │ ├── apiclient.py │ │ └── tests │ │ │ └── __init__.py │ ├── rabbitmq │ │ ├── __init__.py │ │ ├── consumer.py │ │ ├── mappings │ │ │ ├── __init__.py │ │ │ └── mapping.py │ │ └── processor.py │ ├── services │ │ ├── __init__.py │ │ └── servicefactory.py │ ├── storage │ │ ├── __init__.py │ │ ├── persistentfactory.py │ │ └── volatilefactory.py │ ├── storageserver │ │ ├── __init__.py │ │ ├── storagedriver.py │ │ ├── storagedriverconfig │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── connection_manager.py │ │ │ ├── filesystem.py │ │ │ ├── storagedriver.py │ │ │ ├── volume_manager.py │ │ │ └── volume_router.py │ │ └── tests │ │ │ ├── __init__.py │ │ │ └── mockups.py │ └── support │ │ ├── __init__.py │ │ └── agent.py ├── interfaces │ └── __init__.py ├── lib │ ├── __init__.py │ ├── disk.py │ ├── generic.py │ ├── graphite.py │ ├── helpers │ │ ├── __init__.py │ │ ├── decorators.py │ │ ├── exceptions.py │ │ ├── generic │ │ │ ├── __init__.py │ │ │ ├── scrubber.md │ │ │ └── scrubber.py │ │ ├── mds │ │ │ ├── __init__.py │ │ │ ├── catchup.py │ │ │ ├── safety.py │ │ │ └── shared.py │ │ ├── repeatingtimer.py │ │ ├── storagedriver │ │ │ ├── __init__.py │ │ │ └── installer.py │ │ ├── storagerouter │ │ │ ├── __init__.py │ │ │ └── installer.py │ │ ├── toolbox.py │ │ ├── vdisk │ │ │ ├── __init__.py │ │ │ └── rebalancer.py │ │ └── vpool │ │ │ ├── __init__.py │ │ │ ├── installers │ │ │ ├── __init__.py │ │ │ ├── base_installer.py │ │ │ ├── create_installer.py │ │ │ ├── extend_installer.py │ │ │ ├── installer.py │ │ │ └── shrink_installer.py │ │ │ └── shared.py │ ├── mdsservice.py │ ├── messaging.py │ ├── migration.py │ ├── monitoring.py │ ├── nodeinstallation.py │ ├── noderemoval.py │ ├── nodetype.py │ ├── plugin.py │ ├── statsmonkey.py │ ├── storagedriver.py │ ├── storagerouter.py │ ├── tests │ │ ├── __init__.py │ │ ├── generic_tests │ │ │ ├── __init__.py │ │ │ ├── test_configuration.py │ │ │ ├── test_decorators.py │ │ │ ├── test_generic.py │ │ │ ├── test_scrubbing.py │ │ │ └── test_snapshot.py │ │ ├── helpers_tests │ │ │ ├── __init__.py │ │ │ └── test_helpers.py │ │ ├── mdsservice_tests │ │ │ ├── __init__.py │ │ │ ├── test_mdscatchup.py │ │ │ └── test_mdsservice.py │ │ ├── storagedriver_tests │ │ │ ├── __init__.py │ │ │ ├── test_controller.py │ │ │ └── test_node_configs.py │ │ └── vdisk_tests │ │ │ ├── __init__.py │ │ │ ├── test_dtl_checkup.py │ │ │ ├── test_events.py │ │ │ ├── test_get_set_config_params.py │ │ │ ├── test_snapshot.py │ │ │ └── test_vdisk.py │ ├── update.py │ ├── vdisk.py │ └── vpool.py └── update │ ├── __init__.py │ ├── alba │ ├── __init__.py │ └── updater.py │ ├── single_update.md │ └── volumedriver │ ├── __init__.py │ └── updater.py ├── packaging ├── __init__.py ├── debian │ └── debian │ │ ├── compat │ │ ├── control │ │ ├── copyright │ │ ├── openvstorage-core.conffile │ │ ├── openvstorage-core.cron.d │ │ ├── openvstorage-core.dirs │ │ ├── openvstorage-core.install │ │ ├── openvstorage-core.postinst │ │ ├── openvstorage-core.preinst │ │ ├── openvstorage-webapps.conffile │ │ ├── openvstorage-webapps.dirs │ │ ├── openvstorage-webapps.install │ │ ├── openvstorage-webapps.postinst │ │ ├── openvstorage-webapps.preinst │ │ ├── rules │ │ └── source │ │ └── format ├── redhat │ ├── cfgs │ │ ├── openvstorage-core.cfg │ │ ├── openvstorage-webapps.cfg │ │ └── openvstorage.cfg │ └── scripts │ │ ├── openvstorage-core.after-install.sh │ │ ├── openvstorage-core.before-install.sh │ │ ├── openvstorage-webapps.after-install.sh │ │ └── openvstorage-webapps.before-install.sh └── settings.json ├── scripts ├── docker │ ├── install_docker.sh │ ├── prepare_img.sh │ ├── repository_resolver.py │ ├── ubuntu:14.04 │ │ └── Dockerfile │ └── ubuntu:16.04 │ │ └── Dockerfile ├── docs │ └── generatedocs.sh ├── install │ ├── openvstorage-core.postinst.py │ └── openvstorage-webapps.postinst.py └── system │ ├── openvstorage │ ├── ovs │ └── rotate-storagedriver-logs.sh ├── specs ├── DockerEnv.md ├── Edge.md └── remove-hypervisor-dependency.md └── webapps ├── api ├── __init__.py ├── backend │ ├── __init__.py │ ├── decorators.py │ ├── serializers │ │ ├── __init__.py │ │ ├── mockups.py │ │ └── serializers.py │ ├── toolbox.py │ └── views │ │ ├── __init__.py │ │ ├── backends.py │ │ ├── backendtypes.py │ │ ├── branding.py │ │ ├── clients.py │ │ ├── diskpartitions.py │ │ ├── disks.py │ │ ├── domains.py │ │ ├── groups.py │ │ ├── messaging.py │ │ ├── roles.py │ │ ├── storagedrivers.py │ │ ├── storagerouters.py │ │ ├── tasks.py │ │ ├── users.py │ │ ├── vdisks.py │ │ └── vpools.py ├── helpers.py ├── manage.py ├── middleware.py ├── oauth2 │ ├── __init__.py │ ├── backend.py │ ├── decorators.py │ ├── redirectview.py │ ├── tokenview.py │ └── toolbox.py ├── openapi.py ├── settings.py ├── tests │ ├── __init__.py │ ├── test_api_configuration.py │ ├── test_authentication.py │ └── test_decorators.py ├── urls.py ├── view.py └── wsgi.py └── frontend ├── .jshintignore ├── app ├── main.js ├── viewmodels │ ├── 404.js │ ├── containers │ │ ├── backend │ │ │ ├── backend.js │ │ │ └── backendtype.js │ │ ├── disk │ │ │ ├── disk.js │ │ │ └── diskpartition.js │ │ ├── domain │ │ │ └── domain.js │ │ ├── shared │ │ │ └── base_container.js │ │ ├── storagedriver │ │ │ ├── configuration.js │ │ │ └── storagedriver.js │ │ ├── storagerouter │ │ │ └── storagerouter.js │ │ ├── support │ │ │ └── statsmonkey.js │ │ ├── user │ │ │ ├── client.js │ │ │ ├── group.js │ │ │ ├── role.js │ │ │ └── user.js │ │ ├── vdisk │ │ │ ├── edgeclient.js │ │ │ └── vdisk.js │ │ └── vpool │ │ │ ├── backend.js │ │ │ ├── cache.js │ │ │ ├── configuration.js │ │ │ ├── shared │ │ │ └── backend_info.js │ │ │ └── vpool.js │ ├── index.js │ ├── redirect.js │ ├── services │ │ ├── backend.js │ │ ├── domain.js │ │ ├── misc.js │ │ ├── storagedriver.js │ │ ├── storagerouter.js │ │ ├── subscriber.js │ │ ├── task.js │ │ ├── user.js │ │ ├── vdisk.js │ │ └── vpool.js │ ├── shell.js │ ├── site │ │ ├── admin │ │ │ ├── domains.js │ │ │ ├── support.js │ │ │ ├── updates.js │ │ │ └── users.js │ │ ├── backend │ │ │ └── backends.js │ │ ├── dashboard │ │ │ └── dashboard.js │ │ ├── login │ │ │ └── login.js │ │ ├── storagerouter │ │ │ ├── storagerouter-detail.js │ │ │ └── storagerouters.js │ │ ├── vdisk │ │ │ ├── vdisk-detail-data.js │ │ │ ├── vdisk-detail.js │ │ │ └── vdisks.js │ │ ├── vpool │ │ │ ├── vpool-detail.js │ │ │ └── vpools.js │ │ └── vtemplates │ │ │ └── vtemplates.js │ └── wizards │ │ ├── addbackend │ │ ├── constants.js │ │ ├── data.js │ │ ├── gather.js │ │ └── index.js │ │ ├── addvdisk │ │ ├── data.js │ │ ├── gather.js │ │ └── index.js │ │ ├── addvpool │ │ ├── confirm.js │ │ ├── data.js │ │ ├── gather_base.js │ │ ├── gather_base_cache.js │ │ ├── gather_block_cache.js │ │ ├── gather_config.js │ │ ├── gather_fragment_cache.js │ │ ├── gather_vpool.js │ │ └── index.js │ │ ├── build.js │ │ ├── changepassword │ │ ├── confirm.js │ │ ├── data.js │ │ └── index.js │ │ ├── clone │ │ ├── confirm.js │ │ ├── data.js │ │ ├── gather.js │ │ └── index.js │ │ ├── configurepartition │ │ ├── data.js │ │ ├── gather.js │ │ └── index.js │ │ ├── context.js │ │ ├── createfromtemplate │ │ ├── data.js │ │ ├── gather.js │ │ └── index.js │ │ ├── createhprmconfigs │ │ ├── confirm.js │ │ ├── data.js │ │ ├── gather.js │ │ └── index.js │ │ ├── reconfigurevpool │ │ ├── confirm.js │ │ ├── data.js │ │ ├── gather_block_cache.js │ │ ├── gather_config.js │ │ ├── gather_fragment_cache.js │ │ ├── gather_vpool.js │ │ └── index.js │ │ ├── rollback │ │ ├── data.js │ │ ├── gather.js │ │ └── index.js │ │ ├── snapshot │ │ ├── data.js │ │ ├── gather.js │ │ └── index.js │ │ ├── statsmonkeyconfigure │ │ ├── data.js │ │ ├── gather.js │ │ └── index.js │ │ ├── update │ │ ├── data.js │ │ ├── gather.js │ │ └── index.js │ │ └── vdiskmove │ │ ├── data.js │ │ ├── gather.js │ │ └── index.js ├── views │ ├── 404.html │ ├── index.html │ ├── shell.html │ ├── site │ │ ├── admin │ │ │ ├── domains.html │ │ │ ├── support.html │ │ │ ├── updates.html │ │ │ └── users.html │ │ ├── backend │ │ │ └── backends.html │ │ ├── dashboard │ │ │ └── dashboard.html │ │ ├── login │ │ │ └── login.html │ │ ├── storagerouter │ │ │ ├── storagerouter-detail.html │ │ │ └── storagerouters.html │ │ ├── vdisk │ │ │ ├── vdisk-detail.html │ │ │ └── vdisks.html │ │ ├── vpool │ │ │ ├── vpool-detail.html │ │ │ └── vpools.html │ │ └── vtemplates │ │ │ └── vtemplates.html │ └── wizards │ │ ├── addbackend │ │ └── gather.html │ │ ├── addvdisk │ │ └── gather.html │ │ ├── addvpool │ │ ├── confirm.html │ │ ├── gather_block_cache.html │ │ ├── gather_config.html │ │ ├── gather_fragment_cache.html │ │ └── gather_vpool.html │ │ ├── changepassword │ │ └── confirm.html │ │ ├── clone │ │ ├── confirm.html │ │ └── gather.html │ │ ├── configurepartition │ │ └── gather.html │ │ ├── createfromtemplate │ │ └── gather.html │ │ ├── createhprmconfigs │ │ ├── confirm.html │ │ └── gather.html │ │ ├── form.html │ │ ├── index.html │ │ ├── reconfigurevpool │ │ ├── confirm.html │ │ ├── gather_block_cache.html │ │ ├── gather_config.html │ │ ├── gather_fragment_cache.html │ │ └── gather_vpool.html │ │ ├── rollback │ │ └── gather.html │ │ ├── snapshot │ │ └── gather.html │ │ ├── statsmonkeyconfigure │ │ └── gather.html │ │ ├── update │ │ └── gather.html │ │ └── vdiskmove │ │ └── gather.html └── widgets │ ├── accessrights │ ├── view.html │ └── viewmodel.js │ ├── dropdown │ ├── contents.html │ ├── view.html │ └── viewmodel.js │ ├── footer │ ├── view.html │ └── viewmodel.js │ ├── lazylist │ ├── view.html │ └── viewmodel.js │ ├── lazyloader │ ├── view.html │ └── viewmodel.js │ ├── numberinput │ ├── view.html │ └── viewmodel.js │ ├── pager │ ├── view.html │ └── viewmodel.js │ └── searchbar │ ├── view.html │ └── viewmodel.js ├── css ├── bootstrap-default.min.css ├── bootstrap-slate.min.css ├── durandal.css └── ovs.css ├── index.html ├── karma.conf.js ├── lib ├── bootstrap │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ └── js │ │ └── bootstrap.js ├── d3-plugins │ ├── css │ │ └── slider.css │ └── js │ │ └── slider.js ├── d3 │ └── d3.v3.min.js ├── durandal │ ├── css │ │ └── durandal.css │ ├── img │ │ ├── icon.png │ │ ├── ios-startup-image-landscape.png │ │ └── ios-startup-image-portrait.png │ └── js │ │ ├── activator.js │ │ ├── app.js │ │ ├── binder.js │ │ ├── composition.js │ │ ├── events.js │ │ ├── plugins │ │ ├── dialog.js │ │ ├── history.js │ │ ├── http.js │ │ ├── observable.js │ │ ├── router.js │ │ ├── serializer.js │ │ └── widget.js │ │ ├── system.js │ │ ├── transitions │ │ └── entrance.js │ │ ├── viewEngine.js │ │ └── viewLocator.js ├── font-awesome │ ├── css │ │ └── font-awesome.min.css │ └── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 ├── i18next │ └── i18next.amd.withJQuery-1.7.1.js ├── jquery-plugins │ ├── css │ │ └── pnotify.default.css │ └── js │ │ ├── pnotify.js │ │ └── timeago.js ├── jquery │ └── jquery-3.2.1.js ├── knockout-plugins │ ├── knockout-mapping-2.4.1.js │ └── observableDictionary.js ├── knockout │ └── knockout-3.4.0.js ├── ovs │ ├── api.js │ ├── errors.js │ ├── extensions │ │ ├── knockout-bindinghandlers.js │ │ ├── knockout-extenders.js │ │ ├── knockout-extensions.js │ │ └── knockout-helpers.js │ ├── generic.js │ ├── images │ │ ├── noise.png │ │ ├── ovssmall.png │ │ └── ovssplash.png │ ├── interceptors │ │ └── http.js │ ├── plugins │ │ ├── cssloader.js │ │ └── pluginloader.js │ ├── refresher.js │ ├── routing.js │ ├── services │ │ ├── authentication.js │ │ ├── cookie.js │ │ ├── forms │ │ │ └── form.js │ │ ├── log.js │ │ ├── messaging.js │ │ ├── notifications.js │ │ ├── release.js │ │ ├── tasks.js │ │ ├── translation.js │ │ ├── viewcache.js │ │ └── xhr.js │ └── shared.js └── require │ ├── require.js │ └── text.js ├── locales └── en-US │ └── ovs.json ├── offline ├── cache.html ├── offline.html └── ovs.appcache └── tests ├── main.js └── ovs ├── api.js ├── generic.js └── refresher.js /.gitattributes: -------------------------------------------------------------------------------- 1 | # By default, all files are text with a LF eol 2 | *.* text eol=lf 3 | 4 | # Except a bunch of known binary files 5 | *.png binary 6 | *.pdf binary 7 | *.ttf binary 8 | *.woff binary 9 | *.woff2 binary 10 | *.eot binary 11 | *.otf binary 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .settings/ 2 | .pyc$ 3 | .swp$ 4 | ~$ 5 | .project 6 | .idea 7 | .pydevproject 8 | .metadata 9 | syntax: regexp 10 | \._.* 11 | .orig$ 12 | .iml 13 | -------------------------------------------------------------------------------- /GITBOOK.md: -------------------------------------------------------------------------------- 1 | # Open vStorage Framework Introduction 2 | This book documents the Open vStorage Framework. The Framework is the comfort layer offering the user an intuitive web based graphical user interface to configure and manage an Open vStorage cluster. It offers functionality for easy integration with OpenStack Cinder and VMware vSphere, it provides an easy to use API to interact with the distributed Open vStorage system, runs scheduled maintenance tasks, etc... 3 | 4 | The Open vStorage Documentation is divided into following sections: 5 | * [Framework Components](docs/components.md) 6 | * [Configuration Management](docs/configmgmt.md) 7 | * [Framework Concepts](docs/concepts.md) 8 | * [Logs](docs/log.md) 9 | * [Troubleshooting](docs/troubleshooting.md) -------------------------------------------------------------------------------- /SUMMARY.md: -------------------------------------------------------------------------------- 1 | # Summary 2 | 3 | * [Framework Components](docs/components.md) 4 | * [Data Abstraction layer](docs/dal.md) 5 | * [Configuration Management](docs/configmgmt.md) 6 | * [Framework Concepts](docs/concepts.md) 7 | * [Master and Extra Nodes](docs/masterextra.md) 8 | * [The watchers](docs/watchers.md) 9 | * [The scrubber](docs/scrubber.md) 10 | * [Scheduled Tasks](docs/scheduledtasks.md) 11 | * [Logs](docs/log.md) 12 | * [Testing](docs/testing.md) 13 | * [Automated Tests](docs/autotests.md) 14 | * [Unit Tests](docs/unittests.md) 15 | * [Troubleshooting](docs/troubleshooting.md) 16 | -------------------------------------------------------------------------------- /book.json: -------------------------------------------------------------------------------- 1 | { 2 | "structure": { 3 | "readme": "GITBOOK.md" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /config/env/ovs.sh: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | # OpenvStorage profile: executed by Bourne-compatible login shells. 18 | -------------------------------------------------------------------------------- /config/logrotate/openvstorage-logs: -------------------------------------------------------------------------------- 1 | /var/log/ovs/*.log { 2 | rotate 5 3 | size 20M 4 | compress 5 | copytruncate 6 | notifempty 7 | } -------------------------------------------------------------------------------- /config/nginx/nginx.centos.conf: -------------------------------------------------------------------------------- 1 | # For more information on configuration, see: 2 | # * Official English Documentation: http://nginx.org/en/docs/ 3 | # * Official Russian Documentation: http://nginx.org/ru/docs/ 4 | 5 | user nginx; 6 | worker_processes 4; 7 | 8 | error_log /var/log/nginx/error.log; 9 | #error_log /var/log/nginx/error.log notice; 10 | #error_log /var/log/nginx/error.log info; 11 | 12 | pid /run/nginx.pid; 13 | 14 | 15 | events { 16 | worker_connections 1024; 17 | } 18 | 19 | 20 | http { 21 | include /etc/nginx/mime.types; 22 | default_type application/octet-stream; 23 | 24 | log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 25 | '$status $body_bytes_sent "$http_referer" ' 26 | '"$http_user_agent" "$http_x_forwarded_for"'; 27 | 28 | access_log /var/log/nginx/access.log main; 29 | 30 | sendfile on; 31 | #tcp_nopush on; 32 | 33 | #keepalive_timeout 0; 34 | keepalive_timeout 65; 35 | 36 | #gzip on; 37 | 38 | index index.html index.htm; 39 | 40 | # Load modular configuration files from the /etc/nginx/conf.d directory. 41 | # See http://nginx.org/en/docs/ngx_core_module.html#include 42 | # for more information. 43 | include /etc/nginx/conf.d/*.conf; 44 | } 45 | -------------------------------------------------------------------------------- /config/nginx/openvstorage.conf: -------------------------------------------------------------------------------- 1 | server { 2 | listen 80; 3 | server_name ""; 4 | server_name_in_redirect off; 5 | 6 | root /var/www/80; 7 | 8 | location /api/ { 9 | return 444; 10 | } 11 | location / { 12 | rewrite ^ https://$host$request_uri? permanent; 13 | } 14 | location /logging/ { 15 | rewrite ^ http://$host:9900$request_uri? permanent; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /config/nginx/openvstorage_ssl.conf: -------------------------------------------------------------------------------- 1 | server { 2 | listen 443 ssl http2 default_server; 3 | ssl on; 4 | ssl_certificate /opt/OpenvStorage/config/ssl/server.crt; 5 | ssl_certificate_key /opt/OpenvStorage/config/ssl/server.key; 6 | server_name ""; 7 | server_name_in_redirect off; 8 | 9 | root /var/www/80; 10 | 11 | location /api/ { 12 | proxy_pass_header Server; 13 | proxy_set_header Host $http_host; 14 | proxy_redirect off; 15 | proxy_set_header X-Real-IP $remote_addr; 16 | proxy_set_header X-Scheme $scheme; 17 | proxy_set_header X-Forwarded-Ssl on; 18 | proxy_connect_timeout 10; 19 | proxy_read_timeout 600; 20 | proxy_pass http://localhost:8002/; 21 | } 22 | location /logging/ { 23 | rewrite ^/logging(.*)$ http://$host:9900$1 permanent; 24 | } 25 | location / { 26 | alias /opt/OpenvStorage/webapps/frontend/; 27 | autoindex on; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /config/templates/systemd/ovs-albaproxy.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=ALBA proxy 3 | After=local-fs.target network-online.target 4 | Before=ovs-volumedriver_.service 5 | 6 | [Service] 7 | Type=simple 8 | User=root 9 | Group=root 10 | SyslogIdentifier=%N 11 | Environment=LD_LIBRARY_PATH=/usr/lib/alba 12 | # Garbage collection for ALBA 13 | Environment=OCAMLRUNPARAM='b,a=1,s=4096k,O=50' 14 | ExecStartPre=/bin/bash -c "if [ ! -d ]; then mkdir ; chown ovs:ovs ; fi; echo =`` > /.version" 15 | ExecStart=/usr/bin/alba proxy-start --config --log-sink 16 | ExecReload=/bin/bash -c "kill -s SIGUSR1 $MAINPID" 17 | Restart=on-failure 18 | RestartSec=5 19 | TimeoutStopSec=60 20 | LimitNOFILE=8192 21 | LimitMEMLOCK=infinity 22 | 23 | [Install] 24 | WantedBy=multi-user.target ovs-volumedriver_.service 25 | -------------------------------------------------------------------------------- /config/templates/systemd/ovs-arakoon.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Arakoon service for cluster 3 | After=local-fs.target network-online.target 4 | 5 | [Service] 6 | Type=simple 7 | User=ovs 8 | Group=ovs 9 | SyslogIdentifier=%N 10 | Environment=PYTHONPATH=/opt/OpenvStorage 11 | # Garbage collection for ALBA 12 | Environment=OCAMLRUNPARAM='b,a=1,s=4096k,O=50' 13 | WorkingDirectory=/opt/OpenvStorage 14 | ExecStartPre=/bin/bash -c "if [ ! -d ]; then mkdir ; chown ovs:ovs ; fi; echo \"=``;\" > /.version" 15 | ExecStart=/usr/bin/arakoon --node -config -autofix -start 16 | Restart=on-failure 17 | RestartSec=5 18 | TimeoutStopSec=60 19 | LimitNOFILE=8192 20 | 21 | [Install] 22 | WantedBy=multi-user.target 23 | -------------------------------------------------------------------------------- /config/templates/systemd/ovs-dtl.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Open vStorage distributed transaction log 3 | After=local-fs.target network-online.target ovs-watcher-volumedriver.service 4 | 5 | [Service] 6 | Type=simple 7 | SyslogIdentifier=%N 8 | ExecStartPre=/bin/bash -c "if [ ! -d ]; then mkdir ; chown ovs:ovs ; fi; echo =`` > /.version" 9 | ExecStart=/usr/bin/failovercache --path --address --port --transport --logrotation --logsink 10 | Restart=on-failure 11 | RestartSec=5 12 | TimeoutStopSec=60 13 | LimitNOFILE=4096 14 | 15 | [Install] 16 | WantedBy=multi-user.target ovs-watcher-volumedriver.service 17 | -------------------------------------------------------------------------------- /config/templates/systemd/ovs-scheduled-tasks.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Open vStorage scheduled tasks 3 | After=ovs-watcher-framework.service 4 | BindsTo=ovs-watcher-framework.service 5 | 6 | [Service] 7 | Type=simple 8 | User=ovs 9 | Group=ovs 10 | SyslogIdentifier=%N 11 | WorkingDirectory=/opt/OpenvStorage 12 | ExecStart=/usr/bin/celery beat -A ovs.celery_run -l debug -S ovs.celery_beat.DistributedScheduler 13 | Restart=on-failure 14 | RestartSec=5 15 | TimeoutStopSec=60 16 | 17 | [Install] 18 | WantedBy=multi-user.target ovs-watcher-framework.service 19 | -------------------------------------------------------------------------------- /config/templates/systemd/ovs-support-agent.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Open vStorage support agent 3 | After=local-fs.target network-online.target 4 | 5 | [Service] 6 | Type=simple 7 | SyslogIdentifier=%N 8 | Environment=PYTHONPATH=/opt/OpenvStorage 9 | ExecStart=/usr/bin/python2 /opt/OpenvStorage/ovs/extensions/support/agent.py 10 | Restart=on-failure 11 | TimeoutStopSec=3600 12 | 13 | [Install] 14 | WantedBy=multi-user.target 15 | -------------------------------------------------------------------------------- /config/templates/systemd/ovs-volumedriver.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Open vStorage StorageDriver 3 | After=ovs-watcher-volumedriver.service 4 | Wants=ovs-watcher-volumedriver.service 5 | 6 | [Service] 7 | Type=simple 8 | SyslogIdentifier=%N 9 | Environment=METADATASTORE_BITS= 10 | ExecStartPre=/bin/bash -c "if [ ! -d ]; then mkdir ; chown ovs:ovs ; fi; touch /storagedriver_.lock; echo =`` > /.version" 11 | ExecStart=/usr/bin/volumedriver_fs.sh -f --config --lock-file /storagedriver_.lock --logrotation --mountpoint --logsink -o big_writes -o sync_read -o allow_other -o use_ino -o default_permissions -o uid= -o gid= -o umask=0002 12 | ExecStop=/bin/bash -c "if mount | grep ; then fusermount -u ; fi " 13 | ExecStopPost=/bin/bash -c "for i in `seq 0 9`; do if mount | grep 'on type '; then sleep 10s; else break; fi; done; if mount | grep 'on type '; then umount -l ; pkill -f -- 'volumedriver_fs .*--mountpoint '; fi; rm /storagedriver_.lock" 14 | Restart=on-failure 15 | RestartSec=360 16 | TimeoutStopSec= 17 | LimitMEMLOCK=infinity 18 | 19 | [Install] 20 | WantedBy=multi-user.target ovs-watcher-volumedriver.service 21 | -------------------------------------------------------------------------------- /config/templates/systemd/ovs-volumerouter-consumer.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Open vStorage volumerouter consumer 3 | After=ovs-watcher-framework.service 4 | BindsTo=ovs-watcher-framework.service 5 | 6 | [Service] 7 | Type=simple 8 | SyslogIdentifier=%N 9 | Environment=PYTHONPATH=/opt/OpenvStorage 10 | WorkingDirectory=/opt/OpenvStorage 11 | ExecStart=/usr/bin/python2 /opt/OpenvStorage/ovs/extensions/rabbitmq/consumer.py volumerouter --durable 12 | Restart=on-failure 13 | RestartSec=5 14 | TimeoutStopSec=60 15 | 16 | [Install] 17 | WantedBy=multi-user.target ovs-watcher-framework.service 18 | -------------------------------------------------------------------------------- /config/templates/systemd/ovs-watcher-config.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Watcher for the configuration cluster 3 | After=local-fs.target network-online.target 4 | 5 | [Service] 6 | Type=simple 7 | SyslogIdentifier=%N 8 | Environment=PYTHONPATH=/opt/OpenvStorage 9 | # The watcher will block until all services are running 10 | ExecStartPre=/usr/bin/python /opt/OpenvStorage/ovs/extensions/generic/watcher.py config wait 11 | # The waiter will block until one of the services is not reachable anymore 12 | ExecStart=/usr/bin/python /opt/OpenvStorage/ovs/extensions/generic/watcher.py config check 13 | Restart=on-failure 14 | TimeoutStopSec=3600 15 | 16 | [Install] 17 | WantedBy=multi-user.target 18 | -------------------------------------------------------------------------------- /config/templates/systemd/ovs-watcher-framework.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Watcher for Open vStorage master services 3 | After=local-fs.target network-online.target 4 | 5 | [Service] 6 | Type=simple 7 | SyslogIdentifier=%N 8 | Environment=PYTHONPATH=/opt/OpenvStorage 9 | # The watcher will block until all services are running 10 | ExecStartPre=/usr/bin/python /opt/OpenvStorage/ovs/extensions/generic/watcher.py framework wait 11 | # The waiter will block until one of the services is not reachable anymore 12 | ExecStart=/usr/bin/python /opt/OpenvStorage/ovs/extensions/generic/watcher.py framework check 13 | Restart=on-failure 14 | TimeoutStopSec=3600 15 | 16 | [Install] 17 | WantedBy=multi-user.target 18 | -------------------------------------------------------------------------------- /config/templates/systemd/ovs-watcher-volumedriver.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Watcher for Open vStorage master services 3 | After=local-fs.target network-online.target 4 | 5 | [Service] 6 | Type=simple 7 | SyslogIdentifier=%N 8 | Environment=PYTHONPATH=/opt/OpenvStorage 9 | # The watcher will block until all services are running 10 | ExecStartPre=/usr/bin/python /opt/OpenvStorage/ovs/extensions/generic/watcher.py volumedriver wait 11 | # The waiter will block until one of the services is not reachable anymore 12 | ExecStart=/usr/bin/python /opt/OpenvStorage/ovs/extensions/generic/watcher.py volumedriver check 13 | Restart=on-failure 14 | TimeoutStopSec=3600 15 | 16 | [Install] 17 | WantedBy=multi-user.target 18 | -------------------------------------------------------------------------------- /config/templates/systemd/ovs-webapp-api.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Open vStorage webapp API 3 | After=ovs-watcher-framework.service 4 | BindsTo=ovs-watcher-framework.service 5 | 6 | [Service] 7 | Type=simple 8 | SyslogIdentifier=%N 9 | Environment=PYTHONPATH=:/opt/OpenvStorage:/opt/OpenvStorage/webapps 10 | WorkingDirectory=/opt/OpenvStorage/webapps 11 | ExecStart=/usr/bin/gunicorn -c /opt/OpenvStorage/config/django_gunicorn_ovs.cfg.py api.wsgi 12 | Restart=on-failure 13 | RestartSec=5 14 | TimeoutStopSec=60 15 | 16 | [Install] 17 | WantedBy=multi-user.target ovs-watcher-framework.service 18 | -------------------------------------------------------------------------------- /config/templates/systemd/ovs-workers.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Open vStorage workers 3 | After=ovs-watcher-framework.service 4 | BindsTo=ovs-watcher-framework.service 5 | 6 | [Service] 7 | Type=simple 8 | Group=ovs 9 | User=ovs 10 | SyslogIdentifier=%N 11 | WorkingDirectory=/opt/OpenvStorage 12 | ExecStartPre=/usr/bin/python /opt/OpenvStorage/ovs/celery_run.py clear_cache 13 | ExecStart=/usr/bin/celery worker -A ovs.celery_run -l debug -Q ovs_generic,ovs_ --autoscale=8,2 -Ofair 14 | Restart=on-failure 15 | RestartSec=5 16 | TimeoutStopSec=60 17 | 18 | [Install] 19 | WantedBy=multi-user.target ovs-watcher-framework.service 20 | -------------------------------------------------------------------------------- /config/templates/upstart/ovs-albaproxy.conf: -------------------------------------------------------------------------------- 1 | description "ALBA proxy" 2 | 3 | start on starting ovs-volumedriver_ 4 | stop on stopped ovs-volumedriver_ 5 | 6 | kill timeout 60 7 | respawn 8 | respawn limit 10 5 9 | console log 10 | setuid root 11 | setgid root 12 | limit nofile 8192 8192 13 | limit memlock unlimited unlimited 14 | 15 | env ALBA_FAIL_FAST=true 16 | env LD_LIBRARY_PATH=/usr/lib/alba 17 | # Garbage collection for ALBA 18 | env OCAMLRUNPARAM='b,a=1,s=4096k,O=50' 19 | 20 | pre-start script 21 | if [ ! -d ] 22 | then 23 | mkdir 24 | chown ovs:ovs 25 | fi 26 | echo =`` > /.version 27 | end script 28 | 29 | exec /usr/bin/alba proxy-start --config --log-sink 30 | -------------------------------------------------------------------------------- /config/templates/upstart/ovs-arakoon.conf: -------------------------------------------------------------------------------- 1 | description "Arakoon upstart for cluster " 2 | 3 | start on (local-filesystems and started networking ) 4 | stop on runlevel [016] 5 | 6 | kill timeout 60 7 | respawn 8 | respawn limit 10 5 9 | console log 10 | setuid ovs 11 | setgid ovs 12 | limit nofile 8192 8192 13 | 14 | env PYTHONPATH=/opt/OpenvStorage 15 | # Garbage collection for ALBA 16 | env OCAMLRUNPARAM='b,a=1,s=4096k,O=50' 17 | 18 | chdir /opt/OpenvStorage 19 | 20 | pre-start script 21 | if [ ! -d ] 22 | then 23 | mkdir 24 | chown ovs:ovs 25 | fi 26 | echo "=``;" > /.version 27 | end script 28 | 29 | exec arakoon --node -config -autofix -start 30 | -------------------------------------------------------------------------------- /config/templates/upstart/ovs-dtl.conf: -------------------------------------------------------------------------------- 1 | description "Open vStorage distributed transaction log" 2 | 3 | start on started ovs-watcher-volumedriver 4 | stop on runlevel [016] 5 | 6 | kill timeout 60 7 | respawn 8 | respawn limit 10 5 9 | console log 10 | limit nofile 4096 4096 11 | 12 | exec /usr/bin/failovercache --path --address --port --transport --logrotation --logsink 13 | -------------------------------------------------------------------------------- /config/templates/upstart/ovs-scheduled-tasks.conf: -------------------------------------------------------------------------------- 1 | description "Open vStorage scheduled tasks" 2 | 3 | start on started ovs-watcher-framework 4 | stop on stopping ovs-watcher-framework 5 | 6 | kill timeout 60 7 | respawn 8 | respawn limit 10 5 9 | console log 10 | 11 | setuid ovs 12 | setgid ovs 13 | 14 | chdir /opt/OpenvStorage 15 | exec /usr/bin/celery beat -A ovs.celery_run -l debug -S ovs.celery_beat.DistributedScheduler 16 | -------------------------------------------------------------------------------- /config/templates/upstart/ovs-support-agent.conf: -------------------------------------------------------------------------------- 1 | description "Open vStorage support agent" 2 | 3 | start on runlevel [2345] 4 | stop on runlevel [016] 5 | 6 | kill timeout 3600 7 | respawn 8 | 9 | console none 10 | 11 | env PYTHONPATH=/opt/OpenvStorage 12 | exec /usr/bin/python2 /opt/OpenvStorage/ovs/extensions/support/agent.py 13 | -------------------------------------------------------------------------------- /config/templates/upstart/ovs-volumedriver.conf: -------------------------------------------------------------------------------- 1 | description "Open vStorage StorageDriver" 2 | 3 | start on started ovs-watcher-volumedriver 4 | stop on runlevel [016] 5 | 6 | kill timeout 7 | respawn 8 | respawn limit 10 360 9 | console log 10 | limit memlock unlimited unlimited 11 | env METADATASTORE_BITS= 12 | emits volumedriver 13 | 14 | pre-start script 15 | if [ ! -d ] 16 | then 17 | mkdir 18 | chown ovs:ovs 19 | fi 20 | touch /storagedriver_.lock 21 | echo =`` > /.version 22 | end script 23 | 24 | pre-stop script 25 | if mount | grep ; then 26 | fusermount -u 27 | fi 28 | rm /storagedriver_.lock 29 | end script 30 | 31 | exec /usr/bin/volumedriver_fs.sh -f --config --lock-file /storagedriver_.lock --logrotation --mountpoint --logsink -o big_writes -o sync_read -o allow_other -o use_ino -o default_permissions -o uid= -o gid= -o umask=0002 32 | -------------------------------------------------------------------------------- /config/templates/upstart/ovs-volumerouter-consumer.conf: -------------------------------------------------------------------------------- 1 | description "Open vStorage volumerouter consumer" 2 | 3 | start on started ovs-watcher-framework 4 | stop on stopping ovs-watcher-framework 5 | 6 | kill timeout 60 7 | respawn 8 | respawn limit 10 5 9 | console log 10 | 11 | env PYTHONPATH=/opt/OpenvStorage 12 | chdir /opt/OpenvStorage 13 | 14 | exec /usr/bin/python2 /opt/OpenvStorage/ovs/extensions/rabbitmq/consumer.py volumerouter --durable 15 | -------------------------------------------------------------------------------- /config/templates/upstart/ovs-watcher-config.conf: -------------------------------------------------------------------------------- 1 | description "Watcher for the configuration cluster" 2 | 3 | start on runlevel [2345] 4 | stop on runlevel [016] 5 | 6 | kill timeout 3600 7 | respawn 8 | console log 9 | 10 | env PYTHONPATH=/opt/OpenvStorage 11 | 12 | pre-start script 13 | # The watcher will block until all services are running 14 | python /opt/OpenvStorage/ovs/extensions/generic/watcher.py config wait 15 | end script 16 | 17 | script 18 | # The waiter will block until one of the services is not reachable anymore 19 | python /opt/OpenvStorage/ovs/extensions/generic/watcher.py config check 20 | end script 21 | -------------------------------------------------------------------------------- /config/templates/upstart/ovs-watcher-framework.conf: -------------------------------------------------------------------------------- 1 | description "Watcher for Open vStorage master services" 2 | 3 | start on runlevel [2345] 4 | stop on runlevel [016] 5 | 6 | kill timeout 3600 7 | respawn 8 | console log 9 | 10 | env PYTHONPATH=/opt/OpenvStorage 11 | 12 | pre-start script 13 | # The watcher will block until all services are running 14 | python /opt/OpenvStorage/ovs/extensions/generic/watcher.py framework wait 15 | end script 16 | 17 | script 18 | # The waiter will block until one of the services is not reachable anymore 19 | python /opt/OpenvStorage/ovs/extensions/generic/watcher.py framework check 20 | end script 21 | -------------------------------------------------------------------------------- /config/templates/upstart/ovs-watcher-volumedriver.conf: -------------------------------------------------------------------------------- 1 | description "Watcher for Open vStorage master services" 2 | 3 | start on runlevel [2345] 4 | stop on runlevel [016] 5 | 6 | kill timeout 3600 7 | respawn 8 | console log 9 | 10 | env PYTHONPATH=/opt/OpenvStorage 11 | 12 | pre-start script 13 | # The watcher will block until all services are running 14 | python /opt/OpenvStorage/ovs/extensions/generic/watcher.py volumedriver wait 15 | end script 16 | 17 | script 18 | # The waiter will block until one of the services is not reachable anymore 19 | python /opt/OpenvStorage/ovs/extensions/generic/watcher.py volumedriver check 20 | end script 21 | -------------------------------------------------------------------------------- /config/templates/upstart/ovs-webapp-api.conf: -------------------------------------------------------------------------------- 1 | description "Open vStorage webapp API" 2 | 3 | start on started ovs-watcher-framework 4 | stop on stopping ovs-watcher-framework 5 | 6 | kill timeout 60 7 | respawn 8 | respawn limit 10 5 9 | console log 10 | limit memlock unlimited unlimited 11 | 12 | env PYTHONPATH=:/opt/OpenvStorage 13 | 14 | chdir /opt/OpenvStorage/webapps 15 | exec /usr/bin/gunicorn -c /opt/OpenvStorage/config/django_gunicorn_ovs.cfg.py api.wsgi 16 | -------------------------------------------------------------------------------- /config/templates/upstart/ovs-workers.conf: -------------------------------------------------------------------------------- 1 | description "Open vStorage workers" 2 | 3 | start on started ovs-watcher-framework 4 | stop on stopping ovs-watcher-framework 5 | 6 | kill timeout 60 7 | respawn 8 | respawn limit 10 5 9 | console log 10 | limit memlock unlimited unlimited 11 | 12 | setuid ovs 13 | setgid ovs 14 | 15 | pre-start script 16 | # Clear out any ensure single keys 17 | python /opt/OpenvStorage/ovs/celery_run.py clear_cache 18 | end script 19 | 20 | chdir /opt/OpenvStorage 21 | exec /usr/bin/celery worker -A ovs.celery_run -l debug -Q ovs_generic,ovs_ --autoscale=8,2 -Ofair 22 | -------------------------------------------------------------------------------- /docs/Images/Open-vStorge-Services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/docs/Images/Open-vStorge-Services.png -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | For all Framework documentation, please visit: 2 | 3 | https://openvstorage.gitbooks.io/framework 4 | -------------------------------------------------------------------------------- /docs/components.md: -------------------------------------------------------------------------------- 1 | # Open vStorage Components 2 | The Open vStorage framework consists of different components: 3 | * [Data Abstraction layer](dal.md) 4 | -------------------------------------------------------------------------------- /docs/concepts.md: -------------------------------------------------------------------------------- 1 | # Open vStorage Concepts 2 | Some important Open vStorage concepts: 3 | * [Master and Extra Nodes](masterextra.md) 4 | * [The watchers](watchers.md) 5 | * [The scrubber](watchers.md) 6 | -------------------------------------------------------------------------------- /docs/internal/frontend.md: -------------------------------------------------------------------------------- 1 | # Frontend stack 2 | 3 | Our frontend relies on the [Durandal framework](http://durandaljs.com), which in turn uses Knockout for databinding. The GUI is implemented as an MVC, and this is projected in the structure of the webapps. 4 | Javascript version used is ES4, with certain ES5 backports. 5 | 6 | ## GUI entry point 7 | `main.js` 8 | - configure some i8n and plugin settings 9 | - set application root to `shell.js` 10 | 11 | `shell.js` 12 | - loads in all routes, build navigation model and direct unknown routes 13 | - loads in layout via css 14 | - loads in translation 15 | - loads in backend module if needed 16 | - activate router 17 | 18 | `index.js` : 19 | - adds guarding to routes if necessary 20 | - maps routes to modules (via durandal `childrouter.map`) 21 | - handles logging in 22 | - directs to landing page `viewmodels/index` 23 | 24 | ## Pluginloader 25 | Loads pages by fetching hooks for all plugins. Supported plugins so far: alba and iSCSI. 26 | The hooks that are found (`systems.acquire(`)) in the provided folders, are stored in the `routing.extraRoutes` and `routing.extraPatches` 27 | from the `ovs.routing.js` object, as well as saved in a viewcache (`shell.js`) 28 | -------------------------------------------------------------------------------- /docs/internal/readme.md: -------------------------------------------------------------------------------- 1 | # Readme 2 | This documentation section is more focussed on the internal workings of the Framework -------------------------------------------------------------------------------- /docs/internal/update.md: -------------------------------------------------------------------------------- 1 | # Update 2 | The update of the Framework is managed by the UpdateController. The Framework provides a way to update the complete 3 | cluster in one go. Mixing up versions is not supported as there is no versioned coping system and 4 | workers of a different version could do things differently than the newer version. 5 | 6 | ## Plugins 7 | Plugins are updated through the main UpdateController by calling the respective hooks. These hooked functions 8 | return data about the packages to update. 9 | 10 | This could actually be offloaded to the package manager itself. DPKG offers triggers to be executed upon updating a certain package. 11 | The plugins could setup these trigger-listeners for their own and do an update when the package was updated. 12 | ## Drawbacks 13 | The cluster has to be updated in one go. This means that the API and Workers are down during the complete update 14 | - Unavailability 15 | - No mixing support 16 | - Unscalable 17 | - Slow in bigger environments 18 | - All update data is fetched upfront for all nodes in a cluster 19 | - Hard to recover -------------------------------------------------------------------------------- /docs/internal/volumedriver_events.md: -------------------------------------------------------------------------------- 1 | # Volumedriver Events 2 | The volumedriver throws event onto the messagebus. The messagebus is [configured in the StorageDriverConfig](https://github.com/openvstorage/framework/blob/updated_docs/ovs/extensions/storageserver/storagedriverconfig/storagedriver.py#L353) 3 | that [defaults to the configured messagequeue]((https://github.com/openvstorage/framework/blob/updated_docs/ovs/extensions/storageserver/storagedriverconfig/storagedriver.py#L128)) (in our case rabbitmq). 4 | 5 | ## Handling the events 6 | The Volumedriver events are pushed to the `volumerouter` queue by default. This is queue separated from the `celery workers`. 7 | 8 | To process them, the Framework deploys the `volumerouter-consumer` service on the master nodes. 9 | This is a simple [consumer](../../ovs/extensions/rabbitmq/consumer.py) that maps the thrown volumedriver events using the [available mapping](../../ovs/extensions/rabbitmq/mappings/mapping.py). 10 | It uses the [processor](../../ovs/extensions/rabbitmq/processor.py) in order to process the body of the event and offload the handling to celery/something else (dictated by the mapping) 11 | -------------------------------------------------------------------------------- /docs/openvstorage-erd.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/docs/openvstorage-erd.pdf -------------------------------------------------------------------------------- /docs/testing.md: -------------------------------------------------------------------------------- 1 | ## OpenvStorage Testing 2 | 3 | For OpenvStorage we have 2 types of tests 4 | * [Automated Tests](https://github.com/openvstorage/integrationtests) 5 | * [Unit Tests](unittests.md) 6 | -------------------------------------------------------------------------------- /ovs/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains all OVS python logic 19 | This directory is used for dynamical loading using imp. This means that it won't be able to resolve 20 | """ 21 | -------------------------------------------------------------------------------- /ovs/cli/config/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | from .config import edit, list, list_recursive, get 18 | from ovs_extensions.cli import OVSGroup 19 | 20 | config_group = OVSGroup('config', help='Use OVS config management') 21 | config_group.add_command(edit) 22 | config_group.add_command(list) 23 | config_group.add_command(list_recursive) 24 | config_group.add_command(get) 25 | -------------------------------------------------------------------------------- /ovs/cli/entry.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | from ovs.cli import ovs 18 | 19 | if __name__ == '__main__': 20 | ovs() # Invokes the ovs CLI 21 | -------------------------------------------------------------------------------- /ovs/cli/local_update/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | from .local_update import alba, volumedriver 18 | from ovs_extensions.cli import OVSGroup 19 | 20 | local_update_group = OVSGroup('local_update', help='Run automated local update') 21 | 22 | local_update_group.add_command(alba) 23 | local_update_group.add_command(volumedriver) 24 | -------------------------------------------------------------------------------- /ovs/cli/local_update/local_update.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | import click 18 | from ..commands import OVSCommand 19 | 20 | extra_options = {'cls': OVSCommand} 21 | 22 | 23 | @click.command('volumedriver', help='Update all volumedriver services on the current node', **extra_options) 24 | def volumedriver(): 25 | from ovs.update import VolumeDriverUpdater 26 | from ovs.extensions.generic.system import System 27 | VolumeDriverUpdater.do_update(System.get_my_machine_id(), True) 28 | 29 | @click.command('alba', help='Update all alba services on the current node', **extra_options) 30 | def alba(): 31 | from ovs.update import AlbaComponentUpdater 32 | from ovs.extensions.generic.system import System 33 | AlbaComponentUpdater.do_update(System.get_my_machine_id(), True) 34 | -------------------------------------------------------------------------------- /ovs/cli/misc/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | import click 18 | from .misc import collect_logs as _collect_logs 19 | from ..commands import OVSCommand 20 | 21 | 22 | extra_options = {'section_header':'Miscellaneous', 23 | 'cls': OVSCommand} 24 | 25 | 26 | @click.command('collect', help='Collect all ovs logs to a tarball (for support purposes)', 27 | command_parameter_help= 'logs', **extra_options) 28 | @click.argument('logs', required=True, type=click.STRING) 29 | def collect_logs(logs): 30 | _collect_logs() 31 | 32 | 33 | @click.command('version', help='List all ovs packages and their respective versions', 34 | **extra_options) 35 | def version_command(): 36 | from ovs.extensions.packages.packagefactory import PackageFactory 37 | mgr = PackageFactory.get_manager() 38 | for package, version in mgr.get_installed_versions().iteritems(): 39 | print '{0: <30} {1}'.format(package,version) 40 | -------------------------------------------------------------------------------- /ovs/cli/monitor/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | from .monitor import mds, services, heartbeat 18 | from ovs_extensions.cli import OVSGroup 19 | 20 | monitor_group = OVSGroup('monitor', help='Monitor several aspects of the framework') 21 | 22 | monitor_group.add_command(mds) 23 | monitor_group.add_command(services) 24 | monitor_group.add_command(heartbeat) 25 | -------------------------------------------------------------------------------- /ovs/cli/monitor/monitor.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | import click 18 | from ..commands import OVSCommand 19 | 20 | extra_options = {'cls': OVSCommand} 21 | 22 | 23 | @click.command('mds', help='Watch Open vStorage MDS clusters for all vPools per StorageRouter', **extra_options) 24 | def mds(): 25 | from ovs.lib.mdsservice import MDSServiceController 26 | MDSServiceController.monitor_mds_layout() 27 | 28 | 29 | @click.command('services', help='Watch Open vStorage services', **extra_options) 30 | def services(): 31 | from ovs.extensions.services.servicefactory import ServiceFactory 32 | ServiceFactory.get_manager().monitor_services() 33 | 34 | 35 | @click.command('heartbeat', help='Send an internal heartbeat', **extra_options) 36 | def heartbeat(): 37 | from ovs.extensions.generic.heartbeat import HeartBeat 38 | HeartBeat.pulse() 39 | -------------------------------------------------------------------------------- /ovs/cli/remove/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | from ovs_extensions.cli import OVSGroup 18 | from .remove import remove_node 19 | 20 | 21 | remove_group = OVSGroup('remove', help='Removal of nodes') 22 | remove_group.add_command(remove_node) -------------------------------------------------------------------------------- /ovs/cli/remove/remove.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | import click 18 | from ..commands import OVSCommand 19 | 20 | 21 | @click.command('node', help='Remove node from cluster', command_parameter_help='', cls=OVSCommand) 22 | @click.argument('IP') 23 | @click.option('--force-yes', required=False, default=False, is_flag=True) 24 | def remove_node(ip, force_yes): 25 | from ovs.lib.noderemoval import NodeRemovalController 26 | NodeRemovalController.remove_node(node_ip=str(ip), silent=force_yes) 27 | 28 | -------------------------------------------------------------------------------- /ovs/cli/rollback/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | import click 18 | from ..commands import OVSCommand 19 | 20 | 21 | @click.command('rollback', help='Roll back a failed setup on this node', section_header='Rollback', cls=OVSCommand) 22 | def rollback_command(): 23 | from ovs.lib.nodeinstallation import NodeInstallationController 24 | 25 | NodeInstallationController.rollback_setup() 26 | -------------------------------------------------------------------------------- /ovs/cli/unittesting/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | from __future__ import absolute_import 17 | 18 | import click 19 | from ..commands import UnittestCommand 20 | from ovs_extensions.cli.unittesting import unittest_command_unwrapped 21 | 22 | 23 | @click.command('unittest', help='Run all or a part of the OVS unittest suite', section_header='Unittest', cls=UnittestCommand) 24 | @click.argument('action', required=False, default=None, type=click.STRING) 25 | @click.option('--averages', is_flag=True, default=False) 26 | def unittest_command(action, averages): 27 | return unittest_command_unwrapped(action, averages) 28 | 29 | -------------------------------------------------------------------------------- /ovs/cli/update/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | import click 18 | from ..commands import OVSCommand 19 | 20 | 21 | @click.command('update', help='Update specified components on all nodes in cluster', 22 | section_header='Update', command_parameter_help='', cls=OVSCommand) 23 | @click.argument('components', nargs=-1) 24 | def update_command(components): 25 | from ovs.lib.update import UpdateController 26 | 27 | if len(components) == 1: 28 | components = components[0].split(',') # for backwards compatiblity: comma-separated list 29 | 30 | components = [str(i) for i in components] 31 | UpdateController.execute_update(components) 32 | -------------------------------------------------------------------------------- /ovs/constants/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | -------------------------------------------------------------------------------- /ovs/constants/celery.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | CELERY_BASE = 'celery' 4 | CELERY_TASKS_LISTS_OUTPUT_PATH = os.path.join(os.path.sep, CELERY_BASE, 'tasks_list') 5 | -------------------------------------------------------------------------------- /ovs/constants/dal.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | DAL related constants 19 | """ 20 | 21 | NAMESPACE = 'ovs_data' # Arakoon namespace 22 | -------------------------------------------------------------------------------- /ovs/constants/ipython.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | COMMAND_PROFILE_LOCATE = ['ipython', 'locate', 'profile'] 18 | COMMAND_PROFILE_CREATE = ['ipython', 'profile', 'create'] 19 | 20 | CONFIG_FILE_NAME = 'ipython_config.py' 21 | LOGGING_EXEC_LINES = ['import logging.config', 22 | 'from ovs.extensions.log import get_log_config_shells', 23 | 'logging.config.dictConfig(get_log_config_shells())'] 24 | LOGGING_EXEC_LINES_CONFIG = 'c.InteractiveShellApp.exec_lines = {}\n'.format(LOGGING_EXEC_LINES) 25 | -------------------------------------------------------------------------------- /ovs/constants/packages.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | 18 | RABBIT_MQ_PACKAGE_NAME = 'rabbitmq-server' 19 | -------------------------------------------------------------------------------- /ovs/constants/roles.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | 18 | DB = 'DB' 19 | DTL = 'DTL' 20 | SCRUB = 'SCRUB' 21 | WRITE = 'WRITE' 22 | BACKEND = 'BACKEND' -------------------------------------------------------------------------------- /ovs/constants/s3.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | S3_BASE = '/ovs/framework/hosts/{0}/s3' 18 | -------------------------------------------------------------------------------- /ovs/constants/statuses.py: -------------------------------------------------------------------------------- 1 | STATUS_FAILURE = 'FAILURE' 2 | STATUS_RUNNING = 'RUNNING' 3 | STATUS_DELETING = 'DELETING' 4 | STATUS_EXTENDING = 'EXTENDING' 5 | STATUS_SHRINKING = 'SHRINKING' 6 | STATUS_INSTALLING = 'INSTALLING' 7 | -------------------------------------------------------------------------------- /ovs/constants/storagedriver.py: -------------------------------------------------------------------------------- 1 | VOLDRV_DTL_SYNC = 'Synchronous' 2 | VOLDRV_DTL_ASYNC = 'Asynchronous' 3 | VOLDRV_DTL_MANUAL_MODE = 'Manual' 4 | VOLDRV_DTL_AUTOMATIC_MODE = 'Automatic' 5 | VOLDRV_DTL_TRANSPORT_TCP = 'TCP' 6 | VOLDRV_DTL_TRANSPORT_RSOCKET = 'RSocket' 7 | 8 | FRAMEWORK_DTL_SYNC = 'sync' 9 | FRAMEWORK_DTL_ASYNC = 'a_sync' 10 | FRAMEWORK_DTL_NO_SYNC = 'no_sync' 11 | FRAMEWORK_DTL_TRANSPORT_TCP = 'tcp' 12 | FRAMEWORK_DTL_TRANSPORT_RSOCKET = 'rdma' 13 | 14 | CACHE_BLOCK = 'block_cache' 15 | CACHE_FRAGMENT = 'fragment_cache' 16 | 17 | VPOOL_DTL_MODE_MAP = {FRAMEWORK_DTL_SYNC: VOLDRV_DTL_SYNC, 18 | FRAMEWORK_DTL_ASYNC: VOLDRV_DTL_ASYNC, 19 | FRAMEWORK_DTL_NO_SYNC: None} 20 | 21 | 22 | # Network config 23 | NETWORK_MAX_NEIGHBOUR_DISTANCE = 9999 -------------------------------------------------------------------------------- /ovs/constants/vdisk.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | VDisk Constants module. Contains constants related to vdisks 19 | """ 20 | 21 | # General 22 | LOCK_NAMESPACE = 'ovs_locks' 23 | 24 | # Scrub related 25 | SCRUB_VDISK_LOCK = '{0}_{{0}}'.format(LOCK_NAMESPACE) # Second format is the vdisk guid 26 | SCRUB_VDISK_EXCEPTION_MESSAGE = 'VDisk is being scrubbed. Unable to remove snapshots at this time' 27 | -------------------------------------------------------------------------------- /ovs/constants/vpool.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | import os 18 | 19 | VPOOL_UPDATE_KEY = os.path.join(os.path.sep, 'ovs', 'volumedriver', 'update', 'storagerouter') 20 | 21 | STORAGEDRIVER_SERVICE_BASE = 'ovs-volumedriver' 22 | 23 | PACKAGES_OSE = ['volumedriver-no-dedup-base', 'volumedriver-no-dedup-server'] 24 | PACKAGES_EE = ['volumedriver-ee-base', 'volumedriver-ee-server'] 25 | 26 | VOLUMEDRIVER_BIN_PATH = os.path.join(os.path.sep, 'usr', 'bin', 'volumedriver_fs.sh') 27 | VOLUMEDRIVER_CMD_NAME = 'volumedriver_fs' 28 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains the DAL hybrids 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/bearertoken.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | Bearer Token module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.structures import Property, Relation 22 | from ovs.dal.hybrids.client import Client 23 | 24 | 25 | class BearerToken(DataObject): 26 | """ 27 | The Bearer Token class represents the Bearer tokens used by the API by means of OAuth 2.0 28 | """ 29 | __properties = [Property('access_token', str, mandatory=False, doc='Access token'), 30 | Property('refresh_token', str, mandatory=False, doc='Refresh token'), 31 | Property('expiration', int, doc='Expiration timestamp')] 32 | __relations = [Relation('client', Client, 'tokens')] 33 | __dynamics = [] 34 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/branding.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | Branding module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.structures import Property 22 | 23 | 24 | class Branding(DataObject): 25 | """ 26 | The Branding class represents the specific OEM information. 27 | """ 28 | __properties = [Property('name', str, unique=True, doc='Name of the Brand.'), 29 | Property('description', str, mandatory=False, doc='Description of the Brand.'), 30 | Property('css', str, doc='CSS file used by the Brand.'), 31 | Property('productname', str, doc='Commercial product name.'), 32 | Property('is_default', bool, doc='Indicates whether this Brand is the default one.')] 33 | __relations = [] 34 | __dynamics = [] 35 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/group.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | Group module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.structures import Property 22 | 23 | 24 | class Group(DataObject): 25 | """ 26 | The Group class represents a Group. A group is used to bind a set of Users to a set of Roles. 27 | """ 28 | __properties = [Property('name', str, unique=True, doc='Name of the Group.'), 29 | Property('description', str, mandatory=False, doc='Description of the Group.')] 30 | __relations = [] 31 | __dynamics = [] 32 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/j_albaproxy.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | AlbaProxy module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.structures import Relation 22 | from ovs.dal.hybrids.storagedriver import StorageDriver 23 | from ovs.dal.hybrids.service import Service 24 | 25 | 26 | class AlbaProxy(DataObject): 27 | """ 28 | The AlbaProxy class represents the junction table between the (alba)Service and VPool. 29 | Examples: 30 | * my_storagedriver.alba_proxies[0].service 31 | * my_service.alba_proxy.storagedriver 32 | """ 33 | __properties = [] 34 | __relations = [Relation('storagedriver', StorageDriver, 'alba_proxies'), 35 | Relation('service', Service, 'alba_proxy', onetoone=True)] 36 | __dynamics = [] 37 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/j_backendclient.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | BackendClient module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.structures import Property, Relation 22 | from ovs.dal.hybrids.backend import Backend 23 | from ovs.dal.hybrids.client import Client 24 | 25 | 26 | class BackendClient(DataObject): 27 | """ 28 | The BackendClient class represents the junction table between a Client and a Backend, setting granted/deny rights 29 | Examples: 30 | * my_backend.client_rights[0].client 31 | * my_client.backend_rights[0].backend 32 | """ 33 | __properties = [Property('grant', bool, doc='Whether the rights are granted (True) or denied (False)')] 34 | __relations = [Relation('backend', Backend, 'client_rights'), 35 | Relation('client', Client, 'backend_rights')] 36 | __dynamics = [] 37 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/j_backenddomain.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | BackendDomain module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.structures import Relation 22 | from ovs.dal.hybrids.backend import Backend 23 | from ovs.dal.hybrids.domain import Domain 24 | 25 | 26 | class BackendDomain(DataObject): 27 | """ 28 | The BackendDomain class represents the junction table between Backend and Domain. 29 | """ 30 | __properties = [] 31 | __relations = [Relation('domain', Domain, 'backends'), 32 | Relation('backend', Backend, 'domains')] 33 | __dynamics = [] 34 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/j_backenduser.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | BackendUser module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.structures import Property, Relation 22 | from ovs.dal.hybrids.backend import Backend 23 | from ovs.dal.hybrids.user import User 24 | 25 | 26 | class BackendUser(DataObject): 27 | """ 28 | The BackendUser class represents the junction table between a User and Backend, setting granted/deny rights 29 | Examples: 30 | * my_backend.user_rights[0].user 31 | * my_user.backend_rights[0].backend 32 | """ 33 | __properties = [Property('grant', bool, doc='Whether the rights is granted (True) or denied (False)')] 34 | __relations = [Relation('backend', Backend, 'user_rights'), 35 | Relation('user', User, 'backend_rights')] 36 | __dynamics = [] 37 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/j_mdsservicevdisk.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | MDSServiceVDisk module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.structures import Property, Relation 22 | from ovs.dal.hybrids.vdisk import VDisk 23 | from ovs.dal.hybrids.j_mdsservice import MDSService 24 | 25 | 26 | class MDSServiceVDisk(DataObject): 27 | """ 28 | The MDSServiceVDisk class represents the junction table between the MetadataServerService and VDisk. 29 | Examples: 30 | * my_vdisk.mds_services[0].mds_service 31 | * my_mds_service.vdisks[0].vdisk 32 | """ 33 | __properties = [Property('is_master', bool, default=False, doc='Is this the master MDSService for this VDisk.')] 34 | __relations = [Relation('vdisk', VDisk, 'mds_services'), 35 | Relation('mds_service', MDSService, 'vdisks')] 36 | __dynamics = [] 37 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/j_rolebearertoken.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | RoleBearerToken module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.structures import Relation 22 | from ovs.dal.hybrids.role import Role 23 | from ovs.dal.hybrids.bearertoken import BearerToken 24 | 25 | 26 | class RoleBearerToken(DataObject): 27 | """ 28 | The RoleBearerToken class represents the junction table between Role and BearerToken. 29 | """ 30 | __properties = [] 31 | __relations = [Relation('role', Role, 'tokens'), 32 | Relation('token', BearerToken, 'roles')] 33 | __dynamics = [] 34 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/j_roleclient.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | RoleClient module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.structures import Relation 22 | from ovs.dal.hybrids.role import Role 23 | from ovs.dal.hybrids.client import Client 24 | 25 | 26 | class RoleClient(DataObject): 27 | """ 28 | The RoleClient class represents the junction table between Role and Client. 29 | Examples: 30 | * my_role.clients[0].client 31 | * my_client.roles[0].role 32 | """ 33 | __properties = [] 34 | __relations = [Relation('role', Role, 'clients'), 35 | Relation('client', Client, 'roles')] 36 | __dynamics = [] 37 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/j_rolegroup.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | RoleGroup module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.structures import Relation 22 | from ovs.dal.hybrids.role import Role 23 | from ovs.dal.hybrids.group import Group 24 | 25 | 26 | class RoleGroup(DataObject): 27 | """ 28 | The RoleGroup class represents the junction table between Role and Group. 29 | Examples: 30 | * my_role.groups[0].group 31 | * my_group.roles[0].role 32 | """ 33 | __properties = [] 34 | __relations = [Relation('role', Role, 'groups'), 35 | Relation('group', Group, 'roles')] 36 | __dynamics = [] 37 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/j_storagerouterdomain.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | StorageRouterDomain module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.structures import Property, Relation 22 | from ovs.dal.hybrids.domain import Domain 23 | from ovs.dal.hybrids.storagerouter import StorageRouter 24 | 25 | 26 | class StorageRouterDomain(DataObject): 27 | """ 28 | The StorageRouterDomain class represents the junction table between StorageRouter and Domain. 29 | """ 30 | __properties = [Property('backup', bool, doc='Indicator whether the StorageRouterDomain is used as failure domain or regular domain')] 31 | __relations = [Relation('domain', Domain, 'storagerouters'), 32 | Relation('storagerouter', StorageRouter, 'domains')] 33 | __dynamics = [] 34 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/j_vdiskdomain.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | VDiskDomain module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.structures import Relation 22 | from ovs.dal.hybrids.domain import Domain 23 | from ovs.dal.hybrids.vdisk import VDisk 24 | 25 | 26 | class VDiskDomain(DataObject): 27 | """ 28 | The VDiskDomain class represents the junction table between vDisk and Domain. 29 | """ 30 | __properties = [] 31 | __relations = [Relation('domain', Domain, 'vdisks_dtl'), 32 | Relation('vdisk', VDisk, 'domains_dtl')] 33 | __dynamics = [] 34 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/role.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | Role module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.structures import Property 22 | 23 | 24 | class Role(DataObject): 25 | """ 26 | The Role class represents a Role. A Role is used to allow execution of a certain set of 27 | actions. E.g. a "Viewer" Role can view all data but has no update/write permission. 28 | """ 29 | __properties = [Property('name', str, doc='Name of the Role'), 30 | Property('code', str, unique=True, indexed=True, doc='Contains a code which is referenced from the API code'), 31 | Property('description', str, mandatory=False, doc='Description of the Role')] 32 | __relations = [] 33 | __dynamics = [] 34 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/t_testemachine.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | TestEMachine module 19 | """ 20 | from ovs.dal.structures import Property, Relation 21 | from ovs.dal.hybrids.t_testmachine import TestMachine 22 | from ovs.dal.hybrids.t_testdisk import TestDisk 23 | 24 | 25 | class TestEMachine(TestMachine): 26 | """ 27 | This ExtendedDisk object is used for running unittests. 28 | WARNING: These properties should not be changed 29 | """ 30 | __properties = [Property('extended', str, mandatory=False, doc='Extended property')] 31 | __relations = [Relation('the_disk', TestDisk, 'the_machines', mandatory=False)] 32 | __dynamics = [] 33 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/t_testmachine.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | TestMachine module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.structures import Property 22 | 23 | 24 | class TestMachine(DataObject): 25 | """ 26 | This TestMachine object is used for running unittests. 27 | WARNING: These properties should not be changed 28 | """ 29 | __properties = [Property('name', str, doc='Name of the test machine'), 30 | Property('description', str, mandatory=False, doc='Description of the test machine')] 31 | __relations = [] 32 | __dynamics = [] 33 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/t_teststoragedriver.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | TestStorageDriver module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.hybrids.t_teststoragerouter import TestStorageRouter 22 | from ovs.dal.hybrids.t_testvpool import TestVPool 23 | from ovs.dal.structures import Property, Relation 24 | 25 | 26 | class TestStorageDriver(DataObject): 27 | """ 28 | This TestStorageDriver object is used for running unittests. 29 | WARNING: These properties should not be changed 30 | """ 31 | __properties = [Property('name', str, doc='Name of the test machine')] 32 | __relations = [Relation('vpool', TestVPool, 'storagedrivers'), 33 | Relation('storagerouter', TestStorageRouter, 'storagedrivers')] 34 | __dynamics = [] 35 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/t_teststoragerouter.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | TestStorageRouter module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.structures import Property 22 | 23 | 24 | class TestStorageRouter(DataObject): 25 | """ 26 | This TestStorageRouter object is used for running unittests. 27 | WARNING: These properties should not be changed 28 | """ 29 | __properties = [Property('name', str, doc='Name of the test storage router')] 30 | __relations = [] 31 | __dynamics = [] 32 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/t_testvpool.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | TestVPool module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.structures import Property 22 | 23 | 24 | class TestVPool(DataObject): 25 | """ 26 | This TestVPool object is used for running unittests. 27 | WARNING: These properties should not be changed 28 | """ 29 | __properties = [Property('name', str, doc='Name of the test vpool')] 30 | __relations = [] 31 | __dynamics = [] 32 | -------------------------------------------------------------------------------- /ovs/dal/hybrids/user.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | User module 19 | """ 20 | from ovs.dal.dataobject import DataObject 21 | from ovs.dal.structures import Property, Relation 22 | from ovs.dal.hybrids.group import Group 23 | 24 | 25 | class User(DataObject): 26 | """ 27 | The User class represents a User. A user is an individual who can perform actions 28 | on objects in Open vStorage. 29 | """ 30 | __properties = [Property('username', str, unique=True, indexed=True, doc='Username of the User.'), 31 | Property('password', str, doc='Password of the User.'), 32 | Property('is_active', bool, doc='Indicates whether the User is active.'), 33 | Property('language', ['en-US', 'nl-NL'], default='en-US', doc='Language of the User.')] 34 | __relations = [Relation('group', Group, 'users')] 35 | __dynamics = [] 36 | -------------------------------------------------------------------------------- /ovs/dal/lists/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains various lists 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/dal/lists/brandinglist.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | BrandingList module 19 | """ 20 | from ovs.dal.datalist import DataList 21 | from ovs.dal.hybrids.branding import Branding 22 | 23 | 24 | class BrandingList(object): 25 | """ 26 | This BrandingList class contains various lists regarding to the Branding class 27 | """ 28 | 29 | @staticmethod 30 | def get_brandings(): 31 | """ 32 | Returns a list of all brandings 33 | """ 34 | return DataList(Branding, {'type': DataList.where_operator.AND, 35 | 'items': []}) 36 | -------------------------------------------------------------------------------- /ovs/dal/lists/clientlist.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | ClientList module 19 | """ 20 | from ovs.dal.datalist import DataList 21 | from ovs.dal.hybrids.client import Client 22 | 23 | 24 | class ClientList(object): 25 | """ 26 | This ClientList class contains various lists regarding to the Client class 27 | """ 28 | 29 | @staticmethod 30 | def get_clients(): 31 | """ 32 | Returns a list of all Clients, except internal types 33 | """ 34 | return DataList(Client, {'type': DataList.where_operator.AND, 35 | 'items': [('ovs_type', DataList.operator.NOT_EQUALS, 'INTERNAL')]}) 36 | 37 | @staticmethod 38 | def get_by_types(ovs_type, grant_type): 39 | """ 40 | Returns a list of all internal Clients 41 | """ 42 | return DataList(Client, {'type': DataList.where_operator.AND, 43 | 'items': [('ovs_type', DataList.operator.EQUALS, ovs_type), 44 | ('grant_type', DataList.operator.EQUALS, grant_type)]}) 45 | -------------------------------------------------------------------------------- /ovs/dal/lists/diskpartitionlist.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | DiskPartitionList module 19 | """ 20 | from ovs.dal.datalist import DataList 21 | from ovs.dal.hybrids.diskpartition import DiskPartition 22 | 23 | 24 | class DiskPartitionList(object): 25 | """ 26 | This DiskPartitionList class contains various lists regarding to the DiskPartition class 27 | """ 28 | 29 | @staticmethod 30 | def get_partitions(): 31 | """ 32 | Returns a list of all Partitions 33 | """ 34 | return DataList(DiskPartition, {'type': DataList.where_operator.AND, 35 | 'items': []}) 36 | -------------------------------------------------------------------------------- /ovs/dal/lists/grouplist.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | GroupList module 19 | """ 20 | from ovs.dal.datalist import DataList 21 | from ovs.dal.hybrids.group import Group 22 | 23 | 24 | class GroupList(object): 25 | """ 26 | This GroupList class contains various lists regarding to the Group class 27 | """ 28 | 29 | @staticmethod 30 | def get_groups(): 31 | """ 32 | Returns a list of all Groups 33 | """ 34 | return DataList(Group, {'type': DataList.where_operator.AND, 35 | 'items': []}) 36 | -------------------------------------------------------------------------------- /ovs/dal/lists/userlist.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | UserList module 19 | """ 20 | from ovs.dal.datalist import DataList 21 | from ovs.dal.hybrids.user import User 22 | 23 | 24 | class UserList(object): 25 | """ 26 | This UserList class contains various lists regarding to the User class 27 | """ 28 | 29 | @staticmethod 30 | def get_user_by_username(username): 31 | """ 32 | Returns a single User for the given username. Returns None if no user was found 33 | """ 34 | users = DataList(User, {'type': DataList.where_operator.AND, 35 | 'items': [('username', DataList.operator.EQUALS, username)]}) 36 | if len(users) == 1: 37 | return users[0] 38 | return None 39 | 40 | @staticmethod 41 | def get_users(): 42 | """ 43 | Returns a list of all Users 44 | """ 45 | return DataList(User, {'type': DataList.where_operator.AND, 46 | 'items': []}) 47 | -------------------------------------------------------------------------------- /ovs/dal/migration/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains migration related code 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/dal/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains test related stuff 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/extensions/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains various extensions 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/extensions/celery/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | -------------------------------------------------------------------------------- /ovs/extensions/db/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/ovs/extensions/db/__init__.py -------------------------------------------------------------------------------- /ovs/extensions/generic/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains generic modules 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/extensions/generic/disk.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2017 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | """ 17 | Disk module 18 | """ 19 | from ovs_extensions.generic.disk import DiskTools as _DiskTools 20 | from ovs.extensions.os.osfactory import OSFactory 21 | 22 | 23 | class DiskTools(_DiskTools): 24 | """ 25 | This class contains various helper methods wrt Disk maintenance 26 | """ 27 | 28 | def __init__(self): 29 | super(DiskTools, self).__init__() 30 | 31 | @classmethod 32 | def _get_os_manager(cls): 33 | return OSFactory.get_manager() 34 | -------------------------------------------------------------------------------- /ovs/extensions/migration/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains hypervisor packages 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/extensions/migration/migration/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains migration related code 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/extensions/os/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/ovs/extensions/os/__init__.py -------------------------------------------------------------------------------- /ovs/extensions/os/osfactory.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | OS Factory module 19 | """ 20 | from ovs.extensions.generic.configuration import Configuration 21 | from ovs.extensions.generic.system import System 22 | from ovs_extensions.os.osfactory import OSFactory as _OSFactory 23 | 24 | 25 | class OSFactory(_OSFactory): 26 | """ 27 | Factory class returning specialized classes 28 | """ 29 | 30 | def __init__(self): 31 | raise RuntimeError('Cannot be instantiated, please use OSFactory.get_manager() instead') 32 | 33 | @classmethod 34 | def _get_configuration(cls): 35 | return Configuration 36 | 37 | @classmethod 38 | def _get_system(cls): 39 | return System 40 | -------------------------------------------------------------------------------- /ovs/extensions/packages/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2017 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | -------------------------------------------------------------------------------- /ovs/extensions/plugins/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains plugin extensions 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/extensions/plugins/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains plugin extensions' tests 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/extensions/rabbitmq/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains RabbitMQ hooks 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/extensions/rabbitmq/mappings/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains method mappings 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/extensions/services/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2017 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | -------------------------------------------------------------------------------- /ovs/extensions/storage/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/ovs/extensions/storage/__init__.py -------------------------------------------------------------------------------- /ovs/extensions/storage/volatilefactory.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | Override volatile factory. 19 | """ 20 | from ovs.extensions.generic.configuration import Configuration 21 | from ovs_extensions.storage.volatilefactory import VolatileFactory as _VolatileFactory 22 | 23 | 24 | class VolatileFactory(_VolatileFactory): 25 | """ 26 | The VolatileFactory will generate certain default clients. 27 | """ 28 | 29 | @classmethod 30 | def _get_store_info(cls): 31 | return {'nodes': Configuration.get('/ovs/framework/memcache|endpoints')} 32 | 33 | @classmethod 34 | def _get_client_type(cls): 35 | return Configuration.get('/ovs/framework/stores|volatile') 36 | -------------------------------------------------------------------------------- /ovs/extensions/storageserver/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains wrapper classes around the storage driver 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/extensions/storageserver/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | Package for tests related to storagedriver 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/extensions/support/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains support related code 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/interfaces/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | -------------------------------------------------------------------------------- /ovs/lib/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains the BLL 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/lib/helpers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | this package contains several helper modules for the OVS Library 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/lib/helpers/generic/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | -------------------------------------------------------------------------------- /ovs/lib/helpers/mds/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | -------------------------------------------------------------------------------- /ovs/lib/helpers/storagedriver/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2017 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This module contains several helper modules for the StorageDriver library module 19 | """ -------------------------------------------------------------------------------- /ovs/lib/helpers/storagerouter/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2017 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This module contains several helper modules for the StorageRouter library module 19 | """ -------------------------------------------------------------------------------- /ovs/lib/helpers/vdisk/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | -------------------------------------------------------------------------------- /ovs/lib/helpers/vpool/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2017 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This module contains several helper modules for the vPool library module 19 | """ -------------------------------------------------------------------------------- /ovs/lib/helpers/vpool/installers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This module contains several subclasses of the VPool container 19 | """ -------------------------------------------------------------------------------- /ovs/lib/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | Unit test module for the OVS Library 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/lib/tests/generic_tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | Unit test module for generic library tests 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/lib/tests/generic_tests/test_decorators.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | """ 17 | Test decorators 18 | """ 19 | 20 | import unittest 21 | from ovs_extensions.api.decorators.generic_requests import HTTPRequestGenericDecorators 22 | 23 | wrap = HTTPRequestGenericDecorators.wrap_data 24 | 25 | 26 | class TestDecorator(unittest.TestCase): 27 | 28 | def test_wrap_request(self): 29 | key_wrapper = 'key_wrapper' 30 | value_wrapper = 'value_wrapper' 31 | 32 | @wrap(key_wrapper) 33 | def test_wrapper_decorator_param(): 34 | return value_wrapper 35 | 36 | wrapped_dict = test_wrapper_decorator_param() 37 | self.assertDictEqual(d1=wrapped_dict, d2={key_wrapper: value_wrapper, 38 | 'data': value_wrapper}) 39 | @wrap() 40 | def test_wrapper_decorator_no_param(): 41 | return value_wrapper 42 | 43 | wrapped_dict = test_wrapper_decorator_no_param() 44 | self.assertDictEqual(d1=wrapped_dict, d2={'data': value_wrapper}) 45 | 46 | 47 | -------------------------------------------------------------------------------- /ovs/lib/tests/helpers_tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2017 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | Unit test module for helper modules, eg: decorators, toolbox, ... 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/lib/tests/mdsservice_tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | Unit test module for the OVS mdsService Library 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/lib/tests/storagedriver_tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2017 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | Unit test module for the OVS StorageDriver Library 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/lib/tests/vdisk_tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | Unit test module for the OVS vDisk Library 19 | """ 20 | -------------------------------------------------------------------------------- /ovs/update/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | from .volumedriver.updater import VolumeDriverUpdater 18 | from .alba.updater import AlbaComponentUpdater 19 | -------------------------------------------------------------------------------- /ovs/update/alba/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | -------------------------------------------------------------------------------- /ovs/update/alba/updater.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | from ovs.extensions.generic.system import System 18 | from ovs.extensions.storage.persistentfactory import PersistentFactory 19 | from ovs_extensions.update.alba_component_update import AlbaComponentUpdater as _AlbacomponentUpdater 20 | from ovs.extensions.generic.logger import Logger 21 | 22 | 23 | class AlbaComponentUpdater(_AlbacomponentUpdater): 24 | """ 25 | Implementation of abstract class to update alba 26 | """ 27 | logger = Logger('update-alba') 28 | 29 | @staticmethod 30 | def get_persistent_client(): 31 | """ 32 | Retrieve a persistent client which needs 33 | Needs to be implemented by the callee 34 | """ 35 | return PersistentFactory.get_client() 36 | 37 | @classmethod 38 | def get_node_id(cls): 39 | """ 40 | use a factory to provide the machine id 41 | :return: 42 | """ 43 | return System.get_my_machine_id() 44 | -------------------------------------------------------------------------------- /ovs/update/volumedriver/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2019 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | -------------------------------------------------------------------------------- /packaging/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | Packaging package 19 | """ 20 | -------------------------------------------------------------------------------- /packaging/debian/debian/compat: -------------------------------------------------------------------------------- 1 | 9 2 | -------------------------------------------------------------------------------- /packaging/debian/debian/openvstorage-core.conffile: -------------------------------------------------------------------------------- 1 | /etc/profile.d/ovs.sh 2 | -------------------------------------------------------------------------------- /packaging/debian/debian/openvstorage-core.cron.d: -------------------------------------------------------------------------------- 1 | # /etc/cron.d/openvstorage-core: crontab entries for the openvstorage-core package 2 | 3 | * * * * * root /usr/bin/ovs monitor heartbeat 4 | 59 23 * * * root /opt/OpenvStorage/scripts/system/rotate-storagedriver-logs.sh 5 | -------------------------------------------------------------------------------- /packaging/debian/debian/openvstorage-core.dirs: -------------------------------------------------------------------------------- 1 | opt/OpenvStorage/config 2 | opt/OpenvStorage/scripts 3 | opt/OpenvStorage/scripts/install 4 | usr/share/doc/openvstorage-core 5 | etc/init 6 | -------------------------------------------------------------------------------- /packaging/debian/debian/openvstorage-core.install: -------------------------------------------------------------------------------- 1 | ovs opt/OpenvStorage 2 | config/env/ovs.sh etc/profile.d 3 | config/logrotate/openvstorage-logs etc/logrotate.d 4 | config/templates opt/OpenvStorage/config 5 | scripts/install/openvstorage-core.postinst.py opt/OpenvStorage/scripts/install 6 | scripts/system/ovs usr/bin 7 | scripts/system/openvstorage etc/bash_completion.d 8 | scripts/system/rotate-storagedriver-logs.sh opt/OpenvStorage/scripts/system 9 | -------------------------------------------------------------------------------- /packaging/debian/debian/openvstorage-core.postinst: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | python /opt/OpenvStorage/scripts/install/openvstorage-core.postinst.py "__NEW_VERSION__" "$@" 4 | 5 | # Create new .pth file with our path 6 | echo "/opt/OpenvStorage/" > "/usr/lib/python2.7/dist-packages/ovs_framework.pth" 7 | echo "/opt/OpenvStorage/webapps/" >> "/usr/lib/python2.7/dist-packages/ovs_framework.pth" 8 | -------------------------------------------------------------------------------- /packaging/debian/debian/openvstorage-webapps.conffile: -------------------------------------------------------------------------------- 1 | opt/OpenvStorage/config/django_gunicorn_ovs.cfg.py 2 | etc/nginx/sites-available/openvstorage.conf 3 | etc/nginx/sites-available/openvstorage_ssl.conf 4 | -------------------------------------------------------------------------------- /packaging/debian/debian/openvstorage-webapps.dirs: -------------------------------------------------------------------------------- 1 | opt/OpenvStorage/config 2 | opt/OpenvStorage/scripts 3 | opt/OpenvStorage/scripts/install 4 | etc/nginx/sites-available 5 | usr/share/doc/openvstorage-webapps 6 | -------------------------------------------------------------------------------- /packaging/debian/debian/openvstorage-webapps.install: -------------------------------------------------------------------------------- 1 | webapps opt/OpenvStorage 2 | config/django/django_gunicorn_ovs.cfg.py opt/OpenvStorage/config 3 | config/nginx/openvstorage.conf etc/nginx/sites-available 4 | config/nginx/openvstorage_ssl.conf etc/nginx/sites-available 5 | scripts/install/openvstorage-webapps.postinst.py opt/OpenvStorage/scripts/install 6 | -------------------------------------------------------------------------------- /packaging/debian/debian/openvstorage-webapps.postinst: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | python /opt/OpenvStorage/scripts/install/openvstorage-webapps.postinst.py "__NEW_VERSION__" "$@" 4 | -------------------------------------------------------------------------------- /packaging/debian/debian/openvstorage-webapps.preinst: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [[ ! -z "$2" && ! -f /etc/ready_for_upgrade ]] 4 | then 5 | echo -e '\n\nPlease start update through GUI because all nodes in the cluster need to be updated simultaneously!!!!!\n\n' 6 | exit 1 7 | fi 8 | -------------------------------------------------------------------------------- /packaging/debian/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | openvstorage-core: 4 | dh_testdir 5 | dh_testroot 6 | dh_installdirs -p$@ 7 | dh_installchangelogs -p$@ CHANGELOG.txt 8 | dh_install -p$@ 9 | dh_installman -p$@ 10 | dh_installcron -p$@ 11 | dh_link -p$@ 12 | dh_strip -p$@ 13 | dh_compress -p$@ 14 | dh_fixperms -p$@ 15 | dh_installdeb -p$@ 16 | dh_shlibdeps -p$@ 17 | dh_gencontrol -p$@ 18 | dh_md5sums -p$@ 19 | dh_builddeb -p$@ 20 | 21 | openvstorage-webapps: 22 | dh_testdir 23 | dh_testroot 24 | dh_installdirs -p$@ 25 | dh_installchangelogs -p$@ CHANGELOG.txt 26 | dh_install -p$@ 27 | dh_installman -p$@ 28 | dh_installcron -p$@ 29 | dh_link -p$@ 30 | dh_strip -p$@ 31 | dh_compress -p$@ 32 | dh_fixperms -p$@ 33 | dh_installdeb -p$@ 34 | dh_shlibdeps -p$@ 35 | dh_gencontrol -p$@ 36 | dh_md5sums -p$@ 37 | dh_builddeb -p$@ 38 | 39 | openvstorage: 40 | dh_testdir 41 | dh_testroot 42 | dh_installdirs -p$@ 43 | dh_installchangelogs -p$@ CHANGELOG.txt 44 | dh_install -p$@ 45 | dh_installman -p$@ 46 | dh_installcron -p$@ 47 | dh_link -p$@ 48 | dh_strip -p$@ 49 | dh_compress -p$@ 50 | dh_fixperms -p$@ 51 | dh_installdeb -p$@ 52 | dh_shlibdeps -p$@ 53 | dh_gencontrol -p$@ 54 | dh_md5sums -p$@ 55 | dh_builddeb -p$@ 56 | 57 | clean: 58 | if [ -f debian/openvstorage ]; then rm debian/openvstorage; fi 59 | if [ -f debian/openvstorage-core ]; then rm debian/openvstorage-core; fi 60 | if [ -f debian/openvstorage-webapps ]; then rm debian/openvstorage-webapps; fi 61 | 62 | binary: openvstorage-core openvstorage-webapps openvstorage 63 | 64 | .PHONY: clean build 65 | -------------------------------------------------------------------------------- /packaging/debian/debian/source/format: -------------------------------------------------------------------------------- 1 | 1.0 2 | -------------------------------------------------------------------------------- /packaging/redhat/cfgs/openvstorage-core.cfg: -------------------------------------------------------------------------------- 1 | [main] 2 | name = openvstorage-core 3 | summary = OpenvStorage core 4 | license = GNU Affero General Public License v3 5 | URL = www.openvstorage.org 6 | source = https://github.com/openvstorage/openvstorage/archive/master.zip 7 | arch = amd64 8 | description = Core components for the Open vStorage product 9 | maintainer = OpenvStorage Support Team 10 | 11 | depends = alba, aptdaemon, arakoon >= 1.8, at, avahi-tools >= 0.6.31, libev >= 4.11-1, libvirt >= 1.1.1, libvirt-python >= 1.1.1, lsscsi >= 0.27-2, memcached >= 1.4.7, nfs-utils, ntp, openssh-server, protobuf-python, python >= 2.7.2, python-boto, python-devel >= 2.7.5, python-influxdb, python-inotify, python-ipython-console, python-kombu >= 2.5.16, python-memcached >= 1.47-2, python-paramiko, python-pip >= 1.4.1, python-pyudev, python-six, python-suds, python-yaml, rabbitmq-server >= 3.1.5, sshpass, sudo, openvpn, volumedriver-no-dedup-server 12 | 13 | dirs = ovs = opt/OpenvStorage/ovs, config/templates = opt/OpenvStorage/config/templates 14 | 15 | files = config/env/ovs.sh = etc/profile.d, config/logrotate/openvstorage-logs = etc/logrotate.d, scripts/install/openvstorage-core.postinst.py = opt/OpenvStorage/scripts/install, scripts/system/ovs = usr/bin, scripts/system/openvstorage = etc/bash_completion.d, scripts/system/rotate-storagedriver-logs.sh = opt/OpenvStorage/scripts/system 16 | -------------------------------------------------------------------------------- /packaging/redhat/cfgs/openvstorage-webapps.cfg: -------------------------------------------------------------------------------- 1 | [main] 2 | name = openvstorage-webapps 3 | summary = OpenvStorage Web Applications 4 | license = GNU Affero General Public License v3 5 | URL = www.openvstorage.org 6 | source = https://github.com/openvstorage/openvstorage/archive/master.zip 7 | arch = amd64 8 | description = Web components for the Open vStorage product 9 | maintainer = OpenvStorage Support Team 10 | 11 | depends = openvstorage-core = $Version, python-django >= 1.5.1-2, nginx >= 1.2.6, python-gunicorn >= 0.15.0-1, python-gevent >= 0.13.0-1build2, python-markdown >= 2.3.1-1 12 | 13 | dirs = webapps = opt/OpenvStorage/webapps 14 | 15 | files = config/django/django_gunicorn_ovs.cfg.py = opt/OpenvStorage/config, config/nginx/openvstorage.conf = etc/nginx/sites-available, config/nginx/openvstorage_ssl.conf = etc/nginx/sites-available, scripts/install/openvstorage-webapps.postinst.py = opt/OpenvStorage/scripts/install, 16 | -------------------------------------------------------------------------------- /packaging/redhat/cfgs/openvstorage.cfg: -------------------------------------------------------------------------------- 1 | [main] 2 | name = openvstorage 3 | summary = Open vStorage umbrella package 4 | license = GNU Affero General Public License v3 5 | URL = www.openvstorage.org 6 | source = https://github.com/openvstorage/openvstorage/archive/master.zip 7 | arch = amd64 8 | description = Open vStorage umbrella package 9 | maintainer = OpenvStorage Support Team 10 | 11 | depends = openvstorage-core = $Version, openvstorage-webapps = $Version 12 | 13 | dirs = '' 14 | files = '' 15 | -------------------------------------------------------------------------------- /packaging/redhat/scripts/openvstorage-core.after-install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Copyright (C) 2016 iNuron NV 3 | # 4 | # This file is part of Open vStorage Open Source Edition (OSE), 5 | # as available from 6 | # 7 | # http://www.openvstorage.org and 8 | # http://www.openvstorage.com. 9 | # 10 | # This file is free software; you can redistribute it and/or modify it 11 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 12 | # as published by the Free Software Foundation, in version 3 as it comes 13 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 14 | # 15 | # Open vStorage is distributed in the hope that it will be useful, 16 | # but WITHOUT ANY WARRANTY of any kind. 17 | 18 | pip install --upgrade pip 19 | pip install rpyc 20 | pip install pika 21 | pip install datadiff 22 | pip install celery 23 | pip install librabbitmq>=1.5.2 24 | 25 | 26 | python /opt/OpenvStorage/scripts/install/openvstorage-core.postinst.py "$Version" "$@" 27 | chmod a+x /usr/bin/ovs 28 | cp -r /usr/lib/python2.7/dist-packages/volumedriver/ /usr/lib/python2.7/site-packages/ 29 | chmod 777 /var/lock 30 | 31 | echo -e '# crontab entries for the openvstorage-core package 32 | * * * * * root /usr/bin/ovs monitor heartbeat 33 | 59 23 * * * root /opt/OpenvStorage/scripts/system/rotate-storagedriver-logs.sh 34 | ' >> /etc/crontab 35 | service crond restart 36 | 37 | service libvirtd start -------------------------------------------------------------------------------- /packaging/redhat/scripts/openvstorage-core.before-install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Copyright (C) 2016 iNuron NV 3 | # 4 | # This file is part of Open vStorage Open Source Edition (OSE), 5 | # as available from 6 | # 7 | # http://www.openvstorage.org and 8 | # http://www.openvstorage.com. 9 | # 10 | # This file is free software; you can redistribute it and/or modify it 11 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 12 | # as published by the Free Software Foundation, in version 3 as it comes 13 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 14 | # 15 | # Open vStorage is distributed in the hope that it will be useful, 16 | # but WITHOUT ANY WARRANTY of any kind. 17 | 18 | set -x 19 | 20 | if [[ ! -z "$2" && ! -f /etc/ready_for_upgrade ]] 21 | then 22 | echo -e '\n\nPlease start update through GUI because all nodes in the cluster need to be updated simultaneously!!!!!\n\n' 23 | exit 1 24 | else 25 | if [ ! -f /etc/openvstorage_id ] 26 | then 27 | echo `openssl rand -base64 64 | tr -dc A-Z-a-z-0-9 | head -c 16` > /etc/openvstorage_id 28 | fi 29 | 30 | user_exists=$(id -a ovs > /dev/null 2>&1; echo $?) 31 | if [[ $user_exists -eq 1 ]] 32 | then 33 | echo 'Creating OVS user' 34 | useradd ovs -d /opt/OpenvStorage 35 | [ -f /etc/sudoers.d/ovs ] || echo '%ovs ALL=NOPASSWD: ALL' >> /etc/sudoers.d/ovs 36 | else 37 | echo 'OVS user already exists' 38 | fi 39 | 40 | # logging 41 | mkdir -p /var/log/ovs/volumedriver 42 | chown -R ovs:ovs /var/log/ovs 43 | chmod 750 /var/log/ovs 44 | fi 45 | -------------------------------------------------------------------------------- /packaging/redhat/scripts/openvstorage-webapps.after-install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Copyright (C) 2016 iNuron NV 3 | # 4 | # This file is part of Open vStorage Open Source Edition (OSE), 5 | # as available from 6 | # 7 | # http://www.openvstorage.org and 8 | # http://www.openvstorage.com. 9 | # 10 | # This file is free software; you can redistribute it and/or modify it 11 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 12 | # as published by the Free Software Foundation, in version 3 as it comes 13 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 14 | # 15 | # Open vStorage is distributed in the hope that it will be useful, 16 | # but WITHOUT ANY WARRANTY of any kind. 17 | 18 | pip install djangorestframework==2.3.12 19 | 20 | mkdir -p /etc/nginx/sites-enabled 21 | 22 | python /opt/OpenvStorage/scripts/install/openvstorage-webapps.postinst.py "$Version" "$@" 23 | 24 | cp /etc/nginx/sites-enabled/* /etc/nginx/conf.d/ 25 | chmod 777 /etc/nginx/conf.d/* 26 | service nginx restart 27 | -------------------------------------------------------------------------------- /packaging/redhat/scripts/openvstorage-webapps.before-install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Copyright (C) 2016 iNuron NV 3 | # 4 | # This file is part of Open vStorage Open Source Edition (OSE), 5 | # as available from 6 | # 7 | # http://www.openvstorage.org and 8 | # http://www.openvstorage.com. 9 | # 10 | # This file is free software; you can redistribute it and/or modify it 11 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 12 | # as published by the Free Software Foundation, in version 3 as it comes 13 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 14 | # 15 | # Open vStorage is distributed in the hope that it will be useful, 16 | # but WITHOUT ANY WARRANTY of any kind. 17 | 18 | if [[ ! -z "$2" && ! -f /etc/ready_for_upgrade ]] 19 | then 20 | echo -e '\n\nPlease start update through GUI because all nodes in the cluster need to be updated simultaneously!!!!!\n\n' 21 | exit 1 22 | fi 23 | -------------------------------------------------------------------------------- /packaging/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "package_name": "openvstorage", 3 | "product_name": "Open vStorage", 4 | "tags": ["community", "enterprise"], 5 | "source_contents": "--transform 's,^,{0}-{1}/,' scripts/install scripts/system config ovs webapps *.txt", 6 | "version": { 7 | "major": 2, 8 | "minor": 13 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /scripts/docker/install_docker.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Copyright (C) 2018 iNuron NV 3 | # 4 | # This file is part of Open vStorage Open Source Edition (OSE), 5 | # as available from 6 | # 7 | # http://www.openvstorage.org and 8 | # http://www.openvstorage.com. 9 | # 10 | # This file is free software; you can redistribute it and/or modify it 11 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 12 | # as published by the Free Software Foundation, in version 3 as it comes 13 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 14 | # 15 | # Open vStorage is distributed in the hope that it will be useful, 16 | # but WITHOUT ANY WARRANTY of any kind. 17 | 18 | # The current working directory is the root of the repository 19 | 20 | set -e 21 | 22 | distribution=${1:-'ubuntu:16.04'} 23 | repo_url=${2:-'http://apt.openvstorage.com'} 24 | # Determine the Ubuntu repository based on the Git branch 25 | repo=`python scripts/docker/repository_resolver.py` 26 | # Build the Docker image, pass CWD to the build 27 | docker build --rm=true \ 28 | --tag fwk \ 29 | --file scripts/docker/${distribution}/Dockerfile \ 30 | . 31 | # Install OpenvStorage Framework, run it with stdin open and TTY to keep it running 32 | docker run -it \ 33 | -v $PWD:/root/repo-code/ \ 34 | fwk \ 35 | bash -c "bash /root/repo-code/scripts/docker/prepare_img.sh ${repo} ${repo_url}" 36 | -------------------------------------------------------------------------------- /scripts/docker/ubuntu:14.04/Dockerfile: -------------------------------------------------------------------------------- 1 | # Download base image ubuntu 14.04 2 | FROM ubuntu:14.04 3 | 4 | # Update Ubuntu Software repository 5 | RUN apt-get update \ 6 | && apt-get install -y --force-yes \ 7 | rsyslog \ 8 | sudo \ 9 | openssl \ 10 | acl 11 | -------------------------------------------------------------------------------- /scripts/docker/ubuntu:16.04/Dockerfile: -------------------------------------------------------------------------------- 1 | # Download base image ubuntu 16.04 2 | FROM ubuntu:16.04 3 | 4 | # Update Ubuntu Software repository 5 | RUN apt-get update \ 6 | && apt-get install -y --force-yes \ 7 | rsyslog \ 8 | sudo \ 9 | openssl \ 10 | acl 11 | -------------------------------------------------------------------------------- /scripts/docs/generatedocs.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Copyright (C) 2016 iNuron NV 3 | # 4 | # This file is part of Open vStorage Open Source Edition (OSE), 5 | # as available from 6 | # 7 | # http://www.openvstorage.org and 8 | # http://www.openvstorage.com. 9 | # 10 | # This file is free software; you can redistribute it and/or modify it 11 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 12 | # as published by the Free Software Foundation, in version 3 as it comes 13 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 14 | # 15 | # Open vStorage is distributed in the hope that it will be useful, 16 | # but WITHOUT ANY WARRANTY of any kind. 17 | 18 | DIR=${1%/} 19 | if [ "$(ls -A $DIR/)" ]; then 20 | echo "Directory $DIR/ must be empty" 21 | exit 1 22 | fi 23 | export PYTHONPATH=$PYTHONPATH:/opt/OpenvStorage/lib/python2.7/site-packages/ 24 | mkdir $DIR/lib 25 | epydoc --graph umlclasstree ovs.lib -o $DIR/lib -v --parse-only > /dev/null 26 | mkdir $DIR/dal 27 | epydoc --graph umlclasstree ovs.dal -o $DIR/dal -v > /dev/null 28 | mkdir $DIR/extensions 29 | epydoc --graph umlclasstree ovs.extensions -o $DIR/extensions -v > /dev/null 30 | -------------------------------------------------------------------------------- /scripts/system/openvstorage: -------------------------------------------------------------------------------- 1 | get_ovs_config_keys() 2 | { 3 | echo $(ovs config list-recursive) 4 | } 5 | 6 | _generate_config_options() 7 | { 8 | local cur prev # Local variable declaration 9 | COMPREPLY=() # Initiate empty reply array 10 | cur="${COMP_WORDS[COMP_CWORD]}" # Current word is last entry on cmdline, 11 | # eg: "ovs config get ovs/alba" --> cur = "ovs/alba" 12 | # eg: "ovs config get ovs/ " --> cur = "" because of space at end 13 | 14 | if [ -z "$_all_ovs_keys" ]; then # Initiate '_all_ovs_keys' if non-existing 15 | _all_ovs_keys=$(get_ovs_config_keys) 16 | fi 17 | 18 | if [[ ${cur} == * ]] ; # Check if 'cur' matches a wildcard, which is always True 19 | then 20 | COMPREPLY=( $(compgen -W "${_all_ovs_keys}" -- ${cur}) ) # Generate possible answers provided by -W and what is in 'cur' variable 21 | return 0 22 | fi 23 | } 24 | complete -F _generate_config_options ovs config get 25 | complete -F _generate_config_options ovs config edit 26 | complete -F _generate_config_options ovs config list 27 | -------------------------------------------------------------------------------- /scripts/system/ovs: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | python /opt/OpenvStorage/ovs/cli/entry.py "$@" 4 | -------------------------------------------------------------------------------- /specs/Edge.md: -------------------------------------------------------------------------------- 1 | # Edge 2 | 3 | ## Introduction 4 | The [Edge](https://github.com/openvstorage/home/wiki/Edge) is a lightweight software component which exposes a block device. 5 | 6 | 7 | ## Design choices 8 | - No Edge manager is required 9 | - This means we can't list all disks connected to certain host without retrieving the whole list 10 | - If possible don't model the edge 11 | 12 | 13 | ## Required changes 14 | - Implement storage and management IP correctly 15 | - DTL and MDS should use the storage Ip 16 | - Edge/NFS should use the storage IP 17 | - Storage Router detail page 18 | - Change IP to Management IP 19 | - Add new tab (icon)[http://fontawesome.io/icon/link/] 20 | - Title: Edge Client Connections 21 | - Content: table with vdiskname , vpool , ip , type, protocol, Read - Read/Write 22 | - vDisk detail page 23 | - Add under Details: Edge Clients: # 24 | - Add new tab (icon)[http://fontawesome.io/icon/link/] 25 | - Title: Edge Client Connections 26 | - Content: ip , type, protocol, Read - Read/Write 27 | -------------------------------------------------------------------------------- /webapps/api/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | Django package 19 | """ 20 | 21 | import os 22 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "api.settings") 23 | -------------------------------------------------------------------------------- /webapps/api/backend/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains API backing logic 19 | """ 20 | -------------------------------------------------------------------------------- /webapps/api/backend/serializers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains serializers used in the API 19 | """ 20 | -------------------------------------------------------------------------------- /webapps/api/backend/serializers/mockups.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | Mockups module 19 | """ 20 | 21 | 22 | class FullSerializer(object): 23 | """ 24 | Dummy class 25 | """ 26 | 27 | def __init__(self, object_type, contents, instance, many=False): 28 | """ 29 | Dummy initializer 30 | """ 31 | self.data = {'object_type': object_type.__name__, 32 | 'contents': contents, 33 | 'instance': instance, 34 | 'many': many} 35 | -------------------------------------------------------------------------------- /webapps/api/backend/views/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains all views for the Internal API 19 | """ 20 | -------------------------------------------------------------------------------- /webapps/api/helpers.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python2 2 | # Copyright (C) 2016 iNuron NV 3 | # 4 | # This file is part of Open vStorage Open Source Edition (OSE), 5 | # as available from 6 | # 7 | # http://www.openvstorage.org and 8 | # http://www.openvstorage.com. 9 | # 10 | # This file is free software; you can redistribute it and/or modify it 11 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 12 | # as published by the Free Software Foundation, in version 3 as it comes 13 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 14 | # 15 | # Open vStorage is distributed in the hope that it will be useful, 16 | # but WITHOUT ANY WARRANTY of any kind. 17 | 18 | """ 19 | Some helpers 20 | """ 21 | 22 | from rest_framework.response import Response 23 | 24 | 25 | class OVSResponse(Response): 26 | 27 | def __init__(self, data=None, status=200, 28 | template_name=None, headers=None, 29 | exception=False, content_type=None, timings=None): 30 | super(OVSResponse, self).__init__(data=data, 31 | status=status, 32 | template_name=template_name, 33 | headers=headers, 34 | exception=exception, 35 | content_type=content_type) 36 | self.timings = timings 37 | 38 | def build_timings(self): 39 | self['Server-Timing'] = ','.join('{0};dur={1};desc={2}'.format(key, timing_info[0] * 1000, timing_info[1]) 40 | for key, timing_info in self.timings.iteritems()) 41 | -------------------------------------------------------------------------------- /webapps/api/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python2 2 | # Copyright (C) 2016 iNuron NV 3 | # 4 | # This file is part of Open vStorage Open Source Edition (OSE), 5 | # as available from 6 | # 7 | # http://www.openvstorage.org and 8 | # http://www.openvstorage.com. 9 | # 10 | # This file is free software; you can redistribute it and/or modify it 11 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 12 | # as published by the Free Software Foundation, in version 3 as it comes 13 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 14 | # 15 | # Open vStorage is distributed in the hope that it will be useful, 16 | # but WITHOUT ANY WARRANTY of any kind. 17 | 18 | """ 19 | Django manage module 20 | """ 21 | import os 22 | import sys 23 | 24 | if __name__ == "__main__": 25 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings") 26 | from django.core.management import execute_from_command_line 27 | execute_from_command_line(sys.argv) 28 | -------------------------------------------------------------------------------- /webapps/api/oauth2/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains all views for OAuth2 authentication 19 | """ 20 | -------------------------------------------------------------------------------- /webapps/api/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 iNuron NV 2 | # 3 | # This file is part of Open vStorage Open Source Edition (OSE), 4 | # as available from 5 | # 6 | # http://www.openvstorage.org and 7 | # http://www.openvstorage.com. 8 | # 9 | # This file is free software; you can redistribute it and/or modify it 10 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | # as published by the Free Software Foundation, in version 3 as it comes 12 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | # 14 | # Open vStorage is distributed in the hope that it will be useful, 15 | # but WITHOUT ANY WARRANTY of any kind. 16 | 17 | """ 18 | This package contains all tests related to the API 19 | """ 20 | -------------------------------------------------------------------------------- /webapps/frontend/.jshintignore: -------------------------------------------------------------------------------- 1 | tests/coverage 2 | lib/bootstrap 3 | lib/durandal 4 | lib/font-awesome 5 | lib/jquery 6 | lib/jquery-plugins 7 | lib/knockout 8 | lib/require 9 | lib/i18next -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/404.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define(function() { 18 | "use strict"; 19 | return {}; 20 | }); 21 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/containers/storagedriver/configuration.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define([ 18 | 'knockout', 19 | 'ovs/generic' 20 | ], function(ko, generic) { 21 | "use strict"; 22 | // Return a constructor for a viewModel 23 | var configurationMapping = { 24 | // Not a data view model so these properties have to be explicitly included 25 | 'include': ["storageIP", "proxyAmount", "globalWriteBuffer"] 26 | }; 27 | var ConfigurationViewModel = function(data) { 28 | var self = this; 29 | self.storageIP = ko.observable('').extend({regex: generic.ipRegex}); 30 | self.proxyAmount = ko.observable(2).extend({numeric: {min: 1, max: 16}}); 31 | self.globalWriteBuffer = ko.observable().extend({numeric: {min: 1, max: 10240, allowUndefined: true}, rateLimit: { method: "notifyWhenChangesStop", timeout: 800 }}); 32 | 33 | ko.mapping.fromJS(data, configurationMapping, self) // Bind the data into this 34 | }; 35 | return ConfigurationViewModel; 36 | }); 37 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/redirect.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define([ 18 | 'ovs/shared' 19 | ], function(shared) { 20 | "use strict"; 21 | return { 22 | canActivate: function() { 23 | // Returning an object with 'redirect' indicates that the canActivate will redirect the router to a different path 24 | return { 25 | redirect: '#' + shared.modes.FULL 26 | }; 27 | } 28 | }; 29 | }); 30 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/services/domain.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | /** 18 | * Service to help with iscsinode related tasks 19 | */ 20 | define([ 21 | 'jquery', 'knockout', 22 | 'ovs/api', 'ovs/shared' 23 | ], function ($, ko, 24 | api, shared) { 25 | function DomainService() { 26 | var self = this; 27 | 28 | self.shared = shared; 29 | 30 | // Functions 31 | /** 32 | * Loads in all domains for the currently supplied data 33 | * @param queryparams: Additional query params. 34 | * @returns {Deferred} 35 | */ 36 | self.loadDomains = function (queryparams) { 37 | return api.get('domains', {queryparams: queryparams}) 38 | }; 39 | } 40 | return new DomainService(); 41 | 42 | }); 43 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/services/misc.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | /** 18 | * Service to help with StorageDriver related tasks 19 | */ 20 | define([ 21 | 'jquery', 'knockout', 22 | 'ovs/api', 23 | ], function ($, ko, api) { 24 | /** 25 | * Returns a singleton instance of this service (same instance is served throughout the application) 26 | */ 27 | function MiscService(){ 28 | var self = this; 29 | 30 | /** 31 | * Fetch the branding info 32 | * @return {object} 33 | */ 34 | self.branding = function() { 35 | return api.get('branding') 36 | }; 37 | self.metadata = function() { 38 | return api.get('') 39 | }; 40 | } 41 | return new MiscService() 42 | }); -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/services/task.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | /** 18 | * Service to help with backend related tasks 19 | */ 20 | define([ 21 | 'jquery', 22 | 'ovs/api' 23 | ], function ($, 24 | api) { 25 | 26 | function TaskService() { } 27 | var functions = { 28 | /** 29 | * Retrieve a task 30 | * @param taskID: Identifier of the task 31 | */ 32 | getTask: function(taskID) { 33 | return api.get('tasks/' + taskID) 34 | } 35 | }; 36 | 37 | TaskService.prototype = $.extend({}, functions); 38 | 39 | return new TaskService(); 40 | }); -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/services/user.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | /** 18 | * Service to help with backend related tasks 19 | */ 20 | define([ 21 | 'jquery', 'knockout', 22 | 'ovs/api' 23 | ], function ($, ko, api) { 24 | 25 | function UserService() { 26 | var self = this; 27 | 28 | // Variables 29 | self.cacheTypes = ko.observableArray(['fragment_cache', 'block_cache']); 30 | 31 | // Functions 32 | /** 33 | * Loads in all vpools for the current supplied data 34 | * @param queryParams: Additional query params. Defaults to no params 35 | * @returns {Deferred} 36 | */ 37 | self.fetchUser = function(guid) { 38 | return api.get('users/' + guid); 39 | }; 40 | 41 | } 42 | return new UserService(); 43 | }); -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/addbackend/constants.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define([ 18 | ], function(){ 19 | "use strict"; 20 | return { 21 | wizard_identifier: 'addbackend' 22 | } 23 | }); 24 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/addbackend/index.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define([ 18 | 'jquery', 'ovs/generic', 19 | '../build', './gather', './data' 20 | ], function($, generic, Build, Gather, Data) { 21 | "use strict"; 22 | return function(options) { 23 | var self = this; 24 | // Inherit 25 | Build.call(self); 26 | 27 | // Variables 28 | var data = new Data(); 29 | var stepOptions = {data: data}; 30 | // Setup 31 | self.title(generic.tryGet(options, 'title', $.t('ovs:wizards.add_backend.title'))); 32 | self.modal(generic.tryGet(options, 'modal', false)); 33 | self.steps([new Gather(stepOptions)]); 34 | self.activateStep(); 35 | }; 36 | }); 37 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/addvdisk/index.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | 17 | /*global define */ 18 | define([ 19 | 'jquery', 'ovs/generic', 20 | '../build', './data', './gather' 21 | ], function($, generic, Build, data, Gather) { 22 | "use strict"; 23 | return function(options) { 24 | var self = this; 25 | Build.call(self); 26 | 27 | // Variables 28 | self.data = data; 29 | 30 | // Setup 31 | self.title(generic.tryGet(options, 'title', $.t('ovs:wizards.add_vdisk.title'))); 32 | self.modal(generic.tryGet(options, 'modal', false)); 33 | 34 | self.steps([new Gather()]); 35 | self.activateStep(); 36 | 37 | // Cleaning data 38 | data.name(''); 39 | data.sizeEntry(1); 40 | data.storageRouter(undefined); 41 | data.storageRouters([]); 42 | data.vPool(undefined); 43 | data.vPools([]); 44 | data.vPoolUsableBackendMap({}); 45 | }; 46 | }); 47 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/addvpool/gather_block_cache.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define([ 18 | 'jquery', 'knockout', 19 | 'viewmodels/wizards/addvpool/gather_base_cache' 20 | ], function($, ko, 21 | BaseStepCache) { 22 | "use strict"; 23 | return function(options) { 24 | var self = this; 25 | 26 | BaseStepCache.call(self, options); 27 | 28 | // Abstract implementations 29 | self.getCacheType = function() { 30 | return 'block_cache' 31 | }; 32 | self.getOtherConnectionInfo = function() { 33 | return self.data.cachingData.fragment_cache.backend_info.connection_info; 34 | }; 35 | } 36 | }); 37 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/addvpool/gather_fragment_cache.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define([ 18 | 'jquery', 'knockout', 19 | 'viewmodels/wizards/addvpool/gather_base_cache' 20 | ], function($, ko, 21 | BaseStepCache) { 22 | "use strict"; 23 | return function(options) { 24 | var self = this; 25 | 26 | BaseStepCache.call(self, options); 27 | 28 | // Abstract implementations 29 | self.getCacheType = function() { 30 | return 'fragment_cache' 31 | }; 32 | self.getOtherConnectionInfo = function() { 33 | return self.data.cachingData.block_cache.backend_info.connection_info; 34 | }; 35 | } 36 | }); 37 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/changepassword/data.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define(['knockout'], function(ko){ 18 | "use strict"; 19 | var singleton = function() { 20 | return { 21 | user: ko.observable() 22 | }; 23 | }; 24 | return singleton(); 25 | }); 26 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/changepassword/index.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define([ 18 | 'jquery', 'ovs/generic', 19 | '../build', './confirm', './data' 20 | ], function($, generic, Build, Confirm, data) { 21 | "use strict"; 22 | return function(options) { 23 | var self = this; 24 | // Inherit 25 | Build.call(self); 26 | 27 | // Variables 28 | self.data = data; 29 | 30 | // Setup 31 | self.title(generic.tryGet(options, 'title', $.t('ovs:wizards.changepassword.title'))); 32 | self.modal(generic.tryGet(options, 'modal', false)); 33 | self.data.user(options.user); 34 | self.steps([new Confirm()]); 35 | self.activateStep(); 36 | }; 37 | }); 38 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/configurepartition/index.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define([ 18 | 'jquery', 'ovs/generic', 19 | '../build', './data', './gather' 20 | ], function($, generic, Build, data, Gather) { 21 | "use strict"; 22 | return function(options) { 23 | var self = this; 24 | // Inherit 25 | Build.call(self); 26 | 27 | // Variables 28 | self.data = data; 29 | 30 | // Setup 31 | self.title(generic.tryGet(options, 'title', $.t('ovs:wizards.configure_partition.title'))); 32 | self.modal(generic.tryGet(options, 'modal', false)); 33 | self.data.partition(options.partition); 34 | self.data.disk(options.disk); 35 | self.data.storageRouter(options.storageRouter); 36 | self.steps([new Gather(self)]); 37 | self.activateStep(); 38 | 39 | // Reset 40 | self.data.roles([]); 41 | }; 42 | }); 43 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/createfromtemplate/data.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define(['knockout'], function(ko){ 18 | "use strict"; 19 | var singleton = function() { 20 | return { 21 | guid: ko.observable(), 22 | vObject: ko.observable(), 23 | amount: ko.observable(1).extend({ numeric: { min: 1 } }), 24 | startnr: ko.observable(1).extend({ numeric: { min: 0 } }), 25 | name: ko.observable(), 26 | description: ko.observable(''), 27 | selectedStorageRouters: ko.observableArray([]), 28 | storageRouters: ko.observableArray([]) 29 | }; 30 | }; 31 | return singleton(); 32 | }); 33 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/rollback/data.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define(['knockout'], function(ko){ 18 | "use strict"; 19 | var singleton = function() { 20 | return { 21 | guid: ko.observable(), 22 | velement: ko.observable(), 23 | snapshot: ko.observable() 24 | }; 25 | }; 26 | return singleton(); 27 | }); 28 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/rollback/index.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define([ 18 | 'jquery', 'ovs/generic', 19 | '../build', './gather', './data' 20 | ], function($, generic, Build, Gather, data) { 21 | "use strict"; 22 | return function(options) { 23 | var self = this; 24 | // Inherit 25 | Build.call(self); 26 | 27 | // Variables 28 | self.data = data; 29 | 30 | // Setup 31 | self.title(generic.tryGet(options, 'title', $.t('ovs:wizards.rollback.title'))); 32 | self.modal(generic.tryGet(options, 'modal', false)); 33 | self.data.guid(options.guid); 34 | self.steps([new Gather()]); 35 | self.activateStep(); 36 | }; 37 | }); 38 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/snapshot/data.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define(['knockout'], function(ko){ 18 | "use strict"; 19 | var singleton = function() { 20 | return { 21 | name: ko.observable(''), 22 | guid: ko.observable(), 23 | vObject: ko.observable(), 24 | isConsistent: ko.observable(false), 25 | isSticky: ko.observable(false) 26 | }; 27 | }; 28 | return singleton(); 29 | }); 30 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/snapshot/index.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define([ 18 | 'jquery', 'ovs/generic', 19 | '../build', './gather', './data' 20 | ], function($, generic, Build, Gather, data) { 21 | "use strict"; 22 | return function(options) { 23 | var self = this; 24 | // Inherit 25 | Build.call(self); 26 | 27 | // Variables 28 | self.data = data; 29 | 30 | // Setup 31 | self.title(generic.tryGet(options, 'title', $.t('ovs:wizards.snapshot.title'))); 32 | self.modal(generic.tryGet(options, 'modal', false)); 33 | self.data.guid(options.guid); 34 | self.steps([new Gather()]); 35 | self.activateStep(); 36 | 37 | self.data.name(''); 38 | self.data.isSticky(false); 39 | self.data.isConsistent(false); 40 | }; 41 | }); 42 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/statsmonkeyconfigure/data.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define([ 18 | 'knockout' 19 | ], function(ko){ 20 | "use strict"; 21 | return function(newConfig, origConfig){ 22 | var self = this; 23 | 24 | self.newConfig = newConfig; 25 | self.origConfig = origConfig; 26 | 27 | self.resetTransport = ko.computed(function() { 28 | var transport = self.origConfig.transport(); 29 | if (transport === 'graphite') { 30 | // Reset the Database name 31 | self.origConfig.database('openvstorage.fwk') 32 | } 33 | }) 34 | }; 35 | }); 36 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/statsmonkeyconfigure/index.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2017 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define([ 18 | 'jquery', 'ovs/generic', 19 | '../build', './gather', './data' 20 | ], function($, generic, Build, Gather, Data) { 21 | "use strict"; 22 | return function(options) { 23 | var self = this; 24 | Build.call(self); 25 | 26 | // Variables 27 | self.data = data; 28 | 29 | // Cleaning data 30 | // Variables 31 | var data = new Data(options.newConfig, options.origConfig); 32 | 33 | var stepOptions = { 34 | data: data 35 | }; 36 | 37 | // Setup 38 | self.title(generic.tryGet(options, 'title', $.t('ovs:wizards.stats_monkey_configure.title'))); 39 | self.modal(generic.tryGet(options, 'modal', false)); 40 | self.steps([new Gather(stepOptions)]); 41 | self.activateStep(); 42 | }; 43 | }); 44 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/update/data.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define(['knockout'], function(ko){ 18 | "use strict"; 19 | var singleton = function() { 20 | return { 21 | storageRouter: ko.observable() 22 | }; 23 | }; 24 | return singleton(); 25 | }); 26 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/update/index.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define([ 18 | 'jquery', 'ovs/generic', 19 | '../build', './gather', './data' 20 | ], function($, generic, Build, Gather, data) { 21 | "use strict"; 22 | return function(options) { 23 | var self = this; 24 | // Inherit 25 | Build.call(self); 26 | 27 | // Variables 28 | self.data = data; 29 | 30 | // Setup 31 | self.title(generic.tryGet(options, 'title', $.t('ovs:wizards.update.title'))); 32 | self.modal(generic.tryGet(options, 'modal', false)); 33 | self.data.storageRouter(options.storagerouter); 34 | self.steps([new Gather()]); 35 | self.activateStep(); 36 | }; 37 | }); 38 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/vdiskmove/data.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define(['knockout'], function(ko){ 18 | "use strict"; 19 | var singleton = function() { 20 | return { 21 | vDisk: ko.observable(), 22 | source: ko.observable(), 23 | target: ko.observable(), 24 | targets: ko.observableArray([]), 25 | storageRouters: ko.observableArray([]), 26 | }; 27 | }; 28 | return singleton(); 29 | }); 30 | -------------------------------------------------------------------------------- /webapps/frontend/app/viewmodels/wizards/vdiskmove/index.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define([ 18 | 'jquery', 'ovs/generic', 19 | '../build', './gather', './data' 20 | ], function($, generic, Build, Gather, data) { 21 | "use strict"; 22 | return function(options) { 23 | var self = this; 24 | // Inherit 25 | Build.call(self); 26 | 27 | // Variables 28 | self.data = data; 29 | 30 | // Setup 31 | self.title(generic.tryGet(options, 'title', $.t('ovs:wizards.vdisk_move.title'))); 32 | self.modal(generic.tryGet(options, 'modal', false)); 33 | self.data.vDisk(options.vdisk); 34 | self.steps([new Gather()]); 35 | self.activateStep(); 36 | 37 | // Cleaning data 38 | self.data.source(undefined); 39 | self.data.storageRouters([]); 40 | self.data.target(undefined); 41 | self.data.targets([]); 42 | }; 43 | }); 44 | -------------------------------------------------------------------------------- /webapps/frontend/app/views/404.html: -------------------------------------------------------------------------------- 1 | 18 |
19 |

20 |
21 |
22 | -------------------------------------------------------------------------------- /webapps/frontend/app/views/shell.html: -------------------------------------------------------------------------------- 1 |  18 |
19 | -------------------------------------------------------------------------------- /webapps/frontend/app/views/wizards/clone/confirm.html: -------------------------------------------------------------------------------- 1 | 18 |
19 |

20 | 21 |

22 |

23 |
24 |
25 | 26 |

27 |
28 | -------------------------------------------------------------------------------- /webapps/frontend/app/widgets/footer/view.html: -------------------------------------------------------------------------------- 1 | 18 |
19 |
20 | 21 | 22 | 23 |
24 |
25 | -------------------------------------------------------------------------------- /webapps/frontend/app/widgets/lazyloader/view.html: -------------------------------------------------------------------------------- 1 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /webapps/frontend/app/widgets/numberinput/view.html: -------------------------------------------------------------------------------- 1 | 18 |
19 | 20 | 23 | 24 | 25 | 26 | 29 | 30 |
31 | -------------------------------------------------------------------------------- /webapps/frontend/app/widgets/numberinput/viewmodel.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define([ 18 | 'knockout', 'jquery' 19 | ], function(ko, $) { 20 | "use strict"; 21 | return function() { 22 | var self = this; 23 | 24 | // Variables 25 | self.boundItem = null; 26 | 27 | // Functions 28 | self.increment = function() { 29 | self.boundItem(self.boundItem() + 1); // Relying on the extender for min and max 30 | }; 31 | self.decrement = function() { 32 | self.boundItem(self.boundItem() - 1); // Relying on the extender for min and max 33 | }; 34 | 35 | // Durandal 36 | self.activate = function(settings) { 37 | if (!settings.hasOwnProperty('item')) { 38 | throw 'An item has to be specified'; 39 | } 40 | if (!ko.isObservable(settings.item)) { 41 | throw 'The item should be an observable' 42 | } 43 | self.boundItem = settings.item; 44 | }; 45 | }; 46 | }); 47 | -------------------------------------------------------------------------------- /webapps/frontend/app/widgets/searchbar/view.html: -------------------------------------------------------------------------------- 1 | 18 |
19 |
20 | 21 |
22 | 23 |
24 |
25 |
26 | -------------------------------------------------------------------------------- /webapps/frontend/css/durandal.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Durandal 2.0.0 Copyright (c) 2012 Blue Spire Consulting, Inc. All Rights Reserved. 3 | * Available via the MIT license. 4 | * see: http://durandaljs.com or https://github.com/BlueSpire/Durandal for details 5 | */ 6 | 7 | .splash { 8 | text-align: center; 9 | margin: 10% 0 0 0; 10 | } 11 | 12 | .splash .message { 13 | font-size: 5em; 14 | line-height: 1.5em; 15 | -webkit-text-shadow: rgba(0, 0, 0, 0.5) 0 0 15px; 16 | text-shadow: rgba(0, 0, 0, 0.5) 0 0 15px; 17 | text-transform: uppercase; 18 | } 19 | 20 | .splash .icon-spinner { 21 | text-align: center; 22 | display: inline-block; 23 | font-size: 5em; 24 | margin-top: 50px; 25 | } 26 | 27 | .page-host { 28 | position: relative; 29 | top: 70px; 30 | } 31 | 32 | .navbar-fixed-top .navbar-inner { 33 | padding-left: 1em; 34 | padding-right: 1em; 35 | } 36 | 37 | .navbar-fixed-top .icon-home { 38 | font-size: 18px 39 | } 40 | 41 | .loader { 42 | margin: 6px 8px 4px 8px; 43 | visibility: hidden; 44 | } 45 | 46 | .loader.active { 47 | visibility: visible; 48 | } 49 | 50 | @media (max-width: 979px) { 51 | .page-host { 52 | top: 0; 53 | } 54 | 55 | .navbar-fixed-top { 56 | margin-bottom: 0; 57 | } 58 | } 59 | 60 | .modalHost { 61 | top: 35% 62 | } -------------------------------------------------------------------------------- /webapps/frontend/lib/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/webapps/frontend/lib/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /webapps/frontend/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/webapps/frontend/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /webapps/frontend/lib/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/webapps/frontend/lib/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /webapps/frontend/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/webapps/frontend/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /webapps/frontend/lib/durandal/img/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/webapps/frontend/lib/durandal/img/icon.png -------------------------------------------------------------------------------- /webapps/frontend/lib/durandal/img/ios-startup-image-landscape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/webapps/frontend/lib/durandal/img/ios-startup-image-landscape.png -------------------------------------------------------------------------------- /webapps/frontend/lib/durandal/img/ios-startup-image-portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/webapps/frontend/lib/durandal/img/ios-startup-image-portrait.png -------------------------------------------------------------------------------- /webapps/frontend/lib/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/webapps/frontend/lib/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /webapps/frontend/lib/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/webapps/frontend/lib/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /webapps/frontend/lib/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/webapps/frontend/lib/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /webapps/frontend/lib/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/webapps/frontend/lib/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /webapps/frontend/lib/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/webapps/frontend/lib/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /webapps/frontend/lib/ovs/extensions/knockout-extensions.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define(['knockout'], function(ko) { 18 | "use strict"; 19 | ko.observableArray.fn.isObservableArray = true; 20 | }); 21 | -------------------------------------------------------------------------------- /webapps/frontend/lib/ovs/images/noise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/webapps/frontend/lib/ovs/images/noise.png -------------------------------------------------------------------------------- /webapps/frontend/lib/ovs/images/ovssmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/webapps/frontend/lib/ovs/images/ovssmall.png -------------------------------------------------------------------------------- /webapps/frontend/lib/ovs/images/ovssplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openvstorage/framework/6e985c343aa03e9abd3f9d946ce48136aad4ce2c/webapps/frontend/lib/ovs/images/ovssplash.png -------------------------------------------------------------------------------- /webapps/frontend/lib/ovs/plugins/cssloader.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define(['jquery'], function ($) { 18 | 'use strict'; 19 | return { 20 | loadCss : function (fileName) { 21 | var cssTag = document.createElement('link'); 22 | cssTag.setAttribute('rel', 'stylesheet'); 23 | cssTag.setAttribute('type', 'text/css'); 24 | cssTag.setAttribute('href', fileName); 25 | cssTag.setAttribute('class', '__dynamicCss'); 26 | document.getElementsByTagName('head')[0].appendChild(cssTag); 27 | }, 28 | removeModuleCss: function () { 29 | $('.__dynamicCss').remove(); 30 | } 31 | }; 32 | }); 33 | -------------------------------------------------------------------------------- /webapps/frontend/lib/ovs/services/log.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define(['jquery'], 18 | function($) { 19 | "use strict"; 20 | 21 | /** 22 | * Handles logging 23 | * @constructor 24 | */ 25 | function LogService(){ } 26 | 27 | var functions = { 28 | log: function(message, severity) { 29 | if (window.console) { 30 | if (severity === 'info' || severity === null || severity === undefined) { 31 | console.log(message); 32 | } else if (severity === 'warning') { 33 | console.warn(message); 34 | } else if (severity === 'error') { 35 | console.error(message); 36 | } 37 | } 38 | } 39 | }; 40 | 41 | LogService.prototype = $.extend({}, functions); 42 | return new LogService() 43 | }); 44 | -------------------------------------------------------------------------------- /webapps/frontend/lib/ovs/services/release.js: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018 iNuron NV 2 | // 3 | // This file is part of Open vStorage Open Source Edition (OSE), 4 | // as available from 5 | // 6 | // http://www.openvstorage.org and 7 | // http://www.openvstorage.com. 8 | // 9 | // This file is free software; you can redistribute it and/or modify it 10 | // under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 11 | // as published by the Free Software Foundation, in version 3 as it comes 12 | // in the LICENSE.txt file of the Open vStorage OSE distribution. 13 | // 14 | // Open vStorage is distributed in the hope that it will be useful, 15 | // but WITHOUT ANY WARRANTY of any kind. 16 | /*global define */ 17 | define([], 18 | function() { 19 | "use strict"; 20 | 21 | /** 22 | * Contains the release name 23 | * ReleaseName is currently filled in after logging in in the authentication service 24 | * @constructor 25 | */ 26 | function ReleaseService(){ 27 | this.releaseName = '' 28 | } 29 | 30 | ReleaseService.prototype = {}; 31 | return new ReleaseService() 32 | }); 33 | -------------------------------------------------------------------------------- /webapps/frontend/offline/cache.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 20 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /webapps/frontend/offline/ovs.appcache: -------------------------------------------------------------------------------- 1 | CACHE MANIFEST 2 | # version=0.0.0b0 3 | 4 | # Copyright (C) 2016 iNuron NV 5 | # 6 | # This file is part of Open vStorage Open Source Edition (OSE), 7 | # as available from 8 | # 9 | # http://www.openvstorage.org and 10 | # http://www.openvstorage.com. 11 | # 12 | # This file is free software; you can redistribute it and/or modify it 13 | # under the terms of the GNU Affero General Public License v3 (GNU AGPLv3) 14 | # as published by the Free Software Foundation, in version 3 as it comes 15 | # in the LICENSE.txt file of the Open vStorage OSE distribution. 16 | # 17 | # Open vStorage is distributed in the hope that it will be useful, 18 | # but WITHOUT ANY WARRANTY of any kind. 19 | 20 | CACHE: 21 | # html 22 | /offline/offline.html 23 | # css 24 | /lib/font-awesome/css/font-awesome.min.css 25 | /css/durandal.css 26 | # javascript 27 | /lib/jquery/jquery-1.9.1.js 28 | # fonts 29 | /lib/font-awesome/fonts/fontawesome-webfont.woff?v=4.0.3 30 | /lib/font-awesome/fonts/fontawesome-webfont.ttf?v=4.0.3 31 | /lib/font-awesome/fonts/fontawesome-webfont.svg?v=4.0.3 32 | # images 33 | /lib/ovs/images/ovssplash.png 34 | 35 | NETWORK: 36 | /api/ 37 | 38 | FALLBACK: 39 | / /offline/offline.html 40 | --------------------------------------------------------------------------------