jellyfish-aws 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 214593e74b3789aa930667c7cda874336497c913
4
- data.tar.gz: b94385d164bc924ad79a71b8eae3e7054f431558
3
+ metadata.gz: b23f9f7d13b09a7359d5f618bb267f6ac9767158
4
+ data.tar.gz: 96fac169b1c7309f703ff0372e2135a370a74e43
5
5
  SHA512:
6
- metadata.gz: 62e34849187eaf445e89281d9f27413992d923090fd0a2e61ffa1c641b0af109f4b24a6645c4c84a419a637083e2fce324a5db6d0b1bdccc25e3d06272005fa0
7
- data.tar.gz: 7cdbd479c0cfb5f12b7442e15b10352232d0d885bd53c756ea49735c78a6b5fe25b607a77f73c4332d460439cc3c9cd5aae3a3339faed4b6ea770b2a9e4cfd54
6
+ metadata.gz: 9f6a2020064df9343fc79b02616516754da244c1ed0d4a559d61d0336c06821fe8d360b1397749208516d783bc4bdb52b0bdff20cedb6b11728152dd244dfd9a
7
+ data.tar.gz: 873ae46fec505df50beb93a32a0b27868a0f6828e4a77d9ffe6ca883db49918d1f3feb1b257b7314d215cf0ddcc7a5ed414062b0a9a04c382fb3bdf546246524
@@ -1,3 +1,3 @@
1
1
  module JellyfishAws
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
@@ -0,0 +1,115 @@
1
+ (function() {
2
+ 'use strict';
3
+
4
+ angular.module('app.components')
5
+ .run(initFields);
6
+
7
+ /** @ngInject */
8
+ function initFields(Forms) {
9
+ Forms.fields('aws_regions', {
10
+ type: 'select',
11
+ templateOptions: {
12
+ label: 'Region',
13
+ options: [
14
+ {label: 'N. Virginia (US-East-1)', value: 'us-east-1', group: 'US'},
15
+ {label: 'N. California (US-West-1)', value: 'us-west-1', group: 'US'},
16
+ {label: 'Oregon (US-West-2)', value: 'us-west-2', group: 'US'},
17
+ {label: 'Ireland (EU-West-1)', value: 'eu-west-1', group: 'Europe'},
18
+ {label: 'Frankfurt (EU-Central-1)', value: 'eu-central-1', group: 'Europe'},
19
+ {label: 'Singapore (AP-Southeast-1)', value: 'ap-southeast-1', group: 'Asia Pacific'},
20
+ {label: 'Sydney (AP-Southeast-2)', value: 'ap-southeast-2', group: 'Asia Pacific'},
21
+ {label: 'Tokyo (AP-Northeast-1)', value: 'ap-northeast-1', group: 'Asia Pacific'},
22
+ {label: 'Sãn Paulo (SA-East-1)', value: 'sa-east-1', group: 'South America'}
23
+ ]
24
+ }
25
+ });
26
+
27
+ Forms.fields('aws_ec2_images', {
28
+ type: 'async_select',
29
+ templateOptions: {
30
+ label: 'System Image',
31
+ options: []
32
+ },
33
+ data: {
34
+ action: 'ec2Images'
35
+ },
36
+ controller: AwsDataController
37
+ });
38
+
39
+ Forms.fields('aws_ec2_flavors', {
40
+ type: 'async_select',
41
+ templateOptions: {
42
+ label: 'Instance Type',
43
+ options: []
44
+ },
45
+ data: {
46
+ action: 'ec2Flavors'
47
+ },
48
+ controller: AwsDataController
49
+ });
50
+
51
+ Forms.fields('aws_subnets', {
52
+ type: 'async_select',
53
+ templateOptions: {
54
+ label: 'Subnet',
55
+ options: []
56
+ },
57
+ data: {
58
+ action: 'subnets'
59
+ },
60
+ controller: AwsDataController
61
+ });
62
+
63
+ Forms.fields('aws_zones', {
64
+ type: 'async_select',
65
+ templateOptions: {
66
+ label: 'Availability Zone',
67
+ options: []
68
+ },
69
+ data: {
70
+ action: 'zones'
71
+ },
72
+ controller: AwsDataController
73
+ });
74
+
75
+ /** @ngInject */
76
+ function AwsDataController($scope, AwsData, Toasts) {
77
+ var provider = $scope.formState.provider;
78
+ var action = $scope.options.data.action;
79
+
80
+ // Cannot do anything without a provider
81
+ if (angular.isUndefined(provider)) {
82
+ Toasts.warning('No provider set in form state', $scope.options.label);
83
+ return;
84
+ }
85
+
86
+ if (!action) {
87
+ Toasts.warning('No action set in field data', $scope.options.label);
88
+ return;
89
+ }
90
+
91
+ $scope.to.loading = AwsData[action](provider.id).then(handleResults, handleError);
92
+
93
+ function handleResults(data) {
94
+ $scope.to.options = data;
95
+ return data;
96
+ }
97
+
98
+
99
+ function handleError(response) {
100
+ var error = response.data;
101
+
102
+ if (!error.error) {
103
+ error = {
104
+ type: 'Server Error',
105
+ error: 'An unknown server error has occurred.'
106
+ };
107
+ }
108
+
109
+ Toasts.error(error.error, [$scope.to.label, error.type].join('::'));
110
+
111
+ return response;
112
+ }
113
+ }
114
+ }
115
+ })();
@@ -0,0 +1,35 @@
1
+ (function() {
2
+ 'use strict';
3
+
4
+ angular.module('app.resources')
5
+ .factory('AwsData', AwsDataFactory);
6
+
7
+ /** @ngInject */
8
+ function AwsDataFactory($resource) {
9
+ var base = '/api/v1/aws/providers/:id/:action';
10
+ var AwsData = $resource(base, {action: '@action', id: '@id'});
11
+
12
+ AwsData.ec2Flavors = ec2Flavors;
13
+ AwsData.ec2Images = ec2Images;
14
+ AwsData.subnets = subnets;
15
+ AwsData.zones = zones;
16
+
17
+ return AwsData;
18
+
19
+ function ec2Flavors(id) {
20
+ return AwsData.query({id: id, action: 'ec2_flavors'}).$promise;
21
+ }
22
+
23
+ function ec2Images(id) {
24
+ return AwsData.query({id: id, action: 'ec2_images'}).$promise;
25
+ }
26
+
27
+ function subnets(id) {
28
+ return AwsData.query({id: id, action: 'subnets'}).$promise;
29
+ }
30
+
31
+ function zones(id) {
32
+ return AwsData.query({id: id, action: 'availability_zones'}).$promise;
33
+ }
34
+ }
35
+ })();
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jellyfish-aws
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Stack
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-11 00:00:00.000000000 Z
11
+ date: 2015-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -131,6 +131,8 @@ files:
131
131
  - lib/jellyfish_aws/engine.rb
132
132
  - lib/jellyfish_aws/version.rb
133
133
  - lib/tasks/jellyfish_aws_tasks.rake
134
+ - public/extensions/aws/components/forms/fields.config.js
135
+ - public/extensions/aws/resources/aws-data.factory.js
134
136
  - spec/rails_helper.rb
135
137
  - spec/spec_helper.rb
136
138
  - spec/test_app/README.rdoc