seiso-import_master 0.0.12 → 3.0.0.M1
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 +8 -8
- data/.gitignore +1 -0
- data/.travis.yml +3 -0
- data/README.md +12 -11
- data/Rakefile +3 -3
- data/bin/seiso-import-master +30 -13
- data/lib/seiso/import_master.rb +114 -90
- data/lib/seiso/import_master/importers.rb +5 -0
- data/lib/seiso/import_master/importers/base_importer.rb +91 -30
- data/lib/seiso/import_master/importers/data_center_importer.rb +31 -0
- data/lib/seiso/import_master/importers/environment_importer.rb +25 -0
- data/lib/seiso/import_master/importers/health_status_importer.rb +25 -0
- data/lib/seiso/import_master/importers/infrastructure_provider_importer.rb +25 -0
- data/lib/seiso/import_master/importers/ip_address_role_importer.rb +41 -0
- data/lib/seiso/import_master/importers/load_balancer_importer.rb +25 -0
- data/lib/seiso/import_master/importers/machine_importer.rb +25 -0
- data/lib/seiso/import_master/importers/node_importer.rb +94 -56
- data/lib/seiso/import_master/importers/node_ip_address_importer.rb +46 -0
- data/lib/seiso/import_master/importers/region_importer.rb +31 -0
- data/lib/seiso/import_master/importers/rotation_status_importer.rb +25 -0
- data/lib/seiso/import_master/importers/service_group_importer.rb +25 -0
- data/lib/seiso/import_master/importers/service_importer.rb +38 -143
- data/lib/seiso/import_master/importers/service_instance_importer.rb +60 -213
- data/lib/seiso/import_master/importers/service_instance_port_importer.rb +41 -0
- data/lib/seiso/import_master/importers/service_type_importer.rb +25 -0
- data/lib/seiso/import_master/importers/status_type_importer.rb +25 -0
- data/lib/seiso/import_master/mappers.rb +1 -0
- data/lib/seiso/import_master/mappers/data_center_mapper.rb +19 -0
- data/lib/seiso/import_master/mappers/environment_mapper.rb +20 -0
- data/lib/seiso/import_master/mappers/health_status_mapper.rb +20 -0
- data/lib/seiso/import_master/mappers/infrastructure_provider_mapper.rb +18 -0
- data/lib/seiso/import_master/mappers/ip_address_role_mapper.rb +18 -0
- data/lib/seiso/import_master/mappers/load_balancer_mapper.rb +21 -0
- data/lib/seiso/import_master/mappers/machine_mapper.rb +27 -0
- data/lib/seiso/import_master/mappers/node_ip_address_mapper.rb +38 -0
- data/lib/seiso/import_master/mappers/node_mapper.rb +31 -31
- data/lib/seiso/import_master/mappers/region_mapper.rb +20 -0
- data/lib/seiso/import_master/mappers/rotation_status_mapper.rb +20 -0
- data/lib/seiso/import_master/mappers/service_group_mapper.rb +18 -0
- data/lib/seiso/import_master/mappers/service_instance_mapper.rb +26 -73
- data/lib/seiso/import_master/mappers/service_instance_port_mapper.rb +19 -0
- data/lib/seiso/import_master/mappers/service_mapper.rb +23 -32
- data/lib/seiso/import_master/mappers/service_type_mapper.rb +19 -0
- data/lib/seiso/import_master/mappers/status_type_mapper.rb +18 -0
- data/lib/seiso/import_master/util.rb +1 -0
- data/lib/seiso/import_master/util/invalid_document_error.rb +9 -0
- data/lib/seiso/import_master/util/item_resolver.rb +54 -0
- data/lib/seiso/import_master/util/logger.rb +59 -0
- data/lib/seiso/import_master/util/rest_util.rb +49 -0
- data/lib/seiso/import_master/validators.rb +1 -0
- data/lib/seiso/import_master/validators/base_validator.rb +11 -18
- data/lib/seiso/import_master/validators/node_validator.rb +54 -45
- data/lib/seiso/import_master/validators/service_validator.rb +38 -44
- data/sample_conf/seiso3.yml.sample +6 -0
- data/seiso-import_master.gemspec +16 -13
- data/test/seiso/import_master/importers/test_node_importer.rb +21 -0
- metadata +66 -21
- data/lib/seiso/import_master/errors/invalid_document_error.rb +0 -11
- data/lib/seiso/import_master/importers/simple_importer.rb +0 -28
- data/lib/seiso/import_master/mappers/master_item_mapper.rb +0 -194
- data/sample_conf/seiso.yml.sample +0 -9
- data/test/test_master_item_mapper.rb +0 -257
- data/test/test_node_mapper.rb +0 -40
@@ -0,0 +1,41 @@
|
|
1
|
+
# TODO Reinstate the autocreation that Chris Brown wrote
|
2
|
+
|
3
|
+
class Seiso::ImportMaster
|
4
|
+
# Imports service instance ports into Seiso. This importer handles:
|
5
|
+
# - orphan removal
|
6
|
+
# - POSTing new ports
|
7
|
+
# - PUTting existing ports
|
8
|
+
#
|
9
|
+
# Author:: Willie Wheeler
|
10
|
+
# Copyright:: Copyright (c) 2014-2016 Expedia, Inc.
|
11
|
+
# License:: Apache 2.0
|
12
|
+
class Importers::ServiceInstancePortImporter < Importers::BaseImporter
|
13
|
+
|
14
|
+
def initialize(api, rest_util)
|
15
|
+
self.api = api
|
16
|
+
self.rest_util = rest_util
|
17
|
+
self.mapper = Mappers::ServiceInstancePortMapper.new
|
18
|
+
self.repo_resource = api.serviceInstancePorts.get
|
19
|
+
|
20
|
+
@search_resource = repo_resource.search.get
|
21
|
+
end
|
22
|
+
|
23
|
+
# Can't make these protected, because that prevents BaseImporter from seeing them.
|
24
|
+
# protected
|
25
|
+
|
26
|
+
# BaseImporter callback
|
27
|
+
def to_search_params(doc_sip, context)
|
28
|
+
{
|
29
|
+
'si' => context['serviceInstance'].key,
|
30
|
+
'number' => doc_sip['number']
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
# BaseImporter callback
|
35
|
+
def find_resource(search_params)
|
36
|
+
si = search_params['si']
|
37
|
+
number = search_params['number']
|
38
|
+
@search_resource.findByServiceInstanceKeyAndNumber(si: si, number: number).get
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class Seiso::ImportMaster
|
2
|
+
class Importers::ServiceTypeImporter < Importers::BaseImporter
|
3
|
+
|
4
|
+
def initialize(api, rest_util, resolver)
|
5
|
+
self.api = api
|
6
|
+
self.rest_util = rest_util
|
7
|
+
self.mapper = Mappers::ServiceTypeMapper.new resolver
|
8
|
+
self.repo_resource = api.serviceTypes.get
|
9
|
+
|
10
|
+
@search_resource = repo_resource.search.get
|
11
|
+
end
|
12
|
+
|
13
|
+
def import(doc)
|
14
|
+
import_items(doc['items'], {})
|
15
|
+
end
|
16
|
+
|
17
|
+
def to_search_params(doc_st, context)
|
18
|
+
{ 'key' => doc_st['key'] }
|
19
|
+
end
|
20
|
+
|
21
|
+
def find_resource(search_params)
|
22
|
+
@search_resource.findByKey(key: search_params['key']).get
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class Seiso::ImportMaster
|
2
|
+
class Importers::StatusTypeImporter < Importers::BaseImporter
|
3
|
+
|
4
|
+
def initialize(api, rest_util, resolver)
|
5
|
+
self.api = api
|
6
|
+
self.rest_util = rest_util
|
7
|
+
self.mapper = Mappers::StatusTypeMapper.new resolver
|
8
|
+
self.repo_resource = api.statusTypes.get
|
9
|
+
|
10
|
+
@search_resource = repo_resource.search.get
|
11
|
+
end
|
12
|
+
|
13
|
+
def import(doc)
|
14
|
+
import_items(doc['items'], {})
|
15
|
+
end
|
16
|
+
|
17
|
+
def to_search_params(doc_st, context)
|
18
|
+
{ 'key' => doc_st['key'] }
|
19
|
+
end
|
20
|
+
|
21
|
+
def find_resource(search_params)
|
22
|
+
@search_resource.findByKey(key: search_params['key']).get
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
module Seiso::ImportMaster::Mappers; end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class Seiso::ImportMaster
|
2
|
+
# Author:: Willie Wheeler
|
3
|
+
# Copyright:: Copyright (c) 2014-2016 Expedia, Inc.
|
4
|
+
# License:: Apache 2.0
|
5
|
+
class Mappers::DataCenterMapper
|
6
|
+
|
7
|
+
def initialize(resolver)
|
8
|
+
@resolver = resolver
|
9
|
+
end
|
10
|
+
|
11
|
+
def map(doc_dc, context)
|
12
|
+
{
|
13
|
+
'key' => doc_dc['key'],
|
14
|
+
'name' => doc_dc['name'],
|
15
|
+
'region' => @resolver.item_uri('regions', doc_dc['region'])
|
16
|
+
}
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class Seiso::ImportMaster
|
2
|
+
# Author:: Willie Wheeler
|
3
|
+
# Copyright:: Copyright (c) 2014-2016 Expedia, Inc.
|
4
|
+
# License:: Apache 2.0
|
5
|
+
class Mappers::EnvironmentMapper
|
6
|
+
|
7
|
+
def initialize(resolver)
|
8
|
+
@resolver = resolver
|
9
|
+
end
|
10
|
+
|
11
|
+
def map(doc_env, context)
|
12
|
+
{
|
13
|
+
'key' => doc_env['key'],
|
14
|
+
'name' => doc_env['name'],
|
15
|
+
'aka' => doc_env['aka'],
|
16
|
+
'description' => doc_env['description']
|
17
|
+
}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class Seiso::ImportMaster
|
2
|
+
# Author:: Willie Wheeler
|
3
|
+
# Copyright:: Copyright (c) 2014-2016 Expedia, Inc.
|
4
|
+
# License:: Apache 2.0
|
5
|
+
class Mappers::HealthStatusMapper
|
6
|
+
|
7
|
+
def initialize(resolver)
|
8
|
+
@resolver = resolver
|
9
|
+
end
|
10
|
+
|
11
|
+
def map(doc_hs, context)
|
12
|
+
{
|
13
|
+
'key' => doc_hs['key'],
|
14
|
+
'name' => doc_hs['name'],
|
15
|
+
'description' => doc_hs['description'],
|
16
|
+
'statusType' => @resolver.item_uri('statusTypes', doc_hs['statusType'])
|
17
|
+
}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class Seiso::ImportMaster
|
2
|
+
# Author:: Willie Wheeler
|
3
|
+
# Copyright:: Copyright (c) 2014-2016 Expedia, Inc.
|
4
|
+
# License:: Apache 2.0
|
5
|
+
class Mappers::InfrastructureProviderMapper
|
6
|
+
|
7
|
+
def initialize(resolver)
|
8
|
+
@resolver = resolver
|
9
|
+
end
|
10
|
+
|
11
|
+
def map(doc_ip, context)
|
12
|
+
{
|
13
|
+
'key' => doc_ip['key'],
|
14
|
+
'name' => doc_ip['name']
|
15
|
+
}
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class Seiso::ImportMaster
|
2
|
+
# Maps a SDM IP address role to a Seiso IP address role.
|
3
|
+
#
|
4
|
+
# Author:: Willie Wheeler
|
5
|
+
# Copyright:: Copyright (c) 2014-2016 Expedia, Inc.
|
6
|
+
# License:: Apache 2.0
|
7
|
+
class Mappers::IpAddressRoleMapper
|
8
|
+
|
9
|
+
def map(doc_ipr, context)
|
10
|
+
si_uri = context['serviceInstance'].href
|
11
|
+
{
|
12
|
+
'serviceInstance' => si_uri,
|
13
|
+
'name' => doc_ipr['name'],
|
14
|
+
'description' => doc_ipr['description']
|
15
|
+
}
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class Seiso::ImportMaster
|
2
|
+
# Author:: Willie Wheeler
|
3
|
+
# Copyright:: Copyright (c) 2014-2016 Expedia, Inc.
|
4
|
+
# License:: Apache 2.0
|
5
|
+
class Mappers::LoadBalancerMapper
|
6
|
+
|
7
|
+
def initialize(resolver)
|
8
|
+
@resolver = resolver
|
9
|
+
end
|
10
|
+
|
11
|
+
def map(doc_lb, context)
|
12
|
+
{
|
13
|
+
'name' => doc_lb['name'],
|
14
|
+
'type' => doc_lb['type'],
|
15
|
+
'ipAddress' => doc_lb['ipAddress'],
|
16
|
+
'apiUrl' => doc_lb['apiUrl'],
|
17
|
+
'dataCenter' => @resolver.item_uri('dataCenters', doc_lb['dataCenter'])
|
18
|
+
}
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class Seiso::ImportMaster
|
2
|
+
# Author:: Willie Wheeler
|
3
|
+
# Copyright:: Copyright (c) 2014-2016 Expedia, Inc.
|
4
|
+
# License:: Apache 2.0
|
5
|
+
class Mappers::MachineMapper
|
6
|
+
|
7
|
+
def initialize(resolver)
|
8
|
+
@resolver = resolver
|
9
|
+
end
|
10
|
+
|
11
|
+
def map(doc_machine, context)
|
12
|
+
# TODO Add data center here?
|
13
|
+
{
|
14
|
+
'name' => doc_machine['name'],
|
15
|
+
'os' => doc_machine['os'],
|
16
|
+
'osVersion' => doc_machine['osVersion'],
|
17
|
+
'platform' => doc_machine['platform'],
|
18
|
+
'platformVersion' => doc_machine['platformVersion'],
|
19
|
+
'hostname' => doc_machine['hostname'],
|
20
|
+
'domain' => doc_machine['domain'],
|
21
|
+
'fqdn' => doc_machine['fqdn'],
|
22
|
+
'ipAddress' => doc_machine['ipAddress'],
|
23
|
+
'ip6Address' => doc_machine['ip6Address']
|
24
|
+
}
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
class Seiso::ImportMaster
|
2
|
+
# Author:: Willie Wheeler
|
3
|
+
# Copyright:: Copyright (c) 2014-2016 Expedia, Inc.
|
4
|
+
# License:: Apache 2.0
|
5
|
+
class Mappers::NodeIpAddressMapper
|
6
|
+
|
7
|
+
def initialize(api)
|
8
|
+
@api = api
|
9
|
+
@ipr_search_resource = api.ipAddressRoles.search.get
|
10
|
+
end
|
11
|
+
|
12
|
+
def map(doc_nip, context)
|
13
|
+
node = context['node']
|
14
|
+
si_key = context['serviceInstance'].body['key']
|
15
|
+
ipr_name = doc_nip['ipAddressRole']
|
16
|
+
ip_addr = doc_nip['ipAddress']
|
17
|
+
|
18
|
+
# TODO Verify that the API assigns the rotationStatus and aggregateRotationStatus to "unknown" in the POST case.
|
19
|
+
# See node_mapper.rb
|
20
|
+
{
|
21
|
+
'node' => node.links.self.href,
|
22
|
+
# Can't use UriResolver here since ipr requires two keys.
|
23
|
+
'ipAddressRole' => to_ip_address_role(si_key, ipr_name).links.self.href,
|
24
|
+
'ipAddress' => ip_addr
|
25
|
+
}
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def to_ip_address_role(si_key, ipr_name)
|
31
|
+
search_params = { 'si' => si_key, 'name' => ipr_name }
|
32
|
+
|
33
|
+
# TODO Handle 404. But shouldn't get them if the data is good, so
|
34
|
+
# make sure we're importing the IP address roles before the nodes.
|
35
|
+
@ipr_search_resource.findByServiceInstanceKeyAndName(search_params).get
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -1,33 +1,33 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
#
|
7
|
-
# Author:: Willie Wheeler
|
8
|
-
# Copyright:: Copyright (c) 2014-2015 Expedia, Inc.
|
9
|
-
# License:: Apache 2.0
|
10
|
-
class NodeMapper
|
1
|
+
class Seiso::ImportMaster
|
2
|
+
# Author:: Willie Wheeler
|
3
|
+
# Copyright:: Copyright (c) 2014-2016 Expedia, Inc.
|
4
|
+
# License:: Apache 2.0
|
5
|
+
class Mappers::NodeMapper
|
11
6
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
7
|
+
def initialize(resolver)
|
8
|
+
@resolver = resolver
|
9
|
+
@health_unknown = @resolver.item_uri('healthStatuses', 'unknown')
|
10
|
+
@rotation_unknown = @resolver.item_uri('rotationStatuses', 'unknown')
|
11
|
+
end
|
12
|
+
|
13
|
+
# TODO Need to map POSTs and PATCHes differently.
|
14
|
+
# POSTs should contain unknown statuses. PATCHes shouldn't.
|
15
|
+
|
16
|
+
# TODO Do we even need to provide the unknowns here?
|
17
|
+
# Doesn't/shouldn't the API automatically set this?
|
18
|
+
|
19
|
+
# Maps a document node to a Seiso node. Does *not* map state-related fields, such as buildVersion, healthStatus and
|
20
|
+
# aggregateRotationStatus.
|
21
|
+
#
|
22
|
+
# - doc_node : document node
|
23
|
+
def map(doc_node, context)
|
24
|
+
{
|
25
|
+
'name' => doc_node['name'],
|
26
|
+
'description' => doc_node['description'],
|
27
|
+
'serviceInstance' => context['serviceInstance'].self.href,
|
28
|
+
'machine' => @resolver.item_uri('machines', doc_node['machine'])
|
29
|
+
# 'healthStatus' => @health_unknown
|
30
|
+
}
|
31
|
+
end
|
32
|
+
end
|
33
33
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class Seiso::ImportMaster
|
2
|
+
# Author:: Willie Wheeler
|
3
|
+
# Copyright:: Copyright (c) 2014-2016 Expedia, Inc.
|
4
|
+
# License:: Apache 2.0
|
5
|
+
class Mappers::RegionMapper
|
6
|
+
|
7
|
+
def initialize(resolver)
|
8
|
+
@resolver = resolver
|
9
|
+
end
|
10
|
+
|
11
|
+
def map(doc_region, context)
|
12
|
+
{
|
13
|
+
'key' => doc_region['key'],
|
14
|
+
'name' => doc_region['name'],
|
15
|
+
'regionKey' => doc_region['regionKey'],
|
16
|
+
'infrastructureProvider' => @resolver.item_uri('infrastructureProviders', doc_region['infrastructureProvider'])
|
17
|
+
}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class Seiso::ImportMaster
|
2
|
+
# Author:: Willie Wheeler
|
3
|
+
# Copyright:: Copyright (c) 2014-2016 Expedia, Inc.
|
4
|
+
# License:: Apache 2.0
|
5
|
+
class Mappers::RotationStatusMapper
|
6
|
+
|
7
|
+
def initialize(resolver)
|
8
|
+
@resolver = resolver
|
9
|
+
end
|
10
|
+
|
11
|
+
def map(doc_rs, context)
|
12
|
+
{
|
13
|
+
'key' => doc_rs['key'],
|
14
|
+
'name' => doc_rs['name'],
|
15
|
+
'description' => doc_rs['description'],
|
16
|
+
'statusType' => @resolver.item_uri('statusTypes', doc_rs['statusType'])
|
17
|
+
}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class Seiso::ImportMaster
|
2
|
+
# Author:: Willie Wheeler
|
3
|
+
# Copyright:: Copyright (c) 2014-2016 Expedia, Inc.
|
4
|
+
# License:: Apache 2.0
|
5
|
+
class Mappers::ServiceGroupMapper
|
6
|
+
|
7
|
+
def initialize(resolver)
|
8
|
+
@resolver = resolver
|
9
|
+
end
|
10
|
+
|
11
|
+
def map(doc_sg, context)
|
12
|
+
{
|
13
|
+
'key' => doc_sg['key'],
|
14
|
+
'name' => doc_sg['name']
|
15
|
+
}
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,76 +1,29 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
class Seiso::ImportMaster
|
2
|
+
# Maps a SDM service instance to a Seiso service instance.
|
3
|
+
#
|
4
|
+
# Author:: Willie Wheeler
|
5
|
+
# Copyright:: Copyright (c) 2014-2016 Expedia, Inc.
|
6
|
+
# License:: Apache 2.0
|
7
|
+
class Mappers::ServiceInstanceMapper
|
4
8
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
# Copyright:: Copyright (c) 2014-2015 Expedia, Inc.
|
9
|
-
# License:: Apache 2.0
|
10
|
-
class ServiceInstanceMapper
|
9
|
+
def initialize(resolver)
|
10
|
+
@resolver = resolver
|
11
|
+
end
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
'description' => si['description'],
|
29
|
-
'service' => { 'key' => si['service'] },
|
30
|
-
'environment' => { 'key' => si['environment'] },
|
31
|
-
'loadBalanced' => si['loadBalanced'],
|
32
|
-
'minCapacityDeploy' => si['minCapacityDeploy'],
|
33
|
-
'minCapacityOps' => si['minCapacityOps'],
|
34
|
-
|
35
|
-
# FIXME Deprecated. This is a hardcoded field for an internal Expedia app, and we will remove it.
|
36
|
-
'eosManaged' => (si['eosManaged'] || false),
|
37
|
-
|
38
|
-
# FIXME Deprecated. This is the old name for the minCapacityOps field.
|
39
|
-
'requiredCapacity' => si['minCapacityOps']
|
40
|
-
}
|
41
|
-
|
42
|
-
data_center = si['dataCenter']
|
43
|
-
seiso_si['dataCenter'] = { 'key' => data_center } unless data_center.nil?
|
44
|
-
|
45
|
-
load_balancer = si['loadBalancer']
|
46
|
-
seiso_si['loadBalancer'] = { 'name' => load_balancer } unless load_balancer.nil?
|
47
|
-
|
48
|
-
seiso_si
|
49
|
-
end
|
50
|
-
|
51
|
-
def seiso_service_instance_port(p)
|
52
|
-
# Suppressing endpoints since we don't import those from master files.
|
53
|
-
{
|
54
|
-
'serviceInstance' => { 'key' => p['serviceInstance'] },
|
55
|
-
'number' => p['number'],
|
56
|
-
'protocol' => p['protocol'],
|
57
|
-
'description' => p['description']
|
58
|
-
}
|
59
|
-
end
|
60
|
-
|
61
|
-
def seiso_service_instance_dependencies(sdm_dependencies)
|
62
|
-
sdm_dependencies.map do |d|
|
63
|
-
seiso_service_instance_dependency d
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
def seiso_service_instance_dependency(d)
|
68
|
-
{
|
69
|
-
'dependent' => { 'key' => d['serviceInstance'] },
|
70
|
-
'dependency' => { 'key' => d['key'] }
|
71
|
-
}
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
13
|
+
def map(si, context)
|
14
|
+
{
|
15
|
+
'key' => si['key'],
|
16
|
+
'description' => si['description'],
|
17
|
+
'service' => @resolver.item_uri('services', si['service']),
|
18
|
+
'environment' => @resolver.item_uri('environments', si['environment']),
|
19
|
+
'dataCenter' => @resolver.item_uri('dataCenters', si['dataCenter']),
|
20
|
+
'loadBalancer' => @resolver.item_uri('loadBalancers', si['loadBalancer']),
|
21
|
+
'loadBalanced' => si['loadBalanced'],
|
22
|
+
'minCapacityDeploy' => si['minCapacityDeploy'],
|
23
|
+
'minCapacityOps' => si['minCapacityOps'],
|
24
|
+
# TODO Deprecated
|
25
|
+
'eosManaged' => si['eosManaged']
|
26
|
+
}
|
27
|
+
end
|
28
|
+
end
|
76
29
|
end
|