aboutsummaryrefslogtreecommitdiffstats
path: root/moon_dashboard/moon/static/moon/pdp
diff options
context:
space:
mode:
Diffstat (limited to 'moon_dashboard/moon/static/moon/pdp')
-rw-r--r--moon_dashboard/moon/static/moon/pdp/pdp.controller.js125
-rw-r--r--moon_dashboard/moon/static/moon/pdp/pdp.html41
-rwxr-xr-xmoon_dashboard/moon/static/moon/pdp/pdp.service.js123
-rwxr-xr-xmoon_dashboard/moon/static/moon/pdp/pdp.service.spec.js143
4 files changed, 0 insertions, 432 deletions
diff --git a/moon_dashboard/moon/static/moon/pdp/pdp.controller.js b/moon_dashboard/moon/static/moon/pdp/pdp.controller.js
deleted file mode 100644
index 1859b1f8..00000000
--- a/moon_dashboard/moon/static/moon/pdp/pdp.controller.js
+++ /dev/null
@@ -1,125 +0,0 @@
-(function () {
- 'use strict';
-
- angular
- .module('moon')
- .controller('moon.pdp.controller',
- controller);
-
- controller.$inject = ['moon.util.service', 'moon.pdp.service', 'horizon.framework.widgets.form.ModalFormService'];
-
- function controller(util, pdpService, ModalFormService) {
- var self = this;
- self.model = pdpService;
- pdpService.initialize();
-
- self.createPdp = function createPdp() {
- var schema = {
- type: "object",
- properties: {
- name: { type: "string", minLength: 2, title: gettext("Name") },
- description: { type: "string", minLength: 2, title: gettext("Description") }
- },
- required: ['name', 'description']
- };
- var pdp = { name: '', description: '' };
- var config = {
- title: gettext('Create PDP'),
- schema: schema,
- form: ['name', { key: 'description', type: 'textarea' }],
- model: pdp
- };
- ModalFormService.open(config).then(submit);
-
- function submit(form) {
- pdpService.createPdp(form.model);
- }
- }
-
- self.updatePdp = function updatePdp(pdp) {
- var schema = {
- type: "object",
- properties: {
- name: { type: "string", minLength: 2, title: gettext("Name") },
- description: { type: "string", minLength: 2, title: gettext("Description") }
- },
- required: ['name', 'description']
- };
- var config = {
- title: gettext('Update PDP'),
- schema: schema,
- form: ['name', { key: 'description', type: 'textarea' }],
- model: angular.copy(pdp)
- };
- ModalFormService.open(config).then(submit);
-
- function submit(form) {
- pdpService.updatePdp(form.model);
- }
- }
-
- self.removePdp = function removePdp(pdp) {
- if (confirm(gettext('Are you sure to delete this PDP?')))
- pdpService.removePdp(pdp);
- }
-
- self.addPolicy = function addPolicy(pdp) {
- var schema = {
- type: "object",
- properties: {
- id: { type: "string", title: gettext("Select a Policy:") }
- },
- required: ['id']
- };
- var titleMap = util.arrayToTitleMap(pdpService.policies)
- var config = {
- title: gettext('Add Policy'),
- schema: schema,
- form: [{ key: 'id', type: 'select', titleMap: titleMap }],
- model: {}
- };
- ModalFormService.open(config).then(submit);
-
- function submit(form) {
- var pdpCopy = angular.copy(pdp);
- pdpCopy.security_pipeline.push(pdpService.getPolicy(form.model.id));
- pdpService.updatePdp(pdpCopy);
- }
- }
-
- self.removePolicyFromPdp = function removePolicyFromPdp(pdp, policy) {
- if (confirm(gettext('Are you sure to remove this Policy from PDP?'))) {
- var pdpCopy = angular.copy(pdp);
- pdpCopy.security_pipeline.splice(pdp.security_pipeline.indexOf(policy), 1);
- pdpService.updatePdp(pdpCopy);
- }
- }
-
- self.changeProject = function changeProject(pdp) {
- var schema = {
- type: "object",
- properties: {
- id: { type: "string", title: gettext("Select a Project:") }
- },
- required: ['id']
- };
- var model = {id : pdp.keystone_project_id};
-
- var titleMap = util.arrayToTitleMap(pdpService.projects)
- var config = {
- title: gettext('Change Project'),
- schema: schema,
- form: [{ key: 'id', type: 'select', titleMap: titleMap }],
- model: model
- };
- ModalFormService.open(config).then(submit);
-
- function submit(form) {
- var pdpCopy = angular.copy(pdp);
- pdpCopy.project = pdpService.getProject(form.model.id);
- pdpService.updatePdp(pdpCopy);
- }
- }
-
- }
-})(); \ No newline at end of file
diff --git a/moon_dashboard/moon/static/moon/pdp/pdp.html b/moon_dashboard/moon/static/moon/pdp/pdp.html
deleted file mode 100644
index 2456a261..00000000
--- a/moon_dashboard/moon/static/moon/pdp/pdp.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<div ng-controller="moon.pdp.controller as ctrl">
- <div class="clearfix list-group">
- <div class="pull-right">
- <input type="search" class="form-control filter" placeholder="Filter" ng-model="filterText">
- <button type="button" class="btn btn-default" ng-click="ctrl.createPdp()">
- <span class="fa fa-plus"></span>
- <translate>Create PDP</translate>
- </button>
- </div>
- </div>
- <div class="list-group">
- <div ng-repeat="pdp in ctrl.model.pdps | orderBy:'name' | filter:filterText " class="list-group-item">
- <h3 class="list-group-item-heading inline">{$ pdp.name $}</h3>
- <div class="pull-right">
- <button type="button" class="fa fa-trash" ng-click="ctrl.removePdp(pdp)" title="{$ 'Remove PDP' | translate $}"></button>
- <button type="button" class="fa fa-edit" ng-click="ctrl.updatePdp(pdp)" title="{$ 'Edit PDP' | translate $}"></button>
- </div>
- <p class="list-group-item-text">{$ pdp.description $}</p>
- <h4 class="list-group-item-text">
- <translate>Project: {$ pdp.project ? pdp.project.name : 'none' $}</translate>
- <button type="button" class="fa fa-edit" ng-click="ctrl.changeProject(pdp)" title="{$ 'Change project' | translate $}"></button>
- </h4>
-
- <details class="list-group-item-text">
- <summary>
- <h4 class="inline">{$ pdp.security_pipeline.length $}
- <translate>policy(ies)</translate>
- </h4>
- <button type="button" class="fa fa-plus " ng-click="ctrl.addPolicy(pdp)" title="{$ 'Add Policy' | translate $}"></button>
- </summary>
- <div class="list-group">
- <div ng-repeat="policy in pdp.security_pipeline | orderBy:'name'" class="list-group-item">
- <h3 class="list-group-item-heading inline">{$ policy.name $}</h3>
- <button type="button" class="fa fa-trash pull-right" ng-click="ctrl.removePolicyFromPdp(pdp, policy)" title="{$ 'Remove Policy' | translate $}"></button>
- <p class="list-group-item-text">{$ policy.description $}</p>
- </div>
- </div>
- </details>
- </div>
- </div>
-</div> \ No newline at end of file
diff --git a/moon_dashboard/moon/static/moon/pdp/pdp.service.js b/moon_dashboard/moon/static/moon/pdp/pdp.service.js
deleted file mode 100755
index e18971be..00000000
--- a/moon_dashboard/moon/static/moon/pdp/pdp.service.js
+++ /dev/null
@@ -1,123 +0,0 @@
-(function () {
-
- 'use strict';
-
- angular
- .module('moon')
- .factory('moon.pdp.service', pdpService);
-
- pdpService.$inject = ['moon.util.service', '$resource', 'moon.URI', '$q', 'horizon.app.core.openstack-service-api.keystone'];
-
- function pdpService(util, $resource, URI, $q, keystone) {
- var host = URI.API;
-
- var pdpResource = $resource(host + '/pdp/' + ':id', {}, {
- get: { method: 'GET' },
- query: { method: 'GET' },
- create: { method: 'POST' },
- remove: { method: 'DELETE' },
- update: { method: 'PATCH' }
- });
-
- var policyResource = $resource(host + '/policies/' + ':id', {}, {
- query: { method: 'GET' },
- });
-
- var pdpsMap = {};
- var pdps = [];
- var policiesMap = {};
- var policies = [];
- var projectsMap = {};
- var projects = [];
-
- function loadPdps() {
- var queries = {
- pdps: pdpResource.query().$promise,
- policies: policyResource.query().$promise,
- projects: keystone.getProjects()
- }
-
- $q.all(queries).then(function (result) {
- createPdps(result.pdps, result.policies, result.projects.data)
- console.log('moon', 'pdps initialized', pdps)
- })
- }
-
- function createPdps(pdpsData, policiesData, projectsData) {
- pdps.splice(0, pdps.length);
- policies.splice(0, policies.length);
- projects.splice(0, projects.length);
- util.cleanObject(pdpsMap);
- util.cleanObject(policiesMap);
- util.cleanObject(projectsMap)
-
- util.createInternal(policiesData.policies, policies, policiesMap);
- util.pushAll(projects, projectsData.items);
- util.addToMap(projects, projectsMap);
- createPdpInternal(pdpsData.pdps);
- }
-
- function mapPdp(pdp) {
- util.mapIdToItem(pdp.security_pipeline, policiesMap);
- pdp.project = null;
- if (pdp.keystone_project_id) {
- pdp.project = projectsMap[pdp.keystone_project_id];
- }
- }
-
- function createPdpInternal(data) {
- return util.createInternal(data, pdps, pdpsMap, mapPdp);
- }
-
- function updatePdpInternal(data) {
- return util.updateInternal(data, pdpsMap, mapPdp);
- }
-
- function removePdpInternal(id) {
- return util.removeInternal(id, pdps, pdpsMap);
- }
-
- return {
- initialize: loadPdps,
- createPdps: createPdps,
- pdps: pdps,
- policies: policies,
- projects: projects,
- createPdp: function createPdp(pdp) {
- pdp.keystone_project_id = null;
- pdp.security_pipeline = [];
- pdpResource.create(null, pdp, success, util.displayErrorFunction('Unable to create PDP'));
-
- function success(data) {
- createPdpInternal(data.pdps);
- util.displaySuccess('PDP created');
- }
- },
- removePdp: function removePdp(pdp) {
- pdpResource.remove({ id: pdp.id }, null, success, util.displayErrorFunction('Unable to remove PDP'));
-
- function success(data) {
- removePdpInternal(pdp.id);
- util.displaySuccess('PDP removed');
- }
- },
- updatePdp: function updatePdp(pdp) {
- util.mapItemToId(pdp.security_pipeline);
- pdp.keystone_project_id = pdp.project ? pdp.project.id : null;
- pdpResource.update({ id: pdp.id }, pdp, success, util.displayErrorFunction('Unable to update PDP'));
-
- function success(data) {
- updatePdpInternal(data.pdps)
- util.displaySuccess('PDP updated');
- }
- },
- getPolicy: function getPolicy(id) {
- return policiesMap[id];
- },
- getProject: function getProject(id) {
- return projectsMap[id];
- },
- }
-
- }
-})(); \ No newline at end of file
diff --git a/moon_dashboard/moon/static/moon/pdp/pdp.service.spec.js b/moon_dashboard/moon/static/moon/pdp/pdp.service.spec.js
deleted file mode 100755
index 4208467f..00000000
--- a/moon_dashboard/moon/static/moon/pdp/pdp.service.spec.js
+++ /dev/null
@@ -1,143 +0,0 @@
-(function () {
- 'use strict';
-
- describe('moon.pdp.service', function () {
- var service, $httpBackend, URI;
- var pdpsData, policiesData, projectsData;
-
-
- function initData() {
- pdpsData = {
- pdps:
- { 'pdpId1': { name: 'pdp1', description: 'pdpDescription1', security_pipeline: ['policyId1'], keystone_project_id: 'projectId1' } }
- };
-
- policiesData = {
- policies:
- {
- 'policyId1': { name: 'policy1', description: 'pDescription1' },
- 'policyId2': { name: 'policy2', description: 'pDescription2' }
- }
- };
-
- projectsData = {
- items: [
- { name: "project1", id: "projectId1" },
- { name: "project2", id: "projectId2" }
- ]
- };
-
- }
-
- beforeEach(module('horizon.app.core'));
- beforeEach(module('horizon.framework'));
- beforeEach(module('moon'));
-
- beforeEach(inject(function ($injector) {
- service = $injector.get('moon.pdp.service');
- $httpBackend = $injector.get('$httpBackend');
- URI = $injector.get('moon.URI');
- }));
-
- afterEach(function () {
- $httpBackend.verifyNoOutstandingExpectation();
- $httpBackend.verifyNoOutstandingRequest();
- });
-
- it('should initialize', function () {
- initData();
- $httpBackend.expectGET(URI.API + '/pdp').respond(200, pdpsData);
- $httpBackend.expectGET(URI.API + '/policies').respond(200, policiesData);
- $httpBackend.expectGET('/api/keystone/projects/').respond(200, projectsData);
-
-
- service.initialize();
- $httpBackend.flush();
-
- expect(service.pdps.length).toBe(1);
- var pdp = service.pdps[0];
- expect(pdp.id).toBe('pdpId1');
- expect(pdp.name).toBe('pdp1');
- expect(pdp.description).toBe('pdpDescription1');
- expect(pdp.security_pipeline.length).toBe(1);
- expect(pdp.security_pipeline[0].id).toBe('policyId1');
- expect(pdp.keystone_project_id).toBe('projectId1');
- expect(pdp.project.id).toBe('projectId1');
-
- expect(service.policies.length).toBe(2);
- var policy = service.policies[0];
- expect(policy.id).toBe('policyId1');
- expect(policy.name).toBe('policy1');
- expect(policy.description).toBe('pDescription1');
-
-
- expect(service.projects.length).toBe(2);
- var project = service.projects[0];
- expect(project.id).toBe('projectId1');
- expect(project.name).toBe('project1');
-
- });
-
-
-
- it('should create pdp', function () {
- var pdpCreatedData = {
- pdps:
- { 'pdpId1': { name: 'pdp1', description: 'pdpDescription1', security_pipeline: [], keystone_project_id: null } }
- };
-
- $httpBackend.expectPOST(URI.API + '/pdp').respond(200, pdpCreatedData);
-
- service.createPdp({ name: 'pdp1', description: 'pdpDescription1' });
- $httpBackend.flush();
-
- expect(service.pdps.length).toBe(1);
- var pdp = service.pdps[0];
- expect(pdp.id).toBe('pdpId1');
- expect(pdp.name).toBe('pdp1');
- expect(pdp.description).toBe('pdpDescription1');
- expect(pdp.project).toBe(null);
- expect(pdp.security_pipeline.length).toBe(0);
- });
-
- it('should remove pdp', function () {
- initData();
- service.createPdps(pdpsData, policiesData, projectsData);
-
- $httpBackend.expectDELETE(URI.API + '/pdp/pdpId1').respond(200);
-
- service.removePdp({ id: 'pdpId1' });
- $httpBackend.flush();
-
- expect(service.pdps.length).toBe(0);
- });
-
- it('should update pdp', function () {
- initData();
- var pdpUpdatedData = {
- pdps:
- { 'pdpId1': { name: 'pdp2', description: 'pdpDescription2', security_pipeline: ['policyId2'], keystone_project_id: 'projectId2' } }
- };
- service.createPdps(pdpsData, policiesData, projectsData);
-
- $httpBackend.expectPATCH(URI.API + '/pdp/pdpId1').respond(200, pdpUpdatedData);
-
- service.updatePdp({ id: 'pdpId1', name: 'pdp2', description: 'pdpDescription2', security_pipeline: [service.getPolicy('policyId2')], project: service.getProject('projectId2') });
- $httpBackend.flush();
-
- expect(service.pdps.length).toBe(1);
- var pdp = service.pdps[0];
- expect(pdp.id).toBe('pdpId1');
- expect(pdp.name).toBe('pdp2');
- expect(pdp.description).toBe('pdpDescription2');
- expect(pdp.project.id).toBe('projectId2');
- expect(pdp.security_pipeline.length).toBe(1);
- expect(pdp.security_pipeline[0].id).toBe('policyId2');
-
- });
-
-
- });
-
-
-})(); \ No newline at end of file