Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
atlas
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
dataplatform
atlas
Commits
9eedb2d1
Commit
9eedb2d1
authored
6 years ago
by
Madhan Neethiraj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ATLAS-2934: utility to detect and repair incorrect entity state
(cherry picked from commit 8f99ffedfb9f8b87b4142167cb9e26ebb13f232c)
parent
2f896628
master
No related merge requests found
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
452 additions
and
15 deletions
+452
-15
AtlasCheckStateRequest.java
...g/apache/atlas/model/instance/AtlasCheckStateRequest.java
+100
-0
AtlasCheckStateResult.java
...rg/apache/atlas/model/instance/AtlasCheckStateResult.java
+257
-0
AtlasEntityStore.java
...apache/atlas/repository/store/graph/AtlasEntityStore.java
+10
-0
AtlasEntityStoreV2.java
...e/atlas/repository/store/graph/v2/AtlasEntityStoreV2.java
+24
-0
EntityGraphRetriever.java
...atlas/repository/store/graph/v2/EntityGraphRetriever.java
+22
-0
EntityStateChecker.java
...e/atlas/repository/store/graph/v2/EntityStateChecker.java
+0
-0
AdminResource.java
...in/java/org/apache/atlas/web/resources/AdminResource.java
+36
-11
AdminResourceTest.java
...ava/org/apache/atlas/web/resources/AdminResourceTest.java
+3
-4
No files found.
intg/src/main/java/org/apache/atlas/model/instance/AtlasCheckStateRequest.java
0 → 100644
View file @
9eedb2d1
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org
.
apache
.
atlas
.
model
.
instance
;
import
org.apache.atlas.model.typedef.AtlasBaseTypeDef
;
import
com.fasterxml.jackson.annotation.JsonAutoDetect
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
javax.xml.bind.annotation.XmlAccessType
;
import
javax.xml.bind.annotation.XmlAccessorType
;
import
javax.xml.bind.annotation.XmlRootElement
;
import
java.io.Serializable
;
import
java.util.Set
;
import
static
com
.
fasterxml
.
jackson
.
annotation
.
JsonAutoDetect
.
Visibility
.
NONE
;
import
static
com
.
fasterxml
.
jackson
.
annotation
.
JsonAutoDetect
.
Visibility
.
PUBLIC_ONLY
;
/**
* Request to run state-check of entities
*/
@JsonAutoDetect
(
getterVisibility
=
PUBLIC_ONLY
,
setterVisibility
=
PUBLIC_ONLY
,
fieldVisibility
=
NONE
)
@JsonSerialize
(
include
=
JsonSerialize
.
Inclusion
.
NON_NULL
)
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
@XmlRootElement
@XmlAccessorType
(
XmlAccessType
.
PROPERTY
)
public
class
AtlasCheckStateRequest
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
Set
<
String
>
entityGuids
;
private
Set
<
String
>
entityTypes
;
private
boolean
fixIssues
;
public
AtlasCheckStateRequest
()
{
}
public
Set
<
String
>
getEntityGuids
()
{
return
entityGuids
;
}
public
void
setEntityGuids
(
Set
<
String
>
entityGuids
)
{
this
.
entityGuids
=
entityGuids
;
}
public
Set
<
String
>
getEntityTypes
()
{
return
entityTypes
;
}
public
void
setEntityTypes
(
Set
<
String
>
entityTypes
)
{
this
.
entityTypes
=
entityTypes
;
}
public
boolean
getFixIssues
()
{
return
fixIssues
;
}
public
void
setFixIssues
(
boolean
fixIssues
)
{
this
.
fixIssues
=
fixIssues
;
}
public
StringBuilder
toString
(
StringBuilder
sb
)
{
if
(
sb
==
null
)
{
sb
=
new
StringBuilder
();
}
sb
.
append
(
"AtlasCheckStateRequest{"
);
sb
.
append
(
"entityGuids=["
);
AtlasBaseTypeDef
.
dumpObjects
(
entityGuids
,
sb
);
sb
.
append
(
"], entityTypes=["
);
AtlasBaseTypeDef
.
dumpObjects
(
entityTypes
,
sb
);
sb
.
append
(
"]"
);
sb
.
append
(
", fixIssues="
).
append
(
fixIssues
);
sb
.
append
(
"}"
);
return
sb
;
}
@Override
public
String
toString
()
{
return
toString
(
new
StringBuilder
()).
toString
();
}
}
This diff is collapsed.
Click to expand it.
intg/src/main/java/org/apache/atlas/model/instance/AtlasCheckStateResult.java
0 → 100644
View file @
9eedb2d1
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org
.
apache
.
atlas
.
model
.
instance
;
import
org.apache.atlas.model.typedef.AtlasBaseTypeDef
;
import
com.fasterxml.jackson.annotation.JsonAutoDetect
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
javax.xml.bind.annotation.XmlAccessType
;
import
javax.xml.bind.annotation.XmlAccessorType
;
import
javax.xml.bind.annotation.XmlRootElement
;
import
java.io.Serializable
;
import
java.util.List
;
import
java.util.Map
;
import
static
com
.
fasterxml
.
jackson
.
annotation
.
JsonAutoDetect
.
Visibility
.
NONE
;
import
static
com
.
fasterxml
.
jackson
.
annotation
.
JsonAutoDetect
.
Visibility
.
PUBLIC_ONLY
;
/**
* Result of Atlas state check run.
*/
@JsonAutoDetect
(
getterVisibility
=
PUBLIC_ONLY
,
setterVisibility
=
PUBLIC_ONLY
,
fieldVisibility
=
NONE
)
@JsonSerialize
(
include
=
JsonSerialize
.
Inclusion
.
NON_NULL
)
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
@XmlRootElement
@XmlAccessorType
(
XmlAccessType
.
PROPERTY
)
public
class
AtlasCheckStateResult
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
public
enum
State
{
OK
,
FIXED
,
PARTIALLY_FIXED
,
NOT_FIXED
}
private
int
entitiesScanned
=
0
;
private
int
entitiesOk
=
0
;
private
int
entitiesFixed
=
0
;
private
int
entitiesPartiallyFixed
=
0
;
private
int
entitiesNotFixed
=
0
;
private
State
state
=
State
.
OK
;
private
Map
<
String
,
AtlasEntityState
>
entities
=
null
;
public
AtlasCheckStateResult
()
{
}
public
int
getEntitiesScanned
()
{
return
entitiesScanned
;
}
public
void
setEntitiesScanned
(
int
entitiesScanned
)
{
this
.
entitiesScanned
=
entitiesScanned
;
}
public
void
incrEntitiesScanned
()
{
entitiesScanned
++;
}
public
int
getEntitiesOk
()
{
return
entitiesOk
;
}
public
void
setEntitiesOk
(
int
entitiesOk
)
{
this
.
entitiesOk
=
entitiesOk
;
}
public
void
incrEntitiesOk
()
{
entitiesOk
++;
}
public
int
getEntitiesFixed
()
{
return
entitiesFixed
;
}
public
void
setEntitiesFixed
(
int
entitiesFixed
)
{
this
.
entitiesFixed
=
entitiesFixed
;
}
public
void
incrEntitiesFixed
()
{
entitiesFixed
++;
}
public
int
getEntitiesPartiallyFixed
()
{
return
entitiesPartiallyFixed
;
}
public
void
setEntitiesPartiallyFixed
(
int
entitiesPartiallyFixed
)
{
this
.
entitiesPartiallyFixed
=
entitiesPartiallyFixed
;
}
public
void
incrEntitiesPartiallyFixed
()
{
entitiesPartiallyFixed
++;
}
public
int
getEntitiesNotFixed
()
{
return
entitiesNotFixed
;
}
public
void
setEntitiesNotFixed
(
int
entitiesNotFixed
)
{
this
.
entitiesNotFixed
=
entitiesNotFixed
;
}
public
void
incrEntitiesNotFixed
()
{
entitiesNotFixed
++;
}
public
State
getState
()
{
return
state
;
}
public
void
setState
(
State
state
)
{
this
.
state
=
state
;
}
public
Map
<
String
,
AtlasEntityState
>
getEntities
()
{
return
entities
;
}
public
void
setEntities
(
Map
<
String
,
AtlasEntityState
>
entities
)
{
this
.
entities
=
entities
;
}
public
StringBuilder
toString
(
StringBuilder
sb
)
{
if
(
sb
==
null
)
{
sb
=
new
StringBuilder
();
}
sb
.
append
(
"AtlasCheckStateResult{"
);
sb
.
append
(
"entitiesScanned='"
).
append
(
entitiesScanned
);
sb
.
append
(
", entitiesFixed="
).
append
(
entitiesFixed
);
sb
.
append
(
", entitiesPartiallyFixed="
).
append
(
entitiesPartiallyFixed
);
sb
.
append
(
", entitiesNotFixed="
).
append
(
entitiesNotFixed
);
sb
.
append
(
", state="
).
append
(
state
);
sb
.
append
(
"entities=["
);
if
(
entities
!=
null
)
{
boolean
isFirst
=
true
;
for
(
Map
.
Entry
<
String
,
AtlasEntityState
>
entry
:
entities
.
entrySet
())
{
if
(
isFirst
)
{
isFirst
=
false
;
}
else
{
sb
.
append
(
","
);
}
sb
.
append
(
entry
.
getKey
()).
append
(
":"
);
entry
.
getValue
().
toString
(
sb
);
}
}
sb
.
append
(
"]"
);
sb
.
append
(
"}"
);
return
sb
;
}
@Override
public
String
toString
()
{
return
toString
(
new
StringBuilder
()).
toString
();
}
@JsonAutoDetect
(
getterVisibility
=
PUBLIC_ONLY
,
setterVisibility
=
PUBLIC_ONLY
,
fieldVisibility
=
NONE
)
@JsonSerialize
(
include
=
JsonSerialize
.
Inclusion
.
NON_NULL
)
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
@XmlRootElement
@XmlAccessorType
(
XmlAccessType
.
PROPERTY
)
public
static
class
AtlasEntityState
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
String
guid
;
private
String
typeName
;
private
String
name
;
private
AtlasEntity
.
Status
status
;
private
State
state
=
State
.
OK
;
private
List
<
String
>
issues
;
public
AtlasEntityState
()
{
}
public
String
getGuid
()
{
return
guid
;
}
public
void
setGuid
(
String
guid
)
{
this
.
guid
=
guid
;
}
public
String
getTypeName
()
{
return
typeName
;
}
public
void
setTypeName
(
String
typeName
)
{
this
.
typeName
=
typeName
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
AtlasEntity
.
Status
getStatus
()
{
return
status
;
}
public
void
setStatus
(
AtlasEntity
.
Status
status
)
{
this
.
status
=
status
;
}
public
State
getState
()
{
return
state
;
}
public
void
setState
(
State
state
)
{
this
.
state
=
state
;
}
public
List
<
String
>
getIssues
()
{
return
issues
;
}
public
void
setIssues
(
List
<
String
>
issues
)
{
this
.
issues
=
issues
;
}
public
StringBuilder
toString
(
StringBuilder
sb
)
{
if
(
sb
==
null
)
{
sb
=
new
StringBuilder
();
}
sb
.
append
(
"AtlasEntityState{"
);
sb
.
append
(
"guid="
).
append
(
guid
);
sb
.
append
(
", typeName="
).
append
(
typeName
);
sb
.
append
(
", name="
).
append
(
name
);
sb
.
append
(
", status="
).
append
(
status
);
sb
.
append
(
", state="
).
append
(
state
);
sb
.
append
(
", issues=["
);
AtlasBaseTypeDef
.
dumpObjects
(
issues
,
sb
);
sb
.
append
(
"]"
);
sb
.
append
(
"}"
);
return
sb
;
}
@Override
public
String
toString
()
{
return
toString
(
new
StringBuilder
()).
toString
();
}
}
}
This diff is collapsed.
Click to expand it.
repository/src/main/java/org/apache/atlas/repository/store/graph/AtlasEntityStore.java
View file @
9eedb2d1
...
...
@@ -18,6 +18,8 @@
package
org
.
apache
.
atlas
.
repository
.
store
.
graph
;
import
org.apache.atlas.exception.AtlasBaseException
;
import
org.apache.atlas.model.instance.AtlasCheckStateRequest
;
import
org.apache.atlas.model.instance.AtlasCheckStateResult
;
import
org.apache.atlas.model.instance.AtlasClassification
;
import
org.apache.atlas.model.instance.AtlasEntity.AtlasEntitiesWithExtInfo
;
import
org.apache.atlas.model.instance.AtlasEntity.AtlasEntityWithExtInfo
;
...
...
@@ -107,6 +109,14 @@ public interface AtlasEntityStore {
throws
AtlasBaseException
;
/**
* Check state of entities in the store
* @param request AtlasCheckStateRequest
* @return AtlasCheckStateResult
* @throws AtlasBaseException
*/
AtlasCheckStateResult
checkState
(
AtlasCheckStateRequest
request
)
throws
AtlasBaseException
;
/**
* Create or update entities in the stream
* @param entityStream AtlasEntityStream
* @return EntityMutationResponse Entity mutations operations with the corresponding set of entities on which these operations were performed
...
...
This diff is collapsed.
Click to expand it.
repository/src/main/java/org/apache/atlas/repository/store/graph/v2/AtlasEntityStoreV2.java
View file @
9eedb2d1
...
...
@@ -219,6 +219,30 @@ public class AtlasEntityStoreV2 implements AtlasEntityStore {
return
ret
;
}
/**
* Check state of entities in the store
* @param request AtlasCheckStateRequest
* @return AtlasCheckStateResult
* @throws AtlasBaseException
*/
@Override
@GraphTransaction
public
AtlasCheckStateResult
checkState
(
AtlasCheckStateRequest
request
)
throws
AtlasBaseException
{
if
(
LOG
.
isDebugEnabled
())
{
LOG
.
debug
(
"==> checkState({})"
,
request
);
}
EntityStateChecker
entityStateChecker
=
new
EntityStateChecker
(
typeRegistry
);
AtlasCheckStateResult
ret
=
entityStateChecker
.
checkState
(
request
);
if
(
LOG
.
isDebugEnabled
())
{
LOG
.
debug
(
"<== checkState({}, {})"
,
request
,
ret
);
}
return
ret
;
}
@Override
@GraphTransaction
public
EntityMutationResponse
createOrUpdate
(
EntityStream
entityStream
,
boolean
isPartialUpdate
)
throws
AtlasBaseException
{
...
...
This diff is collapsed.
Click to expand it.
repository/src/main/java/org/apache/atlas/repository/store/graph/v2/EntityGraphRetriever.java
View file @
9eedb2d1
...
...
@@ -325,6 +325,28 @@ public final class EntityGraphRetriever {
return
ret
;
}
public
Map
<
String
,
Object
>
getEntityUniqueAttribute
(
AtlasVertex
entityVertex
)
throws
AtlasBaseException
{
Map
<
String
,
Object
>
ret
=
null
;
String
typeName
=
AtlasGraphUtilsV2
.
getTypeName
(
entityVertex
);
AtlasEntityType
entityType
=
typeRegistry
.
getEntityTypeByName
(
typeName
);
if
(
entityType
!=
null
&&
MapUtils
.
isNotEmpty
(
entityType
.
getUniqAttributes
()))
{
for
(
AtlasAttribute
attribute
:
entityType
.
getUniqAttributes
().
values
())
{
Object
val
=
mapVertexToAttribute
(
entityVertex
,
attribute
,
null
,
false
);
if
(
val
!=
null
)
{
if
(
ret
==
null
)
{
ret
=
new
HashMap
<>();
}
ret
.
put
(
attribute
.
getName
(),
val
);
}
}
}
return
ret
;
}
private
AtlasVertex
getEntityVertex
(
AtlasObjectId
objId
)
throws
AtlasBaseException
{
AtlasVertex
ret
=
null
;
...
...
This diff is collapsed.
Click to expand it.
repository/src/main/java/org/apache/atlas/repository/store/graph/v2/EntityStateChecker.java
0 → 100644
View file @
9eedb2d1
This diff is collapsed.
Click to expand it.
webapp/src/main/java/org/apache/atlas/web/resources/AdminResource.java
View file @
9eedb2d1
...
...
@@ -36,6 +36,8 @@ import org.apache.atlas.model.impexp.AtlasImportRequest;
import
org.apache.atlas.model.impexp.AtlasImportResult
;
import
org.apache.atlas.model.impexp.ExportImportAuditEntry
;
import
org.apache.atlas.model.impexp.MigrationStatus
;
import
org.apache.atlas.model.instance.AtlasCheckStateRequest
;
import
org.apache.atlas.model.instance.AtlasCheckStateResult
;
import
org.apache.atlas.model.metrics.AtlasMetrics
;
import
org.apache.atlas.repository.impexp.AtlasServerService
;
import
org.apache.atlas.repository.impexp.ExportImportAuditService
;
...
...
@@ -44,6 +46,7 @@ import org.apache.atlas.repository.impexp.ImportService;
import
org.apache.atlas.repository.impexp.MigrationProgressService
;
import
org.apache.atlas.repository.impexp.ZipSink
;
import
org.apache.atlas.repository.impexp.ZipSource
;
import
org.apache.atlas.repository.store.graph.AtlasEntityStore
;
import
org.apache.atlas.services.MetricsService
;
import
org.apache.atlas.type.AtlasType
;
import
org.apache.atlas.type.AtlasTypeRegistry
;
...
...
@@ -129,10 +132,11 @@ public class AdminResource {
private
final
ImportService
importService
;
private
final
SearchTracker
activeSearches
;
private
final
AtlasTypeRegistry
typeRegistry
;
private
final
MigrationProgressService
migrationProgressService
;
private
final
MigrationProgressService
migrationProgressService
;
private
final
ReentrantLock
importExportOperationLock
;
private
final
ExportImportAuditService
exportImportAuditService
;
private
final
AtlasServerService
atlasServerService
;
private
final
AtlasEntityStore
entityStore
;
static
{
try
{
...
...
@@ -147,16 +151,17 @@ public class AdminResource {
ExportService
exportService
,
ImportService
importService
,
SearchTracker
activeSearches
,
MigrationProgressService
migrationProgressService
,
AtlasServerService
serverService
,
ExportImportAuditService
exportImportAuditService
)
{
this
.
serviceState
=
serviceState
;
this
.
metricsService
=
metricsService
;
this
.
exportService
=
exportService
;
this
.
importService
=
importService
;
this
.
activeSearches
=
activeSearches
;
this
.
typeRegistry
=
typeRegistry
;
this
.
migrationProgressService
=
migrationProgressService
;
this
.
atlasServerService
=
serverService
;
this
.
exportImportAuditService
=
exportImportAuditService
;
ExportImportAuditService
exportImportAuditService
,
AtlasEntityStore
entityStore
)
{
this
.
serviceState
=
serviceState
;
this
.
metricsService
=
metricsService
;
this
.
exportService
=
exportService
;
this
.
importService
=
importService
;
this
.
activeSearches
=
activeSearches
;
this
.
typeRegistry
=
typeRegistry
;
this
.
migrationProgressService
=
migrationProgressService
;
this
.
atlasServerService
=
serverService
;
this
.
entityStore
=
entityStore
;
this
.
exportImportAuditService
=
exportImportAuditService
;
this
.
importExportOperationLock
=
new
ReentrantLock
();
}
...
...
@@ -530,6 +535,26 @@ public class AdminResource {
return
null
!=
terminate
;
}
@POST
@Path
(
"checkstate"
)
@Produces
(
Servlets
.
JSON_MEDIA_TYPE
)
@Consumes
(
Servlets
.
JSON_MEDIA_TYPE
)
public
AtlasCheckStateResult
checkState
(
AtlasCheckStateRequest
request
)
throws
AtlasBaseException
{
AtlasPerfTracer
perf
=
null
;
try
{
if
(
AtlasPerfTracer
.
isPerfTraceEnabled
(
PERF_LOG
))
{
perf
=
AtlasPerfTracer
.
getPerfTracer
(
PERF_LOG
,
"checkState("
+
request
+
")"
);
}
AtlasCheckStateResult
ret
=
entityStore
.
checkState
(
request
);
return
ret
;
}
finally
{
AtlasPerfTracer
.
log
(
perf
);
}
}
private
String
getEditableEntityTypes
(
Configuration
config
)
{
String
ret
=
DEFAULT_EDITABLE_ENTITY_TYPES
;
...
...
This diff is collapsed.
Click to expand it.
webapp/src/test/java/org/apache/atlas/web/resources/AdminResourceTest.java
View file @
9eedb2d1
...
...
@@ -51,7 +51,7 @@ public class AdminResourceTest {
when
(
serviceState
.
getState
()).
thenReturn
(
ServiceState
.
ServiceStateValue
.
ACTIVE
);
AdminResource
adminResource
=
new
AdminResource
(
serviceState
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
);
AdminResource
adminResource
=
new
AdminResource
(
serviceState
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
);
Response
response
=
adminResource
.
getStatus
();
assertEquals
(
response
.
getStatus
(),
HttpServletResponse
.
SC_OK
);
JsonNode
entity
=
AtlasJson
.
parseToV1JsonNode
((
String
)
response
.
getEntity
());
...
...
@@ -62,7 +62,7 @@ public class AdminResourceTest {
public
void
testResourceGetsValueFromServiceState
()
throws
IOException
{
when
(
serviceState
.
getState
()).
thenReturn
(
ServiceState
.
ServiceStateValue
.
PASSIVE
);
AdminResource
adminResource
=
new
AdminResource
(
serviceState
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
);
AdminResource
adminResource
=
new
AdminResource
(
serviceState
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
,
null
);
Response
response
=
adminResource
.
getStatus
();
verify
(
serviceState
).
getState
();
...
...
@@ -70,4 +70,4 @@ public class AdminResourceTest {
assertEquals
(
entity
.
get
(
"Status"
).
asText
(),
"PASSIVE"
);
}
}
\ No newline at end of file
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment